Skip to content

Commit 4b2fc98

Browse files
committed
TMP: history
1 parent 5b68732 commit 4b2fc98

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed

history.rst

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
.. _astropy-org-history:
2+
3+
A brief history of the Astropy Project
4+
======================================
5+
6+
Some of the earliest use of Python in astronomy was at the Space
7+
Telescope Science Institute (STScI) with their release of PyRAF
8+
around 2000. That release helped raise awareness of Python as a
9+
scripting language, leading to its use at more institutions. STScI
10+
was also active in the development of Python tools for science,
11+
including a pre-cursor to numpy and early versions of matplotlib.
12+
By the early 2010s there were multiple independent efforts by
13+
institutions and individuals to use Python for data analysis.
14+
15+
The initial trigger for Astropy was a `conversation in 2011 on the
16+
astropy mailing list (which pre-dated The Astropy Project by over
17+
a
18+
decade) <https://mail.python.org/pipermail/astropy/2011-June/001075.html>`__
19+
on the topic of how many “general astronomy” packages were being
20+
written in Python. This discussion thread led to the creation of a
21+
`short-lived
22+
wiki <https://web.archive.org/web/20140811231510/http://astropy.wikispaces.com/>`__
23+
where over 100 participants voted in favor of a shared package to
24+
combine the efforts of these different developers into a single
25+
space. This demonstrated broad interest in such an effort. With
26+
that motivation and charge in place, this same wiki was used to
27+
organize a planning meeting for this effort.
28+
29+
That planning meeting, in Fall 2011, was the formal beginning of
30+
the Astropy Project and was held at the `Harvard Center for
31+
Astrophysics <https://github.com/astropy/astropy/wiki/CfAMeeting2011%20“CfA%20Astropy%20meeting”>`__.
32+
The `list of
33+
attendees <https://github.com/astropy/astropy/wiki/CfAMeeting2011#participants%20“CfA%20meeting%20participants”>`__
34+
at that meeting underscores what has been essential to the launch,
35+
growth, and continued development of Astropy: it was a mix of
36+
graduate students, postdocs, scientists, and professional software
37+
developers. The attendees with permanent positions were willing to
38+
contribute both code and their time to the project; Space
39+
Telescope Science Institute (STScI) additionally contributed
40+
substantial staff time to the project. The early-career attendees
41+
had either already devoted substantial time to code development,
42+
would do so over the ensuing years, or both.
43+
44+
The foundation of Astropy’s subsequent success was the combination
45+
of institutional resources, a deliberate effort to include and
46+
foster the growth of a broad community of contributors, the rapid
47+
growth of GitHub and the surrounding ecosystem of open source
48+
development tools, and a willingness of early-career professionals
49+
to contribute code to an open community project. The initial
50+
release for users of the core astropy package, version 0.2 on
51+
February 19, 2013, was less than 18 months after the CfA meeting
52+
and already contained many of the core subpackages that are part
53+
of the package today. That was possible only because some of the
54+
code already existed in a form that could be adapted to Astropy.
55+
Major pieces had been written by staff at STScI that were
56+
contributed by the Institute to the project. There were also large
57+
contributions from early participants who were graduate students
58+
and postdocs.
59+
60+
By the time of the first stable release in 2013, the number of
61+
contributors to the code base was over 20, including several
62+
people who were not involved in the initial meeting. Though most
63+
of the lines of code at that point had been written by a handful
64+
of people, the effort they put into welcoming and supporting new
65+
contributors was just as important and is not easily captured in a
66+
single number. The project made an effort early on to provide
67+
prompt, constructive, and welcoming feedback to new contributors.
68+
The promptness was a key factor in encouraging early contributors
69+
and was possible in part because STScI devoted substantial staff
70+
time to the project with the explicit intent of growing the
71+
community of contributors.
72+
73+
One of the Project’s first efforts to formally recruit early
74+
career scientists was participation in `Google’s Summer of Code
75+
(GSoC)
76+
program <https://github.com/astropy/astropy/wiki#google-summer-of-code>`__.
77+
That program provides participants with a stipend in exchange for
78+
doing extensive work on open source projects during the northern
79+
hemisphere summer. It was the first of several efforts to grow the
80+
community of contributors. These efforts yielded a handful of very
81+
active long-term contributors to the project whose cumulative work
82+
goes well beyond the initial code contributions made by
83+
participants.
84+
85+
Another critical element in the growth of the Astropy Project was
86+
the Python in Astronomy conference series. The first Python in
87+
Astronomy conference was held in 2015. The hope was that the
88+
conference would encourage the development of Python packages in
89+
astronomy outside of the astropy core, foster the adoption of
90+
Astropy in the broader community, and serve as an introduction to
91+
contributing to open source software. Though it was not an Astropy
92+
conference, many of the astropy core developers were attending.
93+
For example, the initial Code of Conduct for the Astropy Project
94+
was written at the conference and the “Python in Astronomy”
95+
Facebook group was started, among `other
96+
activities <http://openastronomy.org/pyastro/2015/>`__.
97+
98+
The intent from the first coordination meeting in 2011 was to put
99+
some functionality into more specialized packages, called
100+
affiliated packages, that were developed independent of the core
101+
project but followed the same coding, testing and documentation
102+
conventions and often used the same continuous integration (CI)
103+
infrastructure. The first affiliated packages were created in
104+
2011. That model has been quite successful: as of early 2022 there
105+
are almost 50 affiliated packages (pre-APE 22). The use of common
106+
conventions across the packages has eased the burden of
107+
maintaining those packages as the project ecosystem grows.
108+
109+
Deliberate community development has been essential to the success
110+
of the Project and has included several aspects. Astropy was an
111+
early and enthusiastic adopter of an explicit Code of Conduct.
112+
This served to formalize the welcoming atmosphere established
113+
early in the project. Community presence has included setting up
114+
social media spaces for Python in Astronomy, workshops at AAS
115+
meetings, work on learning materials for Astropy and development
116+
of the project’s web presence. The Facebook group “Python in
117+
Astronomy’’ has been wildly successful with over 6400 members and
118+
nearly daily postings. This success is in part because of careful
119+
moderation by members of the project early in the list's history
120+
to keep conversations on topic, though community moderators have
121+
taken on more of those responsibilities as time has gone on.
122+
Workshops at AAS meetings have helped several hundred astronomers
123+
adopt Python and astropy as part of their workflow.
124+
125+
The day-to-day effort of managing the Astropy codebase is
126+
unglamorous but critical. Tasks include promptly labeling and
127+
triaging new issues, responding to new pull requests, and watching
128+
for and fixing changes that break part of the infrastructure.
129+
There have been times when that infrastructure has shifted very
130+
rapidly, such as when `Travis-CI stopped hosting open source
131+
packages <https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing%20“Travis-CI%20open%20sources%20limits”>`__.
132+
Transitioning the entire ecosystem to a new infrastructure
133+
required substantial effort by a number of people, though it was
134+
facilitated primarily by a single individual. Indeed, much of this
135+
day-to-day work has been done by a handful of people, many of whom
136+
are in permanent positions at STScI and a few other institutions.
137+
138+
The patterns at the beginning of the project have persisted
139+
throughout: it is the combined effort of individuals and
140+
institutions that includes scientists and software developers. It
141+
includes early-career individuals and those in permanent
142+
positions.
143+
144+
There are a few important changes to the project since its
145+
inception. One is external funding from the Moore Foundation in
146+
2019 and from NASA in 2022, which provides monetary support for
147+
contributors at all career stages in addition to funding for
148+
Project needs. Another is the establishment of a formal governance
149+
structure (`APE 0 adopted in
150+
2021 <https://github.com/astropy/astropy-APEs/blob/main/APE0.rst>`__)
151+
that is open and responsive to community needs.
152+
153+
Another development that was perhaps not envisioned at the start
154+
of the project is some contributors choosing to make Astropy an
155+
essential part of their career. Their involvement since the
156+
beginning of the project has provided continuity to the project
157+
and represents taking a risk that potential future employers may
158+
not scientifically value this software work, regardless of its
159+
impact on astronomy as a whole.
160+
161+
As of summer 2022, the success of the Project hinged on a number
162+
of factors, including the willingness of institutions and
163+
individuals to contribute extensive prior work to a community
164+
project, a deliberate effort to foster new contributors, and an
165+
effort to create a welcoming community. It is difficult to see how
166+
the project could have come so far absent any of these factors or
167+
absent any one of the groups of contributors. Institutional
168+
support and individual contributions has been inextricably linked.

0 commit comments

Comments
 (0)