11# Contribute
22
3- This section aims to explain how we develop and organise,
4- in order to help those that want to contribute to SimPhoNy.
3+ This section aims to explain how we develop and organize, in order to help
4+ those that want to contribute to SimPhoNy.
55
6- ## Background
7-
8- ### Tools
6+ ## Development tools
97
108The following are some of the technologies and concepts we use regularly.
119It might be useful to become familiar with them:
@@ -19,15 +17,16 @@ It might be useful to become familiar with them:
1917- [ Docker] ( https://www.docker.com/resources/what-container/ )
2018- Benchmarks
2119
22- ### Code Organisation
20+ ## Code organization
2321
24- There are 3 main categories of repos :
22+ There are 3 main categories of repositories :
2523
2624- The [ _ SimPhoNy_ repository] ( https://github.com/simphony/simphony-osp/tree/v4.0.0 )
27- contains the nucleus of SimPhoNy, the base on which the wrappers build.
28- - Each _ wrapper_ will be in its own repository on GitHub or GitLab,
29- mimicking
30- [ wrapper_development] ( https://github.com/simphony/wrapper-development ) .
25+ contains the core the SimPhoNy Open Simulation Platform, that the wrappers
26+ depend on.
27+ - Each _ wrapper_ is in its own repository on GitHub or GitLab, mimicking the
28+ [ wrapper-development] ( https://github.com/simphony/wrapper-development/tree/v4.0.0 )
29+ repository.
3130- [ _ docs_ ] ( https://github.com/simphony/docs/tree/v4.0.0 )
3231 holds the source for this documentation.
3332
@@ -39,14 +38,16 @@ There are also 4 types of branches:
3938- ` hotfix branch ` is where a critical software bug detected on the stable
4039 release (more on this later) is being solved.
4140
42- ## Developing workflow
41+ There may be ` master/main ` and ` dev ` branches for several major releases.
42+
43+ ## Development workflow
4344
4445- Every new feature or bug is defined in an issue and labelled accordingly.
4546 If there is something that is missing or needs improving,
46- make an issue in the appropriate project .
47+ make an issue in the appropriate repository .
4748- Generally, the issues are fixed by creating a new ` issue branch ` from the
4849 ` dev ` branch, committing to that branch and making a new Pull/Merge
49- Request when done. An owner of the project should be tagged for review.
50+ Request when done. A maintainer of the project should be tagged for review.
5051 They will review and merge the PR if the fix is correct, deleting the
5152 ` issue branch ` afterwards. The changes should be clearly explained in the
5253 issue/Pull Request.
@@ -63,18 +64,18 @@ There are also 4 types of branches:
6364 `hotfix branch`.
6465```
6566
66- - Once the features for a release have been reached , ` dev ` will be merged to
67+ - Once the features for a release have been developed , ` dev ` will be merged to
6768 ` master/main ` . Every new commit in the ` master/main ` branch generally
6869 corresponds to a new release, which is labelled with a
6970 [ git tag] ( https://git-scm.com/book/en/v2/Git-Basics-Tagging ) matching its
7071 version number. An exception to this rule may apply, for example when
7172 several critical hotfixes are applied in a row, as it would then be
72- better to just to publish a single release afterwards. In regard to
73- version numbering, we adhere to the
74- [ _ Semantic versioning _ ] ( https://semver.org/ ) rules.
73+ better to just publish a single release afterwards. In regard to version
74+ numbering, we adhere to the [ _ Semantic Versioning _ ] ( https://semver.org/ )
75+ rules.
7576
7677In the next image it can be seen how the branches usually look during this
77- workflow, and the different commits used to synchronise them:
78+ workflow, and the different commits used to synchronize them:
7879
7980<figure style =" display : table ; text-align :center ; margin-left : auto ; margin-right :auto " >
8081
@@ -84,10 +85,10 @@ workflow, and the different commits used to synchronise them:
8485
8586## Coding
8687
87- ### Documenting
88+ ### Documentation
8889
8990- All code must be properly documented with meaningful comments.
90- - For readability, we now follow the
91+ - For readability, we follow the
9192 [ Google docstring format] ( https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings ) .
9293- If some behaviour is very complex, in-line comments can be used.
9394 However, proper naming and clear operations are always preferred.
@@ -128,48 +129,39 @@ workflow, and the different commits used to synchronise them:
128129
129130### Continuous Integration
130131
131- - We currently run the CI through Github Actions/GitLab CI.
132+ - We currently run the CI through GitHub Actions/GitLab CI.
132133- Code style conventions are enforced through the use of Flake8, black, isort,
133134 and various
134135 [ pre-commit] ( https://pre-commit.com/ )
135136 [ hooks] ( https://github.com/simphony/simphony-osp/blob/v4.0.0/.pre-commit-config.yaml ) .
136137- Tests are automatically run for all pull requests.
137- - For the OSP-core code, benchmarks are run after every merge to ` dev ` .
138+ - For the ` simphony-osp ` code, benchmarks are run after every merge to ` dev ` .
138139 Benchmark results are available
139140 [ here] ( https://simphony.github.io/simphony-osp/dev/bench/index.html ) . The CI
140141 will report a failure when a benchmark is 50% slower than in the previous
141142 run, in addition to automatically commenting on the commit.
142143
143- ### Naming conventions
144-
145- - Use ` cuds_object ` as the argument name of your methods (not ` entity ` ,
146- ` cuds ` , ` cuds_instance ` ...).
147- - The official spelling is ` OSP-core ` (as opposed to _ osp core_ , _ OSP-Core_
148- or similar).
149-
150- ## Contribute to OSP-core
144+ ## Contribute to SimPhoNy
151145
152146If you are not a member of the
153147[ SimPhoNy organisation] ( https://github.com/simphony ) , rather than creating
154148a branch from ` dev ` , you will have to fork the repository and create the
155149Pull Request.
156150
157- ## Contribute to wrapper development
151+ ## Contribute to the development of a wrapper
158152
159153For a sample wrapper, visit the
160- [ wrapper_development ] ( https://github.com/simphony/wrapper-development ) repo.
154+ [ wrapper-development ] ( https://github.com/simphony/wrapper-development ) repo.
161155
162156README files should include:
163157
164158- Information regarding the purpose of the wrapper and the backend used.
165- - A compatibility matrix with OSP-core.
166159- Installation instructions.
167- - Folder structure.
168160- Any other necessary information for users and other developers.
169161
170162## Contribute to the docs
171163
172164If you have any suggestion for this documentation, whether it is something
173165that needs more explanation, is inaccurate or simply a note on anything
174166that could be improved, you can open an issue
175- [ here] ( https://github.com/simphony/docs/issues ) , and we will look into it!.
167+ [ here] ( https://github.com/simphony/docs/issues ) , and we will look into it!
0 commit comments