Skip to content

Commit 78e13d8

Browse files
committed
Rename RST files to Markdown extension
1 parent 3c79d56 commit 78e13d8

File tree

10 files changed

+184
-218
lines changed

10 files changed

+184
-218
lines changed
Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,61 @@
1-
Contributing to Parcels
2-
=======================
1+
# Contributing to Parcels
32

4-
Why contribute?
5-
---------------
3+
## Why contribute?
64

75
`Lagrangian Ocean Analysis <https://doi.org/10.1016/j.ocemod.2017.11.008>`_ is one of the primary modelling tools available to oceanographers to understand how ocean currents transport material. This modelling approach allows researchers to model the ocean and understand the `movement of water <https://doi.org/10.1029/2023GL105662>`_ in the ocean itself (or even `on other planets <https://doi.org/10.3847/1538-4357/ac9d94>`_), as well as the transport of `nutrients <https://doi.org/10.1029/2023GL108001>`_, `marine organisms <https://doi.org/10.3354/meps14526>`_, `oil <https://doi.org/10.1590/0001-3765202220210391>`_, `plastic <https://doi.org/10.1038/s41561-023-01216-0>`_, as well as `almost <https://doi.org/10.1016/j.robot.2024.104730>`_ `anything <https://doi.org/10.1111/cobi.14295>`_ `else <https://doi.org/10.1016/j.marpolbul.2023.115254>`_ that would be adrift at sea. Since ocean currents play a key role in climate by storing heat and carbon, and also in the formation of the 'plastic soup', understanding transport phenomena in the ocean is crucial to support a more sustainable future.
86

9-
The Parcels code, for which development started in 2015, is now one of the most widely used tools for Lagrangian Ocean Analysis. It's used by dozens of groups around the world - see `this list <https://oceanparcels.org/papers-citing-parcels#papers-citing-parcels>`_ for a full list of the peer-reviewed articles using Parcels. Its flexibility for users to create new, custom 'behaviours' (i.e. let virtual particles be controlled by other mechanics than only the ocean flow) and its compatibility with many different types of hydrodynamic input data are the two key features.
7+
The Parcels code, for which development started in 2015, is now one of the most widely used tools for Lagrangian Ocean Analysis. It's used by dozens of groups around the world - see `this list <https://oceanparcels.org/papers-citing-parcels#papers-citing-parcels>`\_ for a full list of the peer-reviewed articles using Parcels. Its flexibility for users to create new, custom 'behaviours' (i.e. let virtual particles be controlled by other mechanics than only the ocean flow) and its compatibility with many different types of hydrodynamic input data are the two key features.
108

119
.. note::
1210

1311
Want to learn more about Lagrangian ocean analysis? Then look at `Lagrangian ocean analysis: Fundamentals and practices <https://www.sciencedirect.com/science/article/pii/S1463500317301853>`_ for a review of the literature.
1412

15-
----
13+
---
1614

1715
There are two primary groups that contribute to Parcels; oceanographers who bring domain specific understanding about the physical processes and modelling approaches, as well as software developers who bring their experience working with code. **All contributions are welcome no matter your background or level of experience**.
1816

1917
.. note::
2018

2119
The first component of this documentation is geared to those new to open source. Already familiar with GitHub and open source? Skip ahead to the `Development`_ section.
2220

23-
What is open source?
24-
--------------------
21+
## What is open source?
2522

2623
Open source is a category of software that is open to the public, meaning that anyone is able to look at, modify, and improve the software. Compare this to closed source software (e.g., Microsoft Word, or Gmail) where only those working for the company on the product are able to look at the source code, or make improvements.
2724

28-
Software being open source allows bugs in the code to be quickly identified and fixed, as well as fosters communities of people involved on projects. Most open source software have permissible licenses making them free to modify, and use even in commercial settings. Parcels, for example, is open source and `licensed under the MIT License <https://github.com/OceanParcels/parcels/blob/main/LICENSE.md>`_.
25+
Software being open source allows bugs in the code to be quickly identified and fixed, as well as fosters communities of people involved on projects. Most open source software have permissible licenses making them free to modify, and use even in commercial settings. Parcels, for example, is open source and `licensed under the MIT License <https://github.com/OceanParcels/parcels/blob/main/LICENSE.md>`\_.
2926

30-
This visibility of the codebase results in a higher quality, as well as a more transparent and stable product. This is important in research for reproducibility, as well as in industry where stability is crucial. Open source is not some niche category of software, but in fact `forms the backbone of modern computing and computing infrastructure <https://www.newstatesman.com/science-tech/2016/08/how-linux-conquered-world-without-anyone-noticing>`_ and is used widely in industry. A lot of the digital services that you use (paid, or free) depend on open source code in one way or another.
27+
This visibility of the codebase results in a higher quality, as well as a more transparent and stable product. This is important in research for reproducibility, as well as in industry where stability is crucial. Open source is not some niche category of software, but in fact `forms the backbone of modern computing and computing infrastructure <https://www.newstatesman.com/science-tech/2016/08/how-linux-conquered-world-without-anyone-noticing>`\_ and is used widely in industry. A lot of the digital services that you use (paid, or free) depend on open source code in one way or another.
3128

3229
Most open source code is managed through a version control system called Git. Once you get past the Git specific terminology, the fundamental nature of it is quite understandable. To give an overview: Git, which you can install on your local machine, is a tool which allows you to create snapshots (aka., ”commits”) of a codebase. These snapshots each have a custom message attached to it, forming a time-line for the life of the project. This allows you to incrementally make updates to a codebase, while also having full control to undo any changes (you can even use Git to see which line of code was written by who).
3330

3431
A codebase (in Git terms, this is called a “repository” or “repo” for short) can be uploaded to a platform such as GitHub for hosting purposes, allowing for multiple people to be involved in a project. These platforms add a social media and project management aspect, where tasks can be created (these tasks are called “issues”, and can represent bugs, suggested features, or documentation improvements), assigned to people, and be addressed in changes to the codebase (i.e., addressed in a “pull request”, which details exactly which parts of the codebase need to change to fix a particular issue). A common workflow is for an issue to be created, discussed, and then addressed by one or more pull requests.
3532

36-
Exactly how to use Git and GitHub is beyond the scope of this documentation, and there are many tutorials online on how to do that (here are some good ones: `Version Control with Git by Software carpentry <https://swcarpentry.github.io/git-novice/>`_, `Learn Git by freeCodeCamp.org <https://www.youtube.com/watch?v=zTjRZNkhiEU>`_).
33+
Exactly how to use Git and GitHub is beyond the scope of this documentation, and there are many tutorials online on how to do that (here are some good ones: `Version Control with Git by Software carpentry <https://swcarpentry.github.io/git-novice/>`_, `Learn Git by freeCodeCamp.org <https://www.youtube.com/watch?v=zTjRZNkhiEU>`_).
3734

38-
Your first contribution
39-
-----------------------
35+
## Your first contribution
4036

4137
There are many ways that you can contribute to Parcels. You can:
4238

4339
- Participate in discussion about Parcels, either through the `issues <https://github.com/OceanParcels/parcels/issues>`_ or `discussions <https://github.com/OceanParcels/parcels/discussions>`_ tab
44-
- Suggest improvements to `tutorials <../documentation/index.rst>`_
45-
- Suggest improvements to `documentation <../index.rst>`_
40+
- Suggest improvements to `tutorials <../documentation/index.rst>`\_
41+
- Suggest improvements to `documentation <../index.rst>`\_
4642
- Write code (fix bugs, implement features, codebase improvements, etc)
4743

4844
All of these require you to [make an account on GitHub](https://github.com/signup), so that should be your first step.
4945

5046
If you want to suggest quick edits to the documentation, it's as easy as going to the page and clicking "Edit on GitHub" in the righthand panel. For other changes, it's a matter of looking through the `issue tracker <https://github.com/OceanParcels/parcels/issues>`_ which documents tasks that are being considered. Pay particular attention to `issues tagged with "good first issue" <https://github.com/OceanParcels/parcels/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>`_, as these are tasks that don't require deep familiarity with the codebase. Once you've chosen an issue you would like to contribute towards, comment on it to flag your interest in working on it. This allows the community to know who's interested, and provide any guidance in its implementation (maybe the scope has changed since the issue was last updated).
5147

52-
If you're having trouble using Parcels, feel free to create a discussion in our Discussions tab and we'll be happy to support. Want to suggest a feature, or have encountered a problem that is a result of a bug in Parcels, then search for an issue in the tracker or `create a new one <https://github.com/OceanParcels/parcels/issues/new/choose>`_ with the relevant details.
48+
If you're having trouble using Parcels, feel free to create a discussion in our Discussions tab and we'll be happy to support. Want to suggest a feature, or have encountered a problem that is a result of a bug in Parcels, then search for an issue in the tracker or `create a new one <https://github.com/OceanParcels/parcels/issues/new/choose>`\_ with the relevant details.
5349

54-
In the `Projects panel <https://github.com/OceanParcels/parcels/projects?query=is%3Aopen>`_, you'll see the "Parcels development" project. This is used by the core development team for project management, as well as drafting up new ideas for the codebase that aren't mature enough to be issues themselves. Everything in "backlog" is not being actively worked on and is fair game for open source contributions.
50+
In the `Projects panel <https://github.com/OceanParcels/parcels/projects?query=is%3Aopen>`\_, you'll see the "Parcels development" project. This is used by the core development team for project management, as well as drafting up new ideas for the codebase that aren't mature enough to be issues themselves. Everything in "backlog" is not being actively worked on and is fair game for open source contributions.
5551

56-
.. _editing-parcels-code:
52+
.. \_editing-parcels-code:
5753

58-
Development
59-
-----------
54+
## Development
6055

6156
Environment setup
62-
~~~~~~~~~~~~~~~~~
57+
58+
```
6359
6460
.. note::
6561
@@ -150,3 +146,4 @@ Code guidelines
150146
----
151147
152148
That's it! Thank you for reading and we'll see you on GitHub 😁.
149+
```
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
1-
Community
2-
=========
1+
# Community
32

43
These sections contain documentation relevant to the Parcels community.
54
See the sections in the primary sidebar and below to explore.
65

76
.. toctree::
8-
:caption: User documentation
9-
:maxdepth: 1
7+
:caption: User documentation
8+
:maxdepth: 1
109

1110
contributing
1211
Versioning Policy <policies>
1312
Release Notes <https://github.com/OceanParcels/Parcels/releases>
1413
Parcels v4.0 Migration Guide <v4-migration>
1514

16-
17-
1815
.. toctree::
19-
:caption: Maintainer documentation
20-
:maxdepth: 1
16+
:caption: Maintainer documentation
17+
:maxdepth: 1
2118

2219
maintainer
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Python Example Scripts
2+
3+
## example_brownian.py
4+
5+
.. literalinclude:: ../examples/example_brownian.py
6+
:language: python
7+
:linenos:
8+
9+
## example_decaying_moving_eddy.py
10+
11+
.. literalinclude:: ../examples/example_decaying_moving_eddy.py
12+
:language: python
13+
:linenos:
14+
15+
## example_globcurrent.py
16+
17+
.. literalinclude:: ../examples/example_globcurrent.py
18+
:language: python
19+
:linenos:
20+
21+
## example_mitgcm.py
22+
23+
.. literalinclude:: ../examples/example_mitgcm.py
24+
:language: python
25+
:linenos:
26+
27+
## example_moving_eddies.py
28+
29+
.. literalinclude:: ../examples/example_moving_eddies.py
30+
:language: python
31+
:linenos:
32+
33+
## example_nemo_curvilinear.py
34+
35+
.. literalinclude:: ../examples/example_nemo_curvilinear.py
36+
:language: python
37+
:linenos:
38+
39+
## example_ofam.py
40+
41+
.. literalinclude:: ../examples/example_ofam.py
42+
:language: python
43+
:linenos:
44+
45+
## example_peninsula.py
46+
47+
.. literalinclude:: ../examples/example_peninsula.py
48+
:language: python
49+
:linenos:
50+
51+
## example_radial_rotation.py
52+
53+
.. literalinclude:: ../examples/example_radial_rotation.py
54+
:language: python
55+
:linenos:
56+
57+
## example_stommel.py
58+
59+
.. literalinclude:: ../examples/example_stommel.py
60+
:language: python
61+
:linenos:

docs/documentation/additional_examples.rst

Lines changed: 0 additions & 72 deletions
This file was deleted.

docs/documentation/index.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Documentation and Tutorials
2+
3+
Parcels has several documentation and tutorial Jupyter notebooks and scripts which go through various aspects of Parcels. Static versions of the notebooks are available below via the gallery in the site, with the interactive notebooks being available either completely online at the following `Binder link <https://mybinder.org/v2/gh/OceanParcels/parcels/main?labpath=docs%2Fexamples%2Fparcels_tutorial.ipynb>`\_. Following the gallery of notebooks is a list of scripts which provide additional examples to users. You can work with the example notebooks and scripts locally by downloading :download:`parcels_tutorials.zip </_downloads/parcels_tutorials.zip>` and running with your own Parcels installation.
4+
5+
.. nbgallery::
6+
:caption: Overview
7+
:name: tutorial-overview
8+
9+
../examples/tutorial_parcels_structure.ipynb
10+
../examples/parcels_tutorial.ipynb
11+
../examples/tutorial_output.ipynb
12+
13+
.. nbgallery::
14+
:caption: Setting up FieldSets
15+
:name: tutorial-fieldsets
16+
17+
../examples/documentation_indexing.ipynb
18+
../examples/tutorial_nemo_curvilinear.ipynb
19+
../examples/tutorial_nemo_3D.ipynb
20+
../examples/tutorial_croco_3D.ipynb
21+
../examples/tutorial_timevaryingdepthdimensions.ipynb
22+
../examples/tutorial_periodic_boundaries.ipynb
23+
../examples/tutorial_interpolation.ipynb
24+
../examples/tutorial_unitconverters.ipynb
25+
26+
.. nbgallery::
27+
:caption: Creating ParticleSets
28+
:name: tutorial-particlesets
29+
30+
../examples/tutorial_delaystart.ipynb
31+
32+
.. nbgallery::
33+
:caption: Writing kernels to be executed on each particle
34+
:name: tutorial-kernels
35+
36+
../examples/tutorial_diffusion.ipynb
37+
../examples/tutorial_sampling.ipynb
38+
../examples/tutorial_particle_field_interaction.ipynb
39+
../examples/tutorial_interaction.ipynb
40+
../examples/tutorial_analyticaladvection.ipynb
41+
../examples/tutorial_kernelloop.ipynb
42+
43+
.. nbgallery::
44+
:caption: Other tutorials
45+
:name: tutorial-other
46+
47+
../examples/tutorial_peninsula_AvsCgrid.ipynb
48+
../examples/documentation_MPI.ipynb
49+
../examples/documentation_stuck_particles.ipynb
50+
../examples/documentation_unstuck_Agrid.ipynb
51+
../examples/documentation_LargeRunsOutput.ipynb
52+
../examples/documentation_geospatial.ipynb
53+
../examples/documentation_advanced_zarr.ipynb
54+
55+
.. nbgallery::
56+
:caption: Worked examples
57+
:name: tutorial-examples
58+
59+
../examples/tutorial_Argofloats.ipynb
60+
../examples/documentation_homepage_animation.ipynb
61+
62+
## Python Example Scripts
63+
64+
.. toctree::
65+
66+
additional_examples

docs/documentation/index.rst

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)