Skip to content

Commit 704f03d

Browse files
Merge pull request #110 from neuroinformatics-unit/smg/gsoc
Add GSoC site
2 parents 50ccbdf + 642efe6 commit 704f03d

File tree

10 files changed

+791
-37
lines changed

10 files changed

+791
-37
lines changed

docs/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ numpydoc
66
nbsphinx
77
linkify-it-py
88
ablog
9-
sphinx-sitemap
9+
sphinx-sitemap
10+
sphinx-icon

docs/source/conf.py

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717

1818
# -- Project information -----------------------------------------------------
1919

20-
project = 'neuroinformatics-unit homepage'
21-
copyright = '2022, Neuroinformatics Unit'
22-
author = 'Neuroinformatics Unit'
20+
project = "neuroinformatics-unit homepage"
21+
copyright = "2022, Neuroinformatics Unit"
22+
author = "Neuroinformatics Unit"
2323

2424
# The full version, including alpha/beta/rc tags
25-
release = '0.0.1'
25+
release = "0.0.1"
2626

2727

2828
# -- General configuration ---------------------------------------------------
@@ -31,18 +31,18 @@
3131
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
3232
# ones.
3333
extensions = [
34-
'sphinx.ext.githubpages',
35-
'sphinx.ext.autodoc',
36-
'sphinx.ext.autosummary',
37-
'sphinx.ext.viewcode',
38-
'sphinx.ext.intersphinx',
39-
'sphinx.ext.napoleon',
40-
'sphinx_design',
41-
'sphinx_sitemap',
42-
'myst_parser',
43-
'numpydoc',
44-
'nbsphinx',
45-
'ablog',
34+
"sphinx.ext.githubpages",
35+
"sphinx.ext.autodoc",
36+
"sphinx.ext.autosummary",
37+
"sphinx.ext.viewcode",
38+
"sphinx.ext.intersphinx",
39+
"sphinx.ext.napoleon",
40+
"sphinx_design",
41+
"sphinx_sitemap",
42+
"myst_parser",
43+
"numpydoc",
44+
"nbsphinx",
45+
"ablog",
4646
]
4747

4848
# Configure the myst parser to enable cool markdown features
@@ -65,16 +65,17 @@
6565
myst_heading_anchors = 3
6666

6767
# Add any paths that contain templates here, relative to this directory.
68-
templates_path = ['_templates']
68+
templates_path = ["_templates"]
6969

7070
# Ignore links that do not work with github actions link checking
7171
# https://github.com/neuroinformatics-unit/actions/pull/24#issue-1978966182
72-
linkcheck_anchors_ignore_for_url = [
73-
"https://neuroinformatics.zulipchat.com/"
74-
]
72+
linkcheck_anchors_ignore_for_url = ["https://neuroinformatics.zulipchat.com/"]
7573
linkcheck_ignore = [
7674
"https://opensource.org",
77-
]
75+
"https://www.incf.org/recommendations-gsoc-contributors",
76+
"https://www.incf.org/sites/default/files/files/INCF_GSoC_2022_Application_template.pdf",
77+
78+
]
7879

7980

8081
# List of patterns, relative to source directory, that match files and
@@ -93,27 +94,28 @@
9394
# The theme to use for HTML and HTML Help pages. See the documentation for
9495
# a list of builtin themes.
9596
#
96-
html_theme = 'pydata_sphinx_theme'
97-
html_title = 'NIU'
97+
html_theme = "pydata_sphinx_theme"
98+
html_title = "NIU"
9899

99100
# Redirect the webpage to another URL
100101
# Sphinx will create the appropriate CNAME file in the build directory
101102
# https://www.sphinx-doc.org/en/master/usage/extensions/githubpages.html
102-
html_baseurl = 'https://neuroinformatics.dev/'
103+
html_baseurl = "https://neuroinformatics.dev/"
103104
sitemap_url_scheme = "{link}"
104105

105106
# Add any paths that contain custom static files (such as style sheets) here,
106107
# relative to this directory. They are copied after the builtin static files,
107108
# so a file named "default.css" will overwrite the builtin "default.css".
108-
html_static_path = ['_static']
109+
html_static_path = ["_static"]
109110

110111
html_css_files = [
111-
'css/custom.css',
112+
"css/custom.css",
113+
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"
112114
]
113115

114116
html_favicon = "_static/logo_light.png"
115117

116-
## Cutomize the theme
118+
# Cutomize the theme
117119
html_theme_options = {
118120
"icon_links": [
119121
{
@@ -150,9 +152,9 @@
150152
"icon": "fa-solid fa-comments",
151153
# The type of image to be used (see below for details)
152154
"type": "fontawesome",
153-
}
154-
],
155-
"logo": {
155+
},
156+
],
157+
"logo": {
156158
"text": "NIU",
157159
"image_light": "logo_light.png",
158160
"image_dark": "logo_dark.png",
@@ -161,13 +163,13 @@
161163
"footer_end": ["footer_end"],
162164
"analytics": {
163165
"google_analytics_id": "G-6260TGM7TY",
164-
}
165-
166+
},
166167
}
167168

168169
html_sidebars = {
169-
'blog/index': [
170-
# Ablog sidebars (https://ablog.readthedocs.io/en/stable/manual/ablog-configuration-options.html#sidebars)
171-
'ablog/recentposts.html'], # 'ablog/archives.html << we may want to use archives when we have more posts.
170+
"blog/index": [
171+
# Ablog sidebars (https://ablog.readthedocs.io/en/stable/manual/ablog-configuration-options.html#sidebars)
172+
"ablog/recentposts.html"
173+
], # 'ablog/archives.html << we may want to use archives when we have more posts.
172174
"**": [],
173175
}
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# GSoC NIU Contributor Application Guidelines
2+
3+
## General tips
4+
These tips are largely based on the [OpenAstronomy guidelines](https://openastronomy.org/gsoc/student_guidelines.html), with adaptations for the NIU organisation.
5+
6+
1. **Get in touch with the community**
7+
8+
Open source work is done and communicated in public - the idea here is to demonstrate that you can do this! Join our [Zulip](https://neuroinformatics.zulipchat.com/), or browse through our GitHub repositories - you can find a full list of the NIU repositories under the [NIU GitHub organisation](https://github.com/neuroinformatics-unit) and the [Brainglobe](https://github.com/brainglobe) one. Read, ask questions, get to know the people involved, and participate in discussions.
9+
10+
Just introduce yourself, and feel free to can ask questions about specific projects, the development process, recommended readings or the community.
11+
12+
2. **Become a user**
13+
14+
A great way to get started in the community of our open-source tools is to experience them as a user. Try to install and use our tools, experiment with the code, and report any issues you find. This will help you understand the tools better and will give you a better idea of what you can contribute.
15+
16+
A good starting point as a user could be `movement`'s gallery of [examples](https://movement.neuroinformatics.dev/examples/index.html) or BrainGlobe's [tutorials](https://brainglobe.info/tutorials/index.html).
17+
18+
3. **Get ready to be a developer**
19+
20+
Create a [GitHub](https://github.com/) account and learn how to use [git](https://git-scm.com/) - the version control system used by most open-source projects.
21+
22+
If you are not familiar with either, there are many resources available online to help you get started. Some nice ones are:
23+
24+
- [Software carpentry's Version Control with Git](https://swcarpentry.github.io/git-novice/)
25+
- [GitHub skills courses](https://skills.github.com/) - especially the first day and first week series.
26+
- [git visualisation tool](https://cfinnberg.github.io/visualizing-git/)
27+
- [Oh my git!](https://ohmygit.org/) an open-source game about Git.
28+
- [Julia Evan's How Git Works! zine](https://jvns.ca/blog/2024/04/25/new-zine--how-git-works-/)
29+
- the [NIU's software skills courses](https://software-skills.neuroinformatics.dev/courses/index.html)
30+
31+
4. **Get started with open-source development**
32+
33+
Check the GitHub issues for the projects you are interested in. Sometimes issues are labeled as "good first issue" or "help wanted". These are usually easier to solve and are a good way to get started with the project. Otherwise, have a look and see if there are any issues you can help with!
34+
35+
You will be expected to submit a pull request (ideally to one of the NIU projects) before you submit your application. It does not have to be accepted - the goal is to show that you know how git, GitHub, pull requests and code reviews work. This also allows mentors to evaluate your applications beyond a pdf, and based on a real code contribution. If you have previously contributed to an NIU or other open source project, you can point to those pull requests in your application too.
36+
37+
If you are new to open source software or would like a refresher, these are some nice resources to check:
38+
39+
- the [First contributions project](https://github.com/firstcontributions/first-contributions)
40+
- the GitHub blog post: [New to open source? Here’s everything you need to get started](https://github.blog/open-source/new-to-open-source-heres-everything-you-need-to-get-started/)
41+
42+
Before contributing to a project, make sure you read through their contributing guidelines. These will give you an idea of the required steps, and what is expected of you. An example is `movement`'s [How to Contribute guide](https://movement.neuroinformatics.dev/community/contributing.html#target-contributing). The NIU also publishes some general [development guidelines](https://neuroinformatics.dev/get-involved/languages_frameworks.html).
43+
44+
45+
5. **Prepare your application**
46+
47+
Make sure you carefully read through the [GSoC guidelines](https://google.github.io/gsocguides//student/writing-a-proposal) (and these guidelines!) when preparing your application.
48+
49+
Select one of the projects from our [project list](projects_2025/index) and prepare a plan on how to tackle it, and the time you will need to complete it. Use our [application template](#application-template) to structure your proposal and don't be shy to ask for feedback from the mentors or the community.
50+
51+
Include specific examples in your application to support your skills - these will help reviewers build a better picture of you. These could be things like "Qualified in final round of XXXX" or "Participated in XXXX hackathon".
52+
53+
54+
6. **Submit your application**
55+
56+
Remember to submit your application before [the deadline](https://developers.google.com/open-source/gsoc/timeline#april_8_-_1800_utc)!
57+
58+
Please do not send any applications directly to the NIU team - all applications must go through [Google's application system](https://summerofcode.withgoogle.com/)
59+
60+
61+
## Application template
62+
63+
Please use the following template to submit your application to the NIU GSoC 2025 program.
64+
65+
The more closely you follow this template, the easier it will be for us to review your application! Please include clear headings for all the different sections.
66+
67+
### Personal details
68+
Please include the following information:
69+
- **Full name** (include preferred name if desired)
70+
- **Email**
71+
- **GitHub username**
72+
- **Zulip username**
73+
- **Location & time-zone**
74+
- **Personal website / project portfolio** (optional)
75+
- **Code contribution**
76+
77+
Please link a pull request or code sample, ideally submitted to your chosen project. It must be publicly visible and represent your own work, although you may have help from other developers in the community to further improve it. You can link more than one contribution or pull request if desired.
78+
79+
### Project proposal
80+
Extension: <u> max 1 page </u>
81+
82+
- **Title.**
83+
Please clearly include the title of the project you are applying for and the tool it refers to. E.g. "movement: support for Kalman filters".
84+
85+
- **Synopsis.**
86+
Briefly explain: what is the project about? Why is it important? What are the goals? What are the deliverables? How would the open source community benefit from this project?
87+
88+
- **Implementation timeline.**
89+
Please include the following information:
90+
1. A bullet point list with **minimal set of deliverables**
91+
2. Additional **stretch goals** or "if time allows" deliverables (optional)
92+
3. A detailed **weekly timeline**: when do you plan to do what?
93+
- Please use a week as a minimal unit of time, and include any planned vacations or other commitments.
94+
- This timeline could be formatted as a table.
95+
- Remember to also include the number of hours per week you plan to work on the GSoC project.
96+
- When estimating the required time for a task, keep in mind deliverables should include investigation/research, coding and documentation.
97+
- The default schedule for GSoC is 12 weeks - see the [GSoC timeline](https://developers.google.com/open-source/gsoc/timeline) for precise dates.
98+
- Also please specify any prep work you plan to do during the "Community bonding period".
99+
- Usually week 1's deliverables already include some code. Week 6 marks the mid-term point, where usually more than half of the project should be completed. At the end of week 11 you may want to try to "freeze" the code and complete any remaining tests or documentation in weeks 11 and 12.
100+
101+
- **Communication plan.**
102+
Please explain: how do you plan to communicate with your mentor? How often? (e.g., daily or weekly stand-ups, longer meetings..?) What communication channels will you use? (e.g., video calls, Zulip chat...?)
103+
104+
### Personal statement
105+
106+
Extension: <u> max 3/4 page </u>
107+
108+
- **Past experience.**
109+
Please describe your past experience with programming, open source, or any other experience you deem relevant for the project you are applying for. Any successful open source projects, published work or content of the like should definitely be highlighted.
110+
- **Motivation: why this project?**
111+
Why are you interested in this specific project? What aspects of it motivate you to work on it? How does it link to your personal or professional interests? How do you envision its impact in the open source community?
112+
- **Match: why you?**
113+
Why should we choose you for this project? What unique skills or experiences can you bring to the project and the community? Is there something you have worked on in the past that makes you particularly well-suited for this project?
114+
- **Availability.**
115+
Please state if you have any other plans for the work period (school work, another job, planned vacation)? If so, how do you plan to combine them with your GSoC work?
116+
117+
### GSoC
118+
119+
Extension: <u> max 1/4 page </u>
120+
121+
- **GSoC experience.**
122+
Have you participated in GSoC before? If so, when and with which project? What was your experience like? If you haven't, what do you expect from the program?
123+
- **Are you also applying to projects with other organisations in GSoC 2025?**
124+
If so, which ones? How do you plan to manage your time and commitments if you are accepted by multiple organizations? What would be your preference in case of a tie?
125+
126+
127+
## References
128+
- [GSoC Contributor guide: writing a proposal](https://google.github.io/gsocguides/student/writing-a-proposal)
129+
- [INCF Application template 2022](https://www.incf.org/sites/default/files/files/INCF_GSoC_2022_Application_template.pdf)
130+
- [OpenAstronomy Application template](https://github.com/OpenAstronomy/openastronomy.github.io/wiki/Contributor-Application-template)
131+
- [Python Software Foundation Application template](https://github.com/python-gsoc/python-gsoc.github.io/blob/main/ApplicationTemplate.md)

0 commit comments

Comments
 (0)