@@ -3,21 +3,22 @@ Contribution guidelines
33
44These guidelines instruct how to submit issues and contribute code to
55the `SeleniumLibrary project `_. Other great ways to contribute include
6- answering questions and participating discussion on `robotframework-users `_
7- mailing list and other forums as well as spreading the word about the
8- framework one way or the other.
6+ answering questions and participating in discussions within the
7+ #seleniumlibrary channel on the community `Robot Framework Slack `_, the
8+ `Robot Framework Forum `_ and other channels as well as spreading the word
9+ about the framework one way or the other.
910
1011Submitting issues
1112=================
1213
1314Bugs and enhancements are tracked in the `issue tracker `_.
1415If you are unsure if something is a bug or is a feature worth
15- implementing, you can first ask on ` robotframework-users `_ list . This and
16+ implementing, you can first ask within the ` Robot Framework Slack `_ . This and
1617other similar forums, not the issue tracker, are also places where to ask
1718general questions.
1819
19- Before submitting a new issue, it is always a good idea to check is the
20- same bug or enhancement already reported. If it is, please add your
20+ Before submitting a new issue, it is always a good idea to check if the
21+ same bug or enhancement is already reported. If it is, please add your
2122comments to the existing issue instead of creating a new one.
2223
2324Reporting bugs
@@ -43,9 +44,11 @@ Enhancement requests
4344
4445Describe the new feature and use cases for it in as much detail as
4546possible in an issue. Especially with larger enhancements, be prepared to
46- contribute the code in form of a pull request as explained below or to
47+ contribute the code in the form of a pull request as explained below or to
4748pay someone for the work. Consider also would it be better to implement this
48- functionality as a separate library outside the SeleniumLibrary.
49+ functionality as a separate library outside the SeleniumLibrary. One option
50+ here is to extend SeleniumLibrary using the public API or plug-in api. Please
51+ see `extending documentation `_ for more details.
4952
5053Code contributions
5154==================
@@ -88,17 +91,25 @@ We do, however, recommend to create dedicated branches for pull requests
8891instead of creating them based on the master branch. This is especially
8992important if you plan to work on multiple pull requests at the same time.
9093
91- This project requires that pull request contains linear history of commits and
92- we do not allow that pull request contains merge commits or other noise. This helps
93- the review process and makes the maintenance easier for the project administrators.
94- Generally it is recommended to do `git pull --rebase ` instead of the `git pull --merge `
95- when there is need pull changes from upstream.
94+ This project asks that prior to making an enhancement pull request that you
95+ discuss the enhancement with the team. We wish to avoid having you spend effort on an
96+ ehancement that won't match with the project. We require that a pull request contains
97+ linear history of commits and we do not allow that pull request contains merge commits
98+ or other noise. This helps the review process and makes the maintenance easier for the
99+ project administrators. Generally it is recommended to do `git pull --rebase ` instead
100+ of the `git pull --merge ` when there is need pull changes from upstream.
96101
97102Coding conventions
98103------------------
99104
105+ The SeleniumLibrary team is currently reviewing, revising, and updating
106+ the coding conventions during Q1 2024. Knowing these coding conventions
107+ are seen as a good practice, we are leaving these here as recommendations
108+ in the mean time but are not forcing this as a requirement for accepting
109+ pull requests.
110+
100111SeleniumLibrary uses the general Python code conventions defined in
101- `PEP-8 `_. In addition to that, we try to write `idiomatic Python `_
112+ `PEP-8 `_. In addition to that, we try to write `idiomatic Python `_ or ` "Pythonic" code `_
102113and follow the `SOLID principles `_. with all new code. An important guideline
103114is that the code should be clear enough that comments are generally not needed.
104115
@@ -145,7 +156,7 @@ individual keywords.
145156
146157- All new enhancements or changes should have a note telling when the
147158 change was introduced. Often adding something like
148- ``New in SeleniumLibray 1.8. `` is enough.
159+ ``New in SeleniumLibrary 1.8. `` is enough.
149160
150161Keyword documentation can be easily created using `invoke `_ task::
151162
@@ -159,34 +170,38 @@ Tests
159170When submitting a pull request with a new feature or a fix, you should
160171always include tests for your changes. These tests prove that your
161172changes work, help prevent bugs in the future, and help document what
162- your changes do. Depending an the change, you may need
163- ``acceptance tests `` \ * , `` unit tests``* or both.
173+ your changes do. Depending an the change, you may need `` acceptance tests ``,
174+ ``unit tests `` or both.
164175
165176Make sure to run all of the tests before submitting a pull request to be
166177sure that your changes do not break anything. If you can, test in
167178multiple browsers and versions (Firefox, Chrome, IE, Edge etc). Pull requests
168- are also automatically tested on `Travis CI `_.
179+ are also automatically tested on `GitHub Actions `_.
169180
170181Acceptance tests
171182~~~~~~~~~~~~~~~~
172183
173184Most of SeleniumLibrary's testing is done using acceptance tests that
174185naturally use Robot Framework itself for testing. Every new
175186functionality or fix should generally get one or more acceptance tests.
187+ For more details on acceptance tests and how to run the acceptance tests,
188+ see `atest/README.rst `_.
176189
177190Unit tests
178191~~~~~~~~~~
179192
180193Unit tests are great for testing internal logic and should be added when
181- appropriate. For more details see ` Unit and acceptance
182- tests <https://github.com/robotframework/SeleniumLibrary/blob/master/BUILD. rst#unit-and-acceptance-tests%3E> `__ .
194+ appropriate. For more details on unit tests and running them, see
195+ ` utest/README. rst`_ .
183196
184197Continuous integration
185198----------------------
186199
187- SeleniumLibrary's continuous integration (CI) servers are visible through
188- `Travis CI `_. For more details about how to run test and how `Travis CI `_
189- integration is implemented can be found from the `test/README.rst `_.
200+ SeleniumLibrary uses GitHub Actions as it's continuous integration (CI) server.
201+
202+ .. ToDo: re-add when explanation of GitHUb Actions is written
203+ More details about how `GitHub Actions`_ integration is implemented can be
204+ found within `<.github/CI/README.rst>.
190205
191206 Finalizing pull requests
192207------------------------
@@ -198,7 +213,7 @@ Acknowledgments
198213~~~~~~~~~~~~~~~
199214
200215If you have done any non-trivial change and would like to be credited,
201- remind us to add `acknowledge ` tag to the issue. This way we will add
216+ remind us to add `` acknowledge ` ` tag to the issue. This way we will add
202217your name to the release notes, when next release is made.
203218
204219Resolving conflicts
@@ -209,22 +224,26 @@ the same code as your changes. In that case you should
209224`sync your fork `_ and `resolve conflicts `_ to allow for an easy merge.
210225
211226.. _SeleniumLibrary project : https://github.com/robotframework/SeleniumLibrary
212- .. _robotframework-users : http://groups.google.com/group/robotframework-users
227+ .. _Robot Framework Slack : https://rf-invite.herokuapp.com/
228+ .. _Robot Framework Forum : https://forum.robotframework.org/c/libraries/lib-seleniumlibrary/11
213229.. _issue tracker : https://github.com/robotframework/SeleniumLibrary/issues
214230.. _(SSCCE) : http://sscce.org
231+ .. _extending documentation : https://github.com/robotframework/SeleniumLibrary/blob/master/docs/extending/extending.rst
215232.. _GitHub account : https://github.com/
216233.. _Git : https://git-scm.com
217234.. _set up Git : https://help.github.com/articles/set-up-git/
218235.. _fork a repository : https://help.github.com/articles/fork-a-repo/
219236.. _use pull requests : https://help.github.com/articles/using-pull-requests
220237.. _PEP-8 : https://www.python.org/dev/peps/pep-0008/
221- .. _idiomatic Python : http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
238+ .. _idiomatic Python : https://en.wikibooks.org/wiki/Python_Programming/Idioms
239+ .. _"Pythonic" code : https://docs.python-guide.org/writing/style/
222240.. _SOLID principles : https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
223241.. _PEP-257 : https://www.python.org/dev/peps/pep-0257/
224242.. _invoke : http://www.pyinvoke.org/
225- .. _Travis CI : https://travis-ci.org/robotframework/SeleniumLibrary
226- .. _test/README.rst` : https://github.com/robotframework/SeleniumLibrary/blob/master/test/README.rst
243+ .. _GitHub Actions : https://github.com/robotframework/SeleniumLibrary/actions
244+ .. _atest/README.rst : https://github.com/robotframework/SeleniumLibrary/tree/master/atest/README.rst
245+ .. _utest/README.rst : https://github.com/robotframework/SeleniumLibrary/blob/master/utest/README.rst
227246.. _sync your fork : https://help.github.com/articles/syncing-a-fork/
228247.. _resolve conflicts : https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line
229248.. _Black : https://github.com/psf/black
230- .. _flake8 : https://gitlab .com/pycqa /flake8
249+ .. _flake8 : https://github .com/PyCQA /flake8
0 commit comments