-
-
Notifications
You must be signed in to change notification settings - Fork 46
Cycle 5: Astropy as a platform of stability (Clément Robert SSE) #493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
neutrinoceros
wants to merge
1
commit into
astropy:main
Choose a base branch
from
neutrinoceros:cycle5/platform-of-stability
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| ### Astropy as a platform of stability in the astronomy software landscape | ||
|
|
||
| ### Project Team | ||
| This proposal is to support Clément Robert's continued software engineering work | ||
| on the astropy core library and ecosystem. | ||
|
|
||
| ### Project Description / Scope of Work | ||
|
|
||
| Astropy lies at a unique and critical position in the Python software stack | ||
| supporting astronomy and astrophysics; it is both the core library to a vibrant, | ||
| but domain specific ecosystem, and dependent on hundreds of other packages. As | ||
| such, astropy is required to provide a stable platform for a wide range of | ||
| (constrained) use cases, and should be as resilient as possible to upgrades. | ||
| Furthermore, since existing APIs are used accross vastly diverse contextes, their | ||
| evolution, when deemed necessary, must be handled with care and stretch over | ||
| long time spans. | ||
|
|
||
| This FR supports the on-going effort to improve the stability of astropy on 3 | ||
| different time scales: | ||
|
|
||
| - (immediate term) handling day-to-day compatibility issues throughout the ecosystem | ||
| - (medium term) tackling long standing issues through planned API evolutions | ||
| - (long term) eliminating avoidable failure modes in CI | ||
|
|
||
| It short, this is aimed to reduce friction for both users and developers. | ||
|
|
||
| Hereafter is a (non-exhaustive) breakdown of more specific issues in the scope of this | ||
| proposal | ||
|
|
||
| - providing a high quality bedrock of backward compatibility | ||
| - coordinating with upstream and downstream stake holders to improve testing on a range | ||
| of deployment environments | ||
| - improve portability and re-usability of binary artifacts (fundamental work was | ||
| already conducted, and tracked in | ||
| https://github.com/astropy/astropy/issues/18163, but more can be done in the | ||
| near future) | ||
| - simplify the development process for most contributors to the core library (reduced build times) | ||
| - improve testability and test coverage of low level extension modules | ||
| - improve long-term maintainability of new APIs through developer documentation | ||
| and code reviews | ||
| - tackle long standing bugs | ||
| - fix incompatibilities with development versions of core and secondary dependencies as needed | ||
| - extend support to future features of the Python interpreter (like JIT compilation and free-threading) | ||
| - https://github.com/astropy/astropy/issues/16916 | ||
| - handle long-term API evolutions through deprecation cycles | ||
| - solidify deprecation cycle guidelines and utilities | ||
| - https://github.com/astropy/astropy/issues/18852 | ||
| - https://github.com/astropy/astropy/issues/18951 | ||
|
|
||
| #### Roadmap Items | ||
|
|
||
| The proposed work aligns with the following roadmap items: | ||
|
|
||
| - Improve and/or maintain interoperability with performant I/O file formats and libraries such as HDF5 and Dask. | ||
| - Improve support for using Astropy tools in heterogeneous computing environments such as cloud environments or GPU systems. | ||
| - Support JIT compilation (e.g., numba, JAX, etc.) throughout Astropy core and coordinated packages. | ||
| - Increase the learning and mentoring opportunities for people interested in becoming contributors and helping to develop existing contributors into maintainers. | ||
|
|
||
|
|
||
| #### Project / Work / Deliverables | ||
|
|
||
| Minimal (non-exhaustive) and concrete deliverables are listed hereafter: | ||
|
|
||
| - reproducible builds in "oldestdeps" testing environments (https://github.com/astropy/astropy/issues/18782) | ||
| - split out extension modules to a `astropy-core` package (https://github.com/neutrinoceros/astropy-APEs/pull/1) | ||
| - ensure compatibility with PEP 803/809 (the future of CPython's Limited API for 2026) | ||
| throughout coordinated packages | ||
| - reforge astropy's configuration discovery system to improve maintainability and | ||
| unblock missing features https://github.com/astropy/astropy/issues/18964 | ||
| - developer guidelines for maintainable new APIs (email) | ||
| - detailed, quarterly reports of bug reports closed and PRs reviewed | ||
|
|
||
| ### Approximate Budget | ||
| Currency: US | ||
| Budget: $50,000 to $80,000 | ||
|
|
||
| I'm requesting funding for 500 to 800 hours of contractual work, over a performance | ||
| period of one year, and at a rate of 100$/hr. | ||
| I estimate 500 hours as a minimal viable budget to reach a majority of the goals | ||
| previously laid out, but more can be done with a larger budget. | ||
|
|
||
| ### Period of Performance | ||
|
|
||
| 2026 (Jan 1 to Dec 31) | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.