-
Notifications
You must be signed in to change notification settings - Fork 0
Adler Software Management Plan
Adler is split up into two components. The Lasair infrastructure and an analysis tools python package that will be imported by Adler. All software will be open-source.
We discuss the software management plan for each component separately. We will conform to the publication standards and requirements set by LSST:UK and the Lasair+Adler team. We expect that the Adler project will have AAS Journals and Journal of Open Software (JOSS) papers summarising the features and capabilities of Adler.
All the software for the analysis tools python package that will drive Adler will be publicly available in a Github repository (https://github.com/lsst-uk/adler), and we will follow the best practices for python software development. A suitable open-source license will be incorporated within the repository.
Unit tests will be created for all the functions in the python package and continuous integration will be set up in the github repository such that the unit tests will be run on the latest three versions of python on both linux and macOS operating systems.
We will adopt the LINCC Frameworks Python Project Template (https://github.com/lincc-frameworks/python-project-template) for the architecture of the repository and we will use black (https://black.readthedocs.io/en/stable/the_black_code_style/index.html) , an open source autoformatter, to ensure our code base conforms to PEP 8 standards.
Modifications to the codebase will be created as branches off the main that will be merged into the main branch via pull requests. The repository will be configured so that the main branch is protected, such that no pull request will be merged before another team member has reviewed the pull requested and the proposed changes to the code bases and the unit tests have been run and verified.
Documentation will be developed as the software is matured. Docstrings for each function in the codebase will be created, conforming to best practices. The documentation will be available on Read the Docs (https://about.readthedocs.com/?ref=readthedocs.org). Example tutorial jupyter notebooks will also be developed and included in the online documentation.
The analysis tools python package will be made pip installable and hosted on PyPi (https://pypi.org/) with a stretch goal of making it conda installable by the end of this Phase C work package.
User testing will be performed on linux, mac, and on the Rubin Science Platform notebook and python terminal environments.
Github issues will be used to track bug reports, development tasks, and feature and user support requests.
It is expected that Adler will likely be a service within Lasair, the LSST:UK alert broker. It is expected that the Lasair Adler components will be a combination of databases and python code. All Adler infrastructure components developed will conform to the Lasair software management plan and best practices for documentation and software development. Code developed for the Lasair that enables Adler will be stored in the Lasair github repository (https://github.com/lsst-uk/lasair). Any changes or additions to the Lasair codebase will be done through a pull request in the Lasair repository and will not be merged until a Lasair core software developer has reviewed the pull request and approved it for merging into the main branch. Unit tests and documentation will also be created as needed, conforming to the Lasair standards.