About SciTools

SciTools is a collaborative effort to produce powerful Python-based open-source tools for Earth scientists.

Initially started at the Met Office, SciTools has grown into a diverse community of partners and collaborators from around the world. SciTools is responsible for the maintenance of a number of key packages such as Iris and Cartopy, and continues to develop new and innovative tools for the Earth scientist's toolkit.

The Met Office remains a driving force behind SciTools; however, all the packages are fundamentally developed in the open. The direction of SciTools is decided by the community of developers, who are always eager for more people from different areas to contribute towards Iris, Cartopy and the wider SciTools ecosystem.

Collaboration

Iris and Cartopy are free and open source projects, published under the LGPLv3 licence. Both libraries work extensively with third party free and open source libraries.

One of the primary objectives behind making SciTools open source is to aid collaboration and collaborative development.

  • Developing alongside SciTools - Developers are encouraged to use the capabilities of SciTools to build libraries and functionality of their own. Projects depending on SciTools packages are encouraged to engage with the development process through the SciTools GitHub organisation. It is hoped that this will lead to developers contributing code to SciTools.
  • Publishing Code - For any potential collaborative development activity it is important that the code base is available to collaborators and licensed to enable collaboration. Publishing code as it is being developed is an excellent way to work with development communities working in similar spaces. It will benefit SciTools development and the development of libraries dependent on SciTools if the code is published and available for developers to investigate and provide feedback on. Publishing on a site such as GitHub, the SciTools contributors approach and LGPLv3 license present one way of managing this. It is the responsibility of a publisher to manage these matters as they see fit, considering license conditions, access rights and the implications for their project. Such public projects, dependent on SciTools modules, are likely to provide a rich seam of ideas and approaches, leading to developments in SciTools modules which can be adopted and shared across the community.
  • Contributing to SciTools - Contributions to the SciTools open source libraries are encouraged: the pages on governance and the developer's guide provide information on what is involved in SciTools collaborative development. Small scale contributions fit well with this model, such as bug fixes and new feature implementations to current modules. Larger scale development activities may require different approaches, as it may take significant design and implementation effort before it is clear how integration may occur. It may prove useful to publish such code independently of SciTools and then investigate integration over time.
  • Adoption of Code - Adoption of code into SciTools packages will follow governance guidelines and then refer to our developer's guide procedures. In most cases discussions via GitHub issues and the developer communities (Iris and Cartopy) will be required, to detail scope, interfaces and design considerations. Providing code which can be developed collaboratively will enable more detailed and focussed discussions of the relevant issues facilitating code adoption.

Governance

" Give no decision till both sides thou'st heard." - Phocylides

An active community contributes to the day-to-day development and upkeep of the project. We expect the community to contribute to decisions through open debate. The steering council will lead the project and act as final arbitrator on decisions via majority.

  • Users - Users download and use Iris and/or Cartopy. They are the reason these packages have been created and developed. We want to know what problems they experience and ideas they have so that we can improve the software. Become a User by downloading the libraries and starting to use them now.
  • Contributors - Contributors are people who contribute to the Iris and/or Cartopy project but do not have sufficient privileges to merge a pull request. Contributions can be made by providing bug fixes, adding new code, reporting bugs, updating or writing new documentation and gallery additions. Become a Contributor with any of the tasks described above. Please note that merging of source code contributions is at the discretion of the Developers and follows an iterative dialogue. We will also need a completed Contributor's Licence Agreement (CLA). We will be following the 'review-then-commit' process of merging contributions into the project. After nomination by the developers to the steering council, major and effective contributors to the project will be invited to become a developer.
  • Developers - It is the Development team's responsibility to ensure the quality of the source code and documentation remains high and that the integrity of the project is preserved. To achieve this, the Development team will: Review and merge Contributors bug fixes, new code and/or documentation from submitted pull requests into the master. Ensure that everyone who wishes to contribute has submitted a CLA. Define coding and testing standards. Define development methodologies.
  • Owners - Owners are responsible for the repository and for granting privileges.
  • Steering council - The steering council is made up of a small group of long-term SciTools developers. The council are responsible for providing high-level steer and scope for the SciTools organisation. It is also able to arbitrate decisions for the wider SciTools developer community via a simple steering council majority. The steering council members are: Andrew Dawson (@ajdawson), Bill Little (@bjlittle), Philip Elson (@pelson)
  • Support- Support is offered on a best endeavour only and is provided as time and resources allow. That said support is an important activity for the Developers as it provides an opportunity to work closely with people using Iris, Cartopy and other SciTools packages. It is from these events that real value is generated that can be brought back into the project. Available support channels for the project can be found at Iris Community Page and on the Cartopy Home page 'Getting Involved' section.

Contact Us

GitHub
As an open source project SciTools is hosted on GitHub. This is where we discuss and implement future developments in the project. If you're interested in being involved please go to a relevant project and create an Issue or Pull Request, depending on what's more appropriate. Alternatively you can comment on existing Issues and Pull Requests. Any feedback is valuable.