Iris logoIris Fork Iris on GitHub small cartopy logo Fork Cartopy on GitHub

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 of this approach is to aid collaboration and collaborative development.

Developing alongside SciTools

The SciTools projects provide capabilities for developers to make use of. Projects are encouraged to use the capabilities of SciTools and build libraries and functionality on top of these capabilities.

Projects depending on SciTools Libraries are encouraged to engage with the development process, through the Community Forums and the GitHub code development sites. It is hoped that this will lead to developers contributing code to SciTools Libraries.

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 SciTools 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 libraries will follow the governance 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 publicly available code which can be developed collaboratively will enable more detailed and focussed discussions of the relevant issues facilitating code adoption.

© British Crown Copyright 2017, Met Office