GithubHelp home page GithubHelp logo

williamjamieson / astropy-apes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from astropy/astropy-apes

0.0 1.0 1.0 843 KB

A repository storing the Astropy Proposals for Enhancement.

License: Other

astropy-apes's Introduction

APEs: Astropy Proposals for Enhancement

APEs are documents to address non-trivial enhancements that require discussion and thought beyond a single Pull Request. This is intended to mirror the long-standing Python Enhancement Proposal process, but generally not quite as formally. Normally a proposal goes through various phases of consideration. Discussion is expected to take place using existing mechanisms (astropy-dev, github, hangouts, etc), and eventually a decision is made regarding whether the proposal should be accepted, rejected, or modified.

Accepted APEs

# Title Date DOI
0 The Astropy Project Governance Charter 2021-Feb-19 APE 0 DOI
1 APE Purpose and Process 2013-Nov-08 APE 1 DOI
2 Astropy Release Cycle and Version Numbering 2013-Dec-11 APE 2 DOI
3 Configuration 2013-Dec-10 APE 3 DOI
4 Astropy Setup Helpers 2014-Jun-28 APE 4 DOI
5 Coordinates Subpackage Plan 2014-Jan-22 APE 5 DOI
6 Enhanced Character Separated Values table format 2015-Jan-26 APE 6 DOI
7 NDData Plan 2014-Dec-17 APE 7 DOI
8 Astropy Community Code of Conduct 2015-May-04 APE 8 DOI
10 Roadmap for Python 3-only support 2016-Aug-22 APE 10 DOI
12 Using Cookiecutter for the package-template 2017-Mar-28 APE 12 DOI
13 Vision for Astropy Spectroscopic Tools 2017-Dec-12 APE 13 DOI
14 A shared Python interface for World Coordinate Systems 2018-Feb-28 APE 14 DOI
15 An Updated Model for the Affiliated Package Ecosystem 2018-May-14 APE 15 DOI
17 A roadmap for package infrastructure without astropy-helpers 2019-Dec-12 APE 17 DOI
18 Adopt NEP 29 for CPython and Numpy Version Support 2021-Dec-25 APE 18 DOI
19 Distributing Astropy Project Funding 2022-Feb-28 APE 19 DOI

Proposing a new APE

New APEs should be created using the APEtemplate.rst file in this repository. Fork the repository, copy APEtemplate.rst to APE_<some_working_name>.rst and issue a Pull Request with that file once you've written it up (little explanation is required in the PR itself given that the document has all the content - usually it's easiest to just paste in the abstract). The APE number will be assigned once the PR is merged.

Note that there is not much point to making proposals unless someone or some group has signed up to implement it if the APE is accepted (typically this would involve the author or authors of the APE). Just issuing an APE in order to spur others to do work is not generally going to be received well. Generally, an implementation is expected before an APE can be considered fully accepted. For proposals that require extensive work that few are willing to perform without some assurance it will be accepted, provisional acceptance is an option. For serious consideration it is usually good to show that detailed technical aspects have been played with in real code rather (even if it isn't a complete implementation).

Finalizing APEs

The final decision on accepting or rejecting APEs lies with the Astropy Coordination Committee. Once the community discussion on the APE has wound down, the committee discusses the APE and makes a final decision on acceptance or rejection. One of the committee members should then:

  1. Fill in the "Decision rationale" section of the APE with a description of why the APE was accepted or rejected, including a summary of the community's discussion as relevant.

  2. Update the "date-last-revised" to the day of merging and "status" to "Accepted" or "Rejected".

  3. If necessary, rename the APE file to be APE##.rst, where ## is the next free number on the list of APEs.

  4. Leave a brief comment in the PR indicating the result.

  5. Merge the PR with the above changes.

  6. If the APE was accepted then continue with the remaining steps, otherwise stop now.

  7. Upload the APE to Zenodo to give it a DOI. Go to https://zenodo.org/deposit/new, upload the .rst file, and set the fields to the following:

    Zenodo field

    Set to

    Communities

    The Astropy Project

    Upload type

    Publication

    Publication type

    Technical note

    Publication Date

    The date-last-revised of the APE (which should be the same as the accepted date for new APEs)

    Title

    Astropy Proposal for Enhancement <number>: <title> (APE <number>)

    Authors

    The APE authors (directly from the APE text, but with ORCIDs if possible)

    Description

    The APE abstract (copy/paste the rendered HTML from GitHub)

    License

    CC-Attribution (default)

    Related/alternate identifiers

    Github link to the APE file at the specific merge commit (e.g. https://github.com/astropy/astropy-APEs/blob/42951733ac42c0ea178d8df30705274a43c93091/APE1.rst) as "is supplemented by this upload". If this is a revised version, this should be the URL of the commit where the APE was revised.

  8. Get the source for the DOI badge from the newly-created Zenodo record page by clicking on the DOI badge on the right side of the page and copying the reStructuredText source.

  9. On GitHub (or locally) edit README.rst and add an entry for the new APE to the "Accepted APEs" table. Use the DOI link from the previous step. Add corresponding RST link refs for both the DOI link and the new APE. Preview the update and test the links to make sure they are all correct. Then commit directly to main (or PR if you prefer).

  10. Send an email to astropy-dev announcing the acceptance In general this should just point to the accepted APE rather than providing additional decision rationale.

Updating APEs

In the cases where an updated APE requires updating (e.g. references to a new APE that supercedes it, clarifying information that emerges after the APE is accepted, etc.), changes can be made directly via PR, but the "date-last-revised" should be updated in the APE. Additionally, the Zenodo entry will need to be updated with a new version of the APE (not a completely new Zenodo entry), by using the "New version" button and then filling out the forms as described above.

If you locally cloned this repo before 10 Mar 2021

The primary branch for this repo has been transitioned from master to main. If you have a local clone of this repository and want to keep your local branch in sync with this repo, you'll need to do the following in your local clone from your terminal:

git fetch --all --prune
# you can stop here if you don't use your local "master"/"main" branch
git branch -m master main
git branch -u origin/main main

If you are using a GUI to manage your repos you'll have to find the equivalent commands as it's different for different programs. Alternatively, you can just delete your local clone and re-clone!

astropy-apes's People

Contributors

adrn avatar astrofrog avatar bsipocz avatar cadair avatar cdeil avatar crawfordsm avatar eblur avatar embray avatar eteq avatar hamogu avatar karllark avatar keflavich avatar kelle avatar mdboom avatar mhvk avatar mwcraig avatar namurphy avatar nicole-numfocus avatar nmearl avatar perrygreenfield avatar pllim avatar taldcroft avatar

Watchers

 avatar

Forkers

nstarman

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.