mirror of
https://github.com/saltstack/salt.git
synced 2025-04-16 09:40:20 +00:00
Improve README and CONTRIBUTING
This commit is contained in:
parent
0f6b9efbea
commit
c485d1de7b
5 changed files with 207 additions and 264 deletions
247
CONTRIBUTING.rst
247
CONTRIBUTING.rst
|
@ -2,34 +2,33 @@
|
||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
|
|
||||||
|
|
||||||
So you want to contribute to the Salt project? Excellent! You can help
|
So you want to contribute to the Salt project? Excellent! You can help
|
||||||
in a number of ways:
|
in a number of ways:
|
||||||
|
|
||||||
- Using Salt and opening well-written bug reports.
|
- Use Salt and open well-written bug reports.
|
||||||
- Joining a `working group <https://github.com/saltstack/community>`__.
|
- Join a `working group <https://github.com/saltstack/community>`__.
|
||||||
- Answering questions on `irc <https://web.libera.chat/#salt>`__,
|
- Answer questions on `irc <https://web.libera.chat/#salt>`__,
|
||||||
the `community Slack <https://join.slack.com/t/saltstackcommunity/shared_invite/zt-3av8jjyf-oBQ2M0vhXOhJpNpRkPWBvg>`__,
|
the `community Slack <https://join.slack.com/t/saltstackcommunity/shared_invite/zt-3av8jjyf-oBQ2M0vhXOhJpNpRkPWBvg>`__,
|
||||||
the `salt-users mailing
|
the `salt-users mailing
|
||||||
list <https://groups.google.com/forum/#!forum/salt-users>`__,
|
list <https://groups.google.com/forum/#!forum/salt-users>`__,
|
||||||
`Server Fault <https://serverfault.com/questions/tagged/saltstack>`__,
|
`Server Fault <https://serverfault.com/questions/tagged/saltstack>`__,
|
||||||
or `r/saltstack on Reddit <https://www.reddit.com/r/saltstack/>`__.
|
or `r/saltstack on Reddit <https://www.reddit.com/r/saltstack/>`__.
|
||||||
- Fixing bugs.
|
- Fix bugs.
|
||||||
- `Enhancing the documentation <https://docs.saltproject.io/en/master/topics/development/conventions/documentation.html#salt-docs>`__.
|
- `Improve the documentation <https://saltstack.gitlab.io/open/docs/docs-hub/topics/contributing.html>`__.
|
||||||
- Providing workarounds, patches, or other code without tests.
|
- Provide workarounds, patches, or other code without tests.
|
||||||
- Telling other people about problems you solved using Salt.
|
- Tell other people about problems you solved using Salt.
|
||||||
|
|
||||||
If you’d like to update docs or fix an issue, you’re going to need the
|
If you'd like to update docs or fix an issue, you're going to need the
|
||||||
Salt repo. The best way to contribute is using
|
Salt repo. The best way to contribute is using
|
||||||
`Git <https://git-scm.com/>`__.
|
`Git <https://git-scm.com/>`__.
|
||||||
|
|
||||||
Environment Setup
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
To hack on Salt or the docs you’re going to need to set up your
|
Environment setup
|
||||||
development environment. If you already have a workflow that you’re
|
=================
|
||||||
|
To hack on Salt or the docs you're going to need to set up your
|
||||||
|
development environment. If you already have a workflow that you're
|
||||||
comfortable with, you can use that, but otherwise this is an opinionated
|
comfortable with, you can use that, but otherwise this is an opinionated
|
||||||
guide for setting up your dev environment. Follow these steps and you’ll
|
guide for setting up your dev environment. Follow these steps and you'll
|
||||||
end out with a functioning dev environment and be able to submit your
|
end out with a functioning dev environment and be able to submit your
|
||||||
first PR.
|
first PR.
|
||||||
|
|
||||||
|
@ -44,16 +43,15 @@ more about Git. One popular resource is the free online book `Learn Git
|
||||||
in a Month of
|
in a Month of
|
||||||
Lunches <https://www.manning.com/books/learn-git-in-a-month-of-lunches>`__.
|
Lunches <https://www.manning.com/books/learn-git-in-a-month-of-lunches>`__.
|
||||||
|
|
||||||
pyenv, Virtual Environments, and You
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
|
pyenv, Virtual Environments, and you
|
||||||
|
------------------------------------
|
||||||
We recommend `pyenv <https://github.com/pyenv/pyenv>`__, since it allows
|
We recommend `pyenv <https://github.com/pyenv/pyenv>`__, since it allows
|
||||||
installing multiple different Python versions, which is important for
|
installing multiple different Python versions, which is important for
|
||||||
testing Salt across all the versions of Python that we support.
|
testing Salt across all the versions of Python that we support.
|
||||||
|
|
||||||
On Linux
|
On Linux
|
||||||
~~~~~~~~
|
^^^^^^^^
|
||||||
|
|
||||||
Install pyenv:
|
Install pyenv:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -63,8 +61,7 @@ Install pyenv:
|
||||||
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
|
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
|
||||||
|
|
||||||
On Mac
|
On Mac
|
||||||
~~~~~~
|
^^^^^^
|
||||||
|
|
||||||
Install pyenv using brew:
|
Install pyenv using brew:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -93,11 +90,11 @@ version of Python:
|
||||||
|
|
||||||
pyenv install 3.7.0
|
pyenv install 3.7.0
|
||||||
|
|
||||||
If that fails, don’t panic! You’re probably just missing some build
|
If that fails, don't panic! You're probably just missing some build
|
||||||
dependencies. Check out `pyenv common build
|
dependencies. Check out `pyenv common build
|
||||||
problems <https://github.com/pyenv/pyenv/wiki/Common-build-problems>`__.
|
problems <https://github.com/pyenv/pyenv/wiki/Common-build-problems>`__.
|
||||||
|
|
||||||
Now that you’ve got your version of Python installed, you can create a
|
Now that you've got your version of Python installed, you can create a
|
||||||
new virtual environment with this command:
|
new virtual environment with this command:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -110,13 +107,13 @@ Then activate it:
|
||||||
|
|
||||||
pyenv activate salt
|
pyenv activate salt
|
||||||
|
|
||||||
Sweet! Now you’re ready to clone Salt so you can start hacking away! If
|
Sweet! Now you're ready to clone Salt so you can start hacking away! If
|
||||||
you get stuck at any point, check out the resources at the beginning of
|
you get stuck at any point, check out the resources at the beginning of
|
||||||
this guide. IRC and Slack are particularly helpful places to go.
|
this guide. IRC and Slack are particularly helpful places to go.
|
||||||
|
|
||||||
Get The Source!
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Get the source!
|
||||||
|
---------------
|
||||||
Salt uses the fork and clone workflow for Git contributions. See `Using
|
Salt uses the fork and clone workflow for Git contributions. See `Using
|
||||||
the Fork-and-Branch Git
|
the Fork-and-Branch Git
|
||||||
Workflow <https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/>`__
|
Workflow <https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/>`__
|
||||||
|
@ -130,13 +127,13 @@ Clones are so shallow. Well, this one is anyway:
|
||||||
git clone --depth=1 --origin salt https://github.com/saltstack/salt.git
|
git clone --depth=1 --origin salt https://github.com/saltstack/salt.git
|
||||||
|
|
||||||
This creates a shallow clone of Salt, which should be fast. Most of the
|
This creates a shallow clone of Salt, which should be fast. Most of the
|
||||||
time that’s all you’ll need, and you can start building out other
|
time that's all you'll need, and you can start building out other
|
||||||
commits as you go. If you *really* want all 108,300+ commits you can
|
commits as you go. If you *really* want all 108,300+ commits you can
|
||||||
just run ``git fetch --unshallow``. Then go make a sandwich because it’s
|
just run ``git fetch --unshallow``. Then go make a sandwich because it's
|
||||||
gonna be a while.
|
gonna be a while.
|
||||||
|
|
||||||
You’re also going to want to head over to GitHub and create your own
|
You're also going to want to head over to GitHub and create your own
|
||||||
`fork of Salt <https://github.com/saltstack/salt/fork>`__. Once you’ve
|
`fork of Salt <https://github.com/saltstack/salt/fork>`__. Once you've
|
||||||
got that set up you can add it as a remote:
|
got that set up you can add it as a remote:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -144,16 +141,16 @@ got that set up you can add it as a remote:
|
||||||
git remote add yourname <YOUR SALT REMOTE>
|
git remote add yourname <YOUR SALT REMOTE>
|
||||||
|
|
||||||
If you use your name to refer to your fork, and ``salt`` to refer to the
|
If you use your name to refer to your fork, and ``salt`` to refer to the
|
||||||
official Salt repo you’ll never get ``upstream`` or ``origin`` confused.
|
official Salt repo you'll never get ``upstream`` or ``origin`` confused.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Each time you start work on a new issue you should fetch the most recent
|
Each time you start work on a new issue you should fetch the most recent
|
||||||
changes from ``salt/upstream``.
|
changes from ``salt/upstream``.
|
||||||
|
|
||||||
``pre-commit`` and ``nox`` Setup
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Set up ``pre-commit`` and ``nox``
|
||||||
|
---------------------------------
|
||||||
Here at Salt we use `pre-commit <https://pre-commit.com/>`__ and
|
Here at Salt we use `pre-commit <https://pre-commit.com/>`__ and
|
||||||
`nox <https://nox.thea.codes/en/stable/>`__ to make it easier for
|
`nox <https://nox.thea.codes/en/stable/>`__ to make it easier for
|
||||||
contributors to get quick feedback, for quality control, and to increase
|
contributors to get quick feedback, for quality control, and to increase
|
||||||
|
@ -177,14 +174,14 @@ others. You can easily install them in your virtualenv with:
|
||||||
Please ensure you export ``SKIP=pip-tools-compile`` to skip pip-tools-compile.
|
Please ensure you export ``SKIP=pip-tools-compile`` to skip pip-tools-compile.
|
||||||
|
|
||||||
Now before each commit, it will ensure that your code at least *looks*
|
Now before each commit, it will ensure that your code at least *looks*
|
||||||
right before you open a pull request. And with that step, it’s time to
|
right before you open a pull request. And with that step, it's time to
|
||||||
start hacking on Salt!
|
start hacking on Salt!
|
||||||
|
|
||||||
|
|
||||||
.. _imagemagick-setup:
|
.. _imagemagick-setup:
|
||||||
|
|
||||||
``imagemagick`` Setup
|
Set up ``imagemagick``
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
---------------------
|
||||||
|
|
||||||
One last prerequisite is to have ``imagemagick`` installed, as it is required
|
One last prerequisite is to have ``imagemagick`` installed, as it is required
|
||||||
by Sphinx for generating the HTML documentation.
|
by Sphinx for generating the HTML documentation.
|
||||||
|
|
||||||
|
@ -199,17 +196,17 @@ by Sphinx for generating the HTML documentation.
|
||||||
sudo apt install imagemagick
|
sudo apt install imagemagick
|
||||||
|
|
||||||
|
|
||||||
Salt Issues
|
Salt issues
|
||||||
-----------
|
===========
|
||||||
|
|
||||||
Create Your Own
|
Create your own
|
||||||
~~~~~~~~~~~~~~~
|
---------------
|
||||||
|
|
||||||
Perhaps you’ve come to this guide because you found a problem in Salt,
|
Perhaps you've come to this guide because you found a problem in Salt,
|
||||||
and you’ve diagnosed the cause. Maybe you need some help figuring out
|
and you've diagnosed the cause. Maybe you need some help figuring out
|
||||||
the problem. In any case, creating quality bug reports is a great way to
|
the problem. In any case, creating quality bug reports is a great way to
|
||||||
contribute to Salt even if you lack the skills, time, or inclination to
|
contribute to Salt even if you lack the skills, time, or inclination to
|
||||||
fix it yourself. If that’s the case, head on over to `Salt’s issue
|
fix it yourself. If that's the case, head on over to `Salt's issue
|
||||||
tracker on
|
tracker on
|
||||||
GitHub <https://github.com/saltstack/salt/issues/new/choose>`__.
|
GitHub <https://github.com/saltstack/salt/issues/new/choose>`__.
|
||||||
|
|
||||||
|
@ -228,20 +225,20 @@ In a nutshell:
|
||||||
- **Minimum**: All of the **extra** information has been removed. Will
|
- **Minimum**: All of the **extra** information has been removed. Will
|
||||||
2 or 3 lines of master/minion config still exhibit the behavior?
|
2 or 3 lines of master/minion config still exhibit the behavior?
|
||||||
- **Complete**: Minimum also means complete. If your example is missing
|
- **Complete**: Minimum also means complete. If your example is missing
|
||||||
information, then it’s not complete. Salt, Python, and OS versions
|
information, then it's not complete. Salt, Python, and OS versions
|
||||||
are all bits of information that make your example complete. Have you
|
are all bits of information that make your example complete. Have you
|
||||||
provided the commands that you ran?
|
provided the commands that you ran?
|
||||||
- **Verifiable**: Can someone take your report and reproduce it?
|
- **Verifiable**: Can someone take your report and reproduce it?
|
||||||
|
|
||||||
Slow is smooth, and smooth is fast - it may feel like you’re taking a
|
Slow is smooth, and smooth is fast - it may feel like you're taking a
|
||||||
long time to create your issue if you’re creating a proper MCVE, but a
|
long time to create your issue if you're creating a proper MCVE, but a
|
||||||
MCVE eliminates back and forth required to reproduce/verify the issue so
|
MCVE eliminates back and forth required to reproduce/verify the issue so
|
||||||
someone can actually create a fix.
|
someone can actually create a fix.
|
||||||
|
|
||||||
Pick An Issue
|
Pick an issue
|
||||||
~~~~~~~~~~~~~
|
-------------
|
||||||
|
|
||||||
If you don’t already have an issue in mind, you can search for `help
|
If you don't already have an issue in mind, you can search for `help
|
||||||
wanted <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22>`__
|
wanted <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22>`__
|
||||||
issues. If you also search for `good first
|
issues. If you also search for `good first
|
||||||
issue <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+label%3A%22good+first+issue%22>`__
|
issue <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+label%3A%22good+first+issue%22>`__
|
||||||
|
@ -249,17 +246,17 @@ then you should be able to find some issues that are good for getting
|
||||||
started contributing to Salt. `Documentation
|
started contributing to Salt. `Documentation
|
||||||
issues <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3Adocumentation+>`__
|
issues <https://github.com/saltstack/salt/issues?q=is%3Aissue+is%3Aopen+label%3Adocumentation+>`__
|
||||||
are also good starter issues. When you find an issue that catches your
|
are also good starter issues. When you find an issue that catches your
|
||||||
eye (or one of your own), it’s a good idea to comment on the issue and
|
eye (or one of your own), it's a good idea to comment on the issue and
|
||||||
mention that you’re working on it. Good communication is key to
|
mention that you're working on it. Good communication is key to
|
||||||
collaboration - so if you don’t have time to complete work on the issue,
|
collaboration - so if you don't have time to complete work on the issue,
|
||||||
just leaving some information about when you expect to pick things up
|
just leaving some information about when you expect to pick things up
|
||||||
again is a great idea!
|
again is a great idea!
|
||||||
|
|
||||||
Hacking Away
|
Hacking away
|
||||||
------------
|
============
|
||||||
|
|
||||||
Salt, Tests, Documentation, and You
|
Salt, tests, documentation, and you
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------------
|
||||||
|
|
||||||
Before approving code contributions, Salt requires:
|
Before approving code contributions, Salt requires:
|
||||||
|
|
||||||
|
@ -269,27 +266,26 @@ Before approving code contributions, Salt requires:
|
||||||
|
|
||||||
Documentation fixes just require correct documentation.
|
Documentation fixes just require correct documentation.
|
||||||
|
|
||||||
What If I Don’t Write Tests or Docs?
|
What if I don't write tests or docs?
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
If you aren’t into writing documentation or tests, we still welcome your
|
If you aren't into writing documentation or tests, we still welcome your
|
||||||
contributions! But your PR will be labeled ``Needs Testcase`` and
|
contributions! But your PR will be labeled ``Needs Testcase`` and
|
||||||
``Help Wanted`` until someone can get to write the tests/documentation.
|
``Help Wanted`` until someone can get to write the tests/documentation.
|
||||||
Of course, if you have a desire but just lack the skill we are more than
|
Of course, if you have a desire but just lack the skill we are more than
|
||||||
happy to collaborate and help out! There’s the `documentation working
|
happy to collaborate and help out! There's the `documentation working
|
||||||
group <https://github.com/saltstack/docs-hub>`__ and the `testing
|
group <https://saltstack.gitlab.io/open/docs/docs-hub/topics/home.html>`__
|
||||||
working
|
and the `testing working group <https://github.com/saltstack/community/tree/master/working_groups/wg-Testing>`__.
|
||||||
group <https://github.com/saltstack/community/tree/master/working_groups/wg-Testing>`__.
|
|
||||||
We also regularly stream our test clinic `live on
|
We also regularly stream our test clinic `live on
|
||||||
Twitch <https://www.twitch.tv/saltprojectoss>`__ every Tuesday afternoon
|
Twitch <https://www.twitch.tv/saltprojectoss>`__ every Tuesday afternoon
|
||||||
and Thursday morning, Central Time. If you’d like specific help with
|
and Thursday morning, Central Time. If you'd like specific help with
|
||||||
tests, bring them to the clinic. If no community members need help, you
|
tests, bring them to the clinic. If no community members need help, you
|
||||||
can also just watch tests written in real time.
|
can also just watch tests written in real time.
|
||||||
|
|
||||||
.. _docs-building:
|
.. _docs-building:
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
~~~~~~~~~~~~~
|
-------------
|
||||||
|
|
||||||
Salt uses both docstrings, as well as normal reStructuredText files in
|
Salt uses both docstrings, as well as normal reStructuredText files in
|
||||||
the ``salt/doc`` folder for documentation. Sphinx is used to generate the
|
the ``salt/doc`` folder for documentation. Sphinx is used to generate the
|
||||||
|
@ -314,20 +310,20 @@ this:
|
||||||
cd -; python -m nox -e 'docs-html(compress=False, clean=False)'; cd doc/_build/html; python -m http.server
|
cd -; python -m nox -e 'docs-html(compress=False, clean=False)'; cd doc/_build/html; python -m http.server
|
||||||
|
|
||||||
And then refresh your browser to get your updated docs. This one should
|
And then refresh your browser to get your updated docs. This one should
|
||||||
be quite a bit faster since Sphinx won’t need to rebuild everything.
|
be quite a bit faster since Sphinx won't need to rebuild everything.
|
||||||
|
|
||||||
If your change is a docs-only change, you can go ahead and commit/push
|
If your change is a docs-only change, you can go ahead and commit/push
|
||||||
your code and open a PR. You can indicate that it’s a docs-only change by
|
your code and open a PR. You can indicate that it's a docs-only change by
|
||||||
adding ``[Documentation]`` to the title of your PR. Otherwise you’ll
|
adding ``[Documentation]`` to the title of your PR. Otherwise you'll
|
||||||
want to write some tests and code.
|
want to write some tests and code.
|
||||||
|
|
||||||
Running Development Salt
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Running development Salt
|
||||||
|
------------------------
|
||||||
Note: If you run into any issues in this section, check the
|
Note: If you run into any issues in this section, check the
|
||||||
Troubleshooting section.
|
Troubleshooting section.
|
||||||
|
|
||||||
If you’re going to hack on the Salt codebase you’re going to want to be
|
If you're going to hack on the Salt codebase you're going to want to be
|
||||||
able to run Salt locally. The first thing you need to do is install Salt
|
able to run Salt locally. The first thing you need to do is install Salt
|
||||||
as an editable pip install:
|
as an editable pip install:
|
||||||
|
|
||||||
|
@ -337,7 +333,7 @@ as an editable pip install:
|
||||||
|
|
||||||
This will let you make changes to Salt without having to re-install it.
|
This will let you make changes to Salt without having to re-install it.
|
||||||
|
|
||||||
After all of the dependencies and Salt are installed, it’s time to set
|
After all of the dependencies and Salt are installed, it's time to set
|
||||||
up the config for development. Typically Salt runs as ``root``, but you
|
up the config for development. Typically Salt runs as ``root``, but you
|
||||||
can specify which user to run as. To configure that, just copy the
|
can specify which user to run as. To configure that, just copy the
|
||||||
master and minion configs. We have .gitignore setup to ignore the
|
master and minion configs. We have .gitignore setup to ignore the
|
||||||
|
@ -397,35 +393,35 @@ from the minion instead:
|
||||||
|
|
||||||
salt-call -c local/etc/salt test.version
|
salt-call -c local/etc/salt test.version
|
||||||
|
|
||||||
Note that you’re running ``salt-call`` instead of ``salt``, and you’re
|
Note that you're running ``salt-call`` instead of ``salt``, and you're
|
||||||
not specifying the minion (``\*``), but if you’re running the dev
|
not specifying the minion (``\*``), but if you're running the dev
|
||||||
version then you still will need to pass in the config dir. Now that
|
version then you still will need to pass in the config dir. Now that
|
||||||
you’ve got Salt running, you can hack away on the Salt codebase!
|
you've got Salt running, you can hack away on the Salt codebase!
|
||||||
|
|
||||||
If you need to restart Salt for some reason, if you’ve made changes and
|
If you need to restart Salt for some reason, if you've made changes and
|
||||||
they don’t appear to be reflected, this is one option:
|
they don't appear to be reflected, this is one option:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
kill -INT $(pgrep salt-master)
|
kill -INT $(pgrep salt-master)
|
||||||
kill -INT $(pgrep salt-minion)
|
kill -INT $(pgrep salt-minion)
|
||||||
|
|
||||||
If you’d rather not use ``kill``, you can have a couple of terminals
|
If you'd rather not use ``kill``, you can have a couple of terminals
|
||||||
open with your salt virtualenv activated and omit the ``--daemon``
|
open with your salt virtualenv activated and omit the ``--daemon``
|
||||||
argument. Salt will run in the foreground, so you can just use ctrl+c to
|
argument. Salt will run in the foreground, so you can just use ctrl+c to
|
||||||
quit.
|
quit.
|
||||||
|
|
||||||
Test First? Test Last? Test Meaningfully!
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Test first? Test last? Test meaningfully!
|
||||||
|
-----------------------------------------
|
||||||
You can write tests first or tests last, as long as your tests are
|
You can write tests first or tests last, as long as your tests are
|
||||||
meaningful and complete! *Typically* the best tests for Salt are going
|
meaningful and complete! *Typically* the best tests for Salt are going
|
||||||
to be unit tests. Testing is `a whole topic on its
|
to be unit tests. Testing is `a whole topic on its
|
||||||
own <https://docs.saltproject.io/en/master/topics/tutorials/writing_tests.html>`__,
|
own <https://docs.saltproject.io/en/master/topics/tutorials/writing_tests.html>`__,
|
||||||
But you may also want to write functional or integration tests. You’ll
|
But you may also want to write functional or integration tests. You'll
|
||||||
find those in the ``salt/tests`` directory.
|
find those in the ``salt/tests`` directory.
|
||||||
|
|
||||||
When you’re thinking about tests to write, the most important thing to
|
When you're thinking about tests to write, the most important thing to
|
||||||
keep in mind is, “What, exactly, am I testing?” When a test fails, you
|
keep in mind is, “What, exactly, am I testing?” When a test fails, you
|
||||||
should know:
|
should know:
|
||||||
|
|
||||||
|
@ -433,21 +429,21 @@ should know:
|
||||||
- Why did it fail?
|
- Why did it fail?
|
||||||
- As much as possible, what do I need to do to fix this failure?
|
- As much as possible, what do I need to do to fix this failure?
|
||||||
|
|
||||||
If you can’t answer those questions then you might need to refactor your
|
If you can't answer those questions then you might need to refactor your
|
||||||
tests.
|
tests.
|
||||||
|
|
||||||
When you’re running tests locally, you should make sure that if you
|
When you're running tests locally, you should make sure that if you
|
||||||
remove your code changes your tests are failing. If your tests *aren’t*
|
remove your code changes your tests are failing. If your tests *aren't*
|
||||||
failing when you haven’t yet made changes, then it’s possible that
|
failing when you haven't yet made changes, then it's possible that
|
||||||
you’re testing the wrong thing.
|
you're testing the wrong thing.
|
||||||
|
|
||||||
But whether you adhere to TDD/BDD, or you write your code first and your
|
But whether you adhere to TDD/BDD, or you write your code first and your
|
||||||
tests last, ensure that your tests are meaningful.
|
tests last, ensure that your tests are meaningful.
|
||||||
|
|
||||||
Running Tests
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
As previously mentioned, we use ``nox``, and that’s how we run our
|
Running tests
|
||||||
|
-------------
|
||||||
|
As previously mentioned, we use ``nox``, and that's how we run our
|
||||||
tests. You should have it installed by this point but if not you can
|
tests. You should have it installed by this point but if not you can
|
||||||
install it with this:
|
install it with this:
|
||||||
|
|
||||||
|
@ -461,26 +457,26 @@ Now you can run your tests:
|
||||||
|
|
||||||
python -m nox -e "pytest-3.7(coverage=False)" -- tests/unit/cli/test_batch.py
|
python -m nox -e "pytest-3.7(coverage=False)" -- tests/unit/cli/test_batch.py
|
||||||
|
|
||||||
It’s a good idea to install
|
It's a good idea to install
|
||||||
`espeak <https://github.com/espeak-ng/espeak-ng>`__ or use ``say`` on
|
`espeak <https://github.com/espeak-ng/espeak-ng>`__ or use ``say`` on
|
||||||
Mac if you’re running some long-running tests. You can do something like
|
Mac if you're running some long-running tests. You can do something like
|
||||||
this:
|
this:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
python -m nox -e "pytest-3.7(coverage=False)" -- tests/unit/cli/test_batch.py; espeak "Tests done, woohoo!"
|
python -m nox -e "pytest-3.7(coverage=False)" -- tests/unit/cli/test_batch.py; espeak "Tests done, woohoo!"
|
||||||
|
|
||||||
That way you don’t have to keep monitoring the actual test run.
|
That way you don't have to keep monitoring the actual test run.
|
||||||
|
|
||||||
Changelog and Commit!
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Changelog and commit!
|
||||||
|
---------------------
|
||||||
When you write your commit message you should use imperative style. Do
|
When you write your commit message you should use imperative style. Do
|
||||||
this:
|
this:
|
||||||
|
|
||||||
Add frobnosticate capability
|
Add frobnosticate capability
|
||||||
|
|
||||||
Don’t do this:
|
Don't do this:
|
||||||
|
|
||||||
Added frobnosticate capability
|
Added frobnosticate capability
|
||||||
|
|
||||||
|
@ -495,44 +491,44 @@ instanch, if you fixed issue 123, you would do:
|
||||||
|
|
||||||
echo "Made sys.doc inform when no minions return" > changelog/123.fixed
|
echo "Made sys.doc inform when no minions return" > changelog/123.fixed
|
||||||
|
|
||||||
And that’s all that would go into your file. When it comes to your
|
And that's all that would go into your file. When it comes to your
|
||||||
commit message, it’s usually a good idea to add other information, such as
|
commit message, it's usually a good idea to add other information, such as
|
||||||
|
|
||||||
- What does a reviewer need to know about the change that you made?
|
- What does a reviewer need to know about the change that you made?
|
||||||
- If someone isn’t an expert in this area, what will they need to know?
|
- If someone isn't an expert in this area, what will they need to know?
|
||||||
|
|
||||||
This will also help you out, because when you go to create the PR it
|
This will also help you out, because when you go to create the PR it
|
||||||
will automatically insert the body of your commit messages.
|
will automatically insert the body of your commit messages.
|
||||||
|
|
||||||
PR Time!
|
|
||||||
--------
|
|
||||||
|
|
||||||
Once you’ve done all your dev work and tested locally, you should check
|
Pull request time!
|
||||||
|
------------------
|
||||||
|
Once you've done all your dev work and tested locally, you should check
|
||||||
out our `PR
|
out our `PR
|
||||||
guidelines <https://docs.saltproject.io/en/master/topics/development/pull_requests.html>`__.
|
guidelines <https://docs.saltproject.io/en/master/topics/development/pull_requests.html>`__.
|
||||||
After you read that page, it’s time to `open a new
|
After you read that page, it's time to `open a new
|
||||||
PR <https://github.com/saltstack/salt/compare>`__. Fill out the PR
|
PR <https://github.com/saltstack/salt/compare>`__. Fill out the PR
|
||||||
template - you should have updated or created any necessary docs, and
|
template - you should have updated or created any necessary docs, and
|
||||||
written tests if you’re providing a code change. When you submit your
|
written tests if you're providing a code change. When you submit your
|
||||||
PR, we have a suite of tests that will run across different platforms to
|
PR, we have a suite of tests that will run across different platforms to
|
||||||
help ensure that no known bugs were introduced.
|
help ensure that no known bugs were introduced.
|
||||||
|
|
||||||
Now What?
|
|
||||||
~~~~~~~~~
|
|
||||||
|
|
||||||
You’ve made your changes, added documentation, opened your PR, and have
|
Now what?
|
||||||
|
---------
|
||||||
|
You've made your changes, added documentation, opened your PR, and have
|
||||||
passing tests… now what? When can you expect your code to be merged?
|
passing tests… now what? When can you expect your code to be merged?
|
||||||
|
|
||||||
When you open your PR, a reviewer will get automatically assigned. If
|
When you open your PR, a reviewer will get automatically assigned. If
|
||||||
your PR is submitted during the week you should be able to expect some
|
your PR is submitted during the week you should be able to expect some
|
||||||
kind of communication within that business day. If your tests are
|
kind of communication within that business day. If your tests are
|
||||||
passing and we’re not in a code freeze, ideally your code will be merged
|
passing and we're not in a code freeze, ideally your code will be merged
|
||||||
that day. If you haven’t heard from your assigned reviewer, ping them on
|
that week or month. If you haven't heard from your assigned reviewer, ping them
|
||||||
GitHub, `irc <https://web.libera.chat/#salt>`__, or Community Slack.
|
on GitHub, `irc <https://web.libera.chat/#salt>`__, or Community Slack.
|
||||||
|
|
||||||
It’s likely that your reviewer will leave some comments that need
|
It's likely that your reviewer will leave some comments that need
|
||||||
addressing - it may be a style change, or you forgot a changelog entry,
|
addressing - it may be a style change, or you forgot a changelog entry,
|
||||||
or need to update the docs. Maybe it’s something more fundamental -
|
or need to update the docs. Maybe it's something more fundamental -
|
||||||
perhaps you encountered the rare case where your PR has a much larger
|
perhaps you encountered the rare case where your PR has a much larger
|
||||||
scope than initially assumed.
|
scope than initially assumed.
|
||||||
|
|
||||||
|
@ -542,22 +538,23 @@ open for a significant period of time it may be worth rebasing your
|
||||||
changes on the most recent changes to Salt. If you need help, the
|
changes on the most recent changes to Salt. If you need help, the
|
||||||
previously linked Git resources will be valuable.
|
previously linked Git resources will be valuable.
|
||||||
|
|
||||||
But if, for whatever reason, you’re not interested in driving your PR to
|
But if, for whatever reason, you're not interested in driving your PR to
|
||||||
completion then just note that in your PR. Something like, “I’m not
|
completion then just note that in your PR. Something like, “I'm not
|
||||||
interested in writing docs/tests, I just wanted to provide this fix -
|
interested in writing docs/tests, I just wanted to provide this fix -
|
||||||
someone else will need to complete this PR.” If you do that then we’ll
|
someone else will need to complete this PR.” If you do that then we'll
|
||||||
add a “Help Wanted” label and someone will be able to pick up the PR,
|
add a “Help Wanted” label and someone will be able to pick up the PR,
|
||||||
make the required changes, and it can eventually get merged in.
|
make the required changes, and it can eventually get merged in.
|
||||||
|
|
||||||
In any case, now that you have a PR open, congrats! You’re a Salt
|
In any case, now that you have a PR open, congrats! You're a Salt
|
||||||
developer! You rock!
|
developer! You rock!
|
||||||
|
|
||||||
|
|
||||||
Troubleshooting
|
Troubleshooting
|
||||||
---------------
|
===============
|
||||||
|
|
||||||
|
|
||||||
zmq.core.error.ZMQError
|
zmq.core.error.ZMQError
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------
|
||||||
|
|
||||||
Once the minion starts, you may see an error like the following::
|
Once the minion starts, you may see an error like the following::
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -576,9 +573,9 @@ length of this path. This can be done in a couple different ways:
|
||||||
NOTE: The socket path is limited to 107 characters on Solaris and Linux,
|
NOTE: The socket path is limited to 107 characters on Solaris and Linux,
|
||||||
and 103 characters on BSD-based systems.
|
and 103 characters on BSD-based systems.
|
||||||
|
|
||||||
No permissions to access …
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
No permissions to access ...
|
||||||
|
----------------------------
|
||||||
If you forget to pass your config path to any of the ``salt*`` commands,
|
If you forget to pass your config path to any of the ``salt*`` commands,
|
||||||
you might see
|
you might see
|
||||||
|
|
||||||
|
@ -589,9 +586,9 @@ you might see
|
||||||
|
|
||||||
Just pass ``-c local/etc/salt`` (or whatever you named it)
|
Just pass ``-c local/etc/salt`` (or whatever you named it)
|
||||||
|
|
||||||
File descriptor limit
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
File descriptor limit
|
||||||
|
---------------------
|
||||||
You might need to raise your file descriptor limit. You can check it
|
You might need to raise your file descriptor limit. You can check it
|
||||||
with:
|
with:
|
||||||
|
|
||||||
|
@ -607,12 +604,12 @@ If the value is less than 3072, you should increase it with:
|
||||||
# For c-shell:
|
# For c-shell:
|
||||||
limit descriptors 3072
|
limit descriptors 3072
|
||||||
|
|
||||||
Pygit2 or other dependency install fails
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
Pygit2 or other dependency install fails
|
||||||
|
----------------------------------------
|
||||||
You may see some failure messages when installing requirements. You can
|
You may see some failure messages when installing requirements. You can
|
||||||
directly access your nox environment and possibly install pygit (or
|
directly access your nox environment and possibly install pygit (or
|
||||||
other dependency) that way. When you run nox, you’ll see a message like
|
other dependency) that way. When you run nox, you'll see a message like
|
||||||
this:
|
this:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
113
README.rst
113
README.rst
|
@ -36,47 +36,87 @@
|
||||||
* `Latest Salt Documentation`_
|
* `Latest Salt Documentation`_
|
||||||
* `Open an issue`_ (bug report, feature request, etc.)
|
* `Open an issue`_ (bug report, feature request, etc.)
|
||||||
|
|
||||||
*Salt is the world’s fastest, most intelligent and scalable automation*
|
*Salt is the world's fastest, most intelligent and scalable automation*
|
||||||
*engine.*
|
*engine.*
|
||||||
|
|
||||||
About Salt
|
About Salt
|
||||||
==========
|
==========
|
||||||
|
Built on Python, Salt is an event-driven automation tool and framework to
|
||||||
|
deploy, configure, and manage complex IT systems. Use Salt to automate common
|
||||||
|
infrastructure administration tasks and ensure that all the components of your
|
||||||
|
infrastructure are operating in a consistent desired state.
|
||||||
|
|
||||||
Built on python, Salt uses simple and human-readable YAML combined with
|
Salt has many possible uses, including configuration management, which involves:
|
||||||
event-driven automation to deploy and configure complex IT systems. In addition
|
|
||||||
to leveling-up `vRealize Automation SaltStack Config`_, Salt can be found under
|
|
||||||
the hood of products from Juniper, Cisco, Cloudflare, Nutanix, SUSE, and Tieto,
|
|
||||||
to name a few.
|
|
||||||
|
|
||||||
About SaltStack
|
* Managing operating system deployment and configuration.
|
||||||
===============
|
* Installing and configuring software applications and services.
|
||||||
|
* Managing servers, virtual machines, containers, databases, web servers,
|
||||||
|
network devices, and more.
|
||||||
|
* Ensuring consistent configuration and preventing configuration drift.
|
||||||
|
|
||||||
`SaltStack was acquired by VMware in 2020 <https://www.vmware.com/company/acquisitions/saltstack.html>`_.
|
Salt is ideal for configuration management because it is pluggable,
|
||||||
Salt Project remains an open source ecosystem that VMware supports and
|
customizable, and plays well with many existing technologies. Salt enables you
|
||||||
contributes to.
|
to deploy and manage applications that use any tech stack running on nearly any
|
||||||
|
`operating system <https://docs.saltproject.io/salt/install-guide/en/latest/topics/salt-supported-operating-systems.html>`_,
|
||||||
|
including different types of network devices such as switches and routers from a
|
||||||
|
variety of vendors.
|
||||||
|
|
||||||
Download Salt
|
In addition to configuration management Salt can also:
|
||||||
=============
|
|
||||||
|
|
||||||
|
* Automate and orchestrate routine IT processes, such as common required tasks
|
||||||
|
for scheduled server downtimes or upgrading operating systems or applications.
|
||||||
|
* Create self-aware, self-healing systems that can automatically respond to
|
||||||
|
outages, common administration problems, or other important events.
|
||||||
|
|
||||||
|
|
||||||
|
About our sponsors
|
||||||
|
==================
|
||||||
|
Salt powers VMware's `vRealize Automation SaltStack Config`_, and can be found
|
||||||
|
under the hood of products from Juniper, Cisco, Cloudflare, Nutanix, SUSE, and
|
||||||
|
Tieto, to name a few.
|
||||||
|
|
||||||
|
The original sponsor of our community, SaltStack, was `acquired by VMware in 2020 <https://www.vmware.com/company/acquisitions/saltstack.html>`_.
|
||||||
|
The Salt Project remains an open source ecosystem that VMware supports and
|
||||||
|
contributes to. VMware ensures the code integrity and quality of the Salt
|
||||||
|
modules by acting as the official sponsor and manager of the Salt project. Many
|
||||||
|
of the core Salt Project contributors are also VMware employees. This team
|
||||||
|
carefully reviews and enhances the Salt modules to ensure speed, quality, and
|
||||||
|
security.
|
||||||
|
|
||||||
|
|
||||||
|
Download and install Salt
|
||||||
|
=========================
|
||||||
Salt is tested and packaged to run on CentOS, Debian, RHEL, Ubuntu, MacOS,
|
Salt is tested and packaged to run on CentOS, Debian, RHEL, Ubuntu, MacOS,
|
||||||
Windows, and more. Download Salt and get started now.
|
Windows, and more. Download Salt and get started now. See
|
||||||
|
`supported operating systems <https://docs.saltproject.io/salt/install-guide/en/latest/topics/salt-supported-operating-systems.html>`_
|
||||||
|
for more information.
|
||||||
|
|
||||||
* `<https://repo.saltproject.io/>`_
|
To download and install Salt, see:
|
||||||
* `Installation Instructions <https://docs.saltproject.io/en/master/topics/installation/index.html>`_
|
* `The Salt install guide <https://docs.saltproject.io/salt/install-guide/en/latest/index.html>`_
|
||||||
|
* `Salt Project repository <https://repo.saltproject.io/>`_
|
||||||
|
|
||||||
Salt Project Documentation
|
|
||||||
|
Technical support
|
||||||
|
=================
|
||||||
|
Report bugs or problems using Salt by opening an issue: `<https://github.com/saltstack/salt/issues>`_
|
||||||
|
|
||||||
|
To join our community forum where you can exchange ideas, best practices,
|
||||||
|
discuss technical support questions, and talk to project maintainers, join our
|
||||||
|
Slack workspace: `Salt Project Community Slack`_
|
||||||
|
|
||||||
|
|
||||||
|
Salt Project documentation
|
||||||
==========================
|
==========================
|
||||||
|
Installation instructions, tutorials, in-depth API and module documentation:
|
||||||
|
|
||||||
Installation instructions, getting started guides, in-depth API
|
* `The Salt install guide <https://docs.saltproject.io/salt/install-guide/en/latest/index.html>`_
|
||||||
documentation, and contributing to Salt.
|
* `The Salt user guide <https://docs.saltproject.io/salt/user-guide/en/latest/>`_
|
||||||
|
* `Latest Salt documentation`_
|
||||||
|
* `Salt's contributing guide <https://docs.saltproject.io/en/master/topics/development/contributing.html>`_
|
||||||
|
|
||||||
* `Getting Started with Salt <https://docs.saltproject.io/en/getstarted/>`_
|
|
||||||
* `Latest Salt Documentation`_
|
|
||||||
* `Salt’s Contributor Guide <https://docs.saltproject.io/en/master/topics/development/contributing.html>`_
|
|
||||||
|
|
||||||
Security Advisories
|
Security advisories
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Keep an eye on the Salt Project
|
Keep an eye on the Salt Project
|
||||||
`Security Announcements <https://saltproject.io/security-announcements/>`_
|
`Security Announcements <https://saltproject.io/security-announcements/>`_
|
||||||
landing page. Salt Project recommends subscribing to the
|
landing page. Salt Project recommends subscribing to the
|
||||||
|
@ -86,17 +126,26 @@ announcements.
|
||||||
|
|
||||||
Other channels to receive security announcements include the
|
Other channels to receive security announcements include the
|
||||||
`Salt Community mailing list <https://groups.google.com/forum/#!forum/salt-users>`_
|
`Salt Community mailing list <https://groups.google.com/forum/#!forum/salt-users>`_
|
||||||
and the
|
and the `Salt Project Community Slack`_.
|
||||||
`Salt Project Community Slack`_.
|
|
||||||
|
|
||||||
Responsibly Reporting Security Vulnerabilities
|
|
||||||
|
Responsibly reporting security vulnerabilities
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
When reporting security vulnerabilities for Salt or other SaltStack projects,
|
When reporting security vulnerabilities for Salt or other SaltStack projects,
|
||||||
refer to the `SECURITY.md`_ file found in this repository.
|
refer to the `SECURITY.md`_ file found in this repository.
|
||||||
|
|
||||||
Engage the Salt Project and The Community
|
|
||||||
=========================================
|
Join our community
|
||||||
|
==================
|
||||||
|
Salt is built by the Salt Project community, which includes more than 3,000
|
||||||
|
contributors working in roles just like yours. This well-known and trusted
|
||||||
|
community works together to improve the underlying technology and extend Salt by
|
||||||
|
creating a variety of execution and state modules to accomplish the most common
|
||||||
|
tasks or solve the most important problems that people in your role are likely
|
||||||
|
to face.
|
||||||
|
|
||||||
|
If you want to help extend Salt or solve a problem with Salt, you can join our
|
||||||
|
community and contribute today.
|
||||||
|
|
||||||
Please be sure to review our
|
Please be sure to review our
|
||||||
`Code of Conduct <https://github.com/saltstack/salt/blob/master/CODE_OF_CONDUCT.md>`_.
|
`Code of Conduct <https://github.com/saltstack/salt/blob/master/CODE_OF_CONDUCT.md>`_.
|
||||||
|
@ -115,12 +164,12 @@ to the **Salt Project Community Events Calendar** on the main
|
||||||
`<https://saltproject.io>`_ website.
|
`<https://saltproject.io>`_ website.
|
||||||
|
|
||||||
If you have additional questions, email us at saltproject@vmware.com or reach out
|
If you have additional questions, email us at saltproject@vmware.com or reach out
|
||||||
directly to the Community Manager, Janae Andrus via Slack. We’d be glad to
|
directly to the Community Manager, Jimmy Chunga via Slack. We'd be glad to
|
||||||
have you join our community!
|
have you join our community!
|
||||||
|
|
||||||
|
|
||||||
License
|
License
|
||||||
=======
|
=======
|
||||||
|
|
||||||
Salt is licensed under the Apache 2.0 license. Please
|
Salt is licensed under the Apache 2.0 license. Please
|
||||||
see the
|
see the
|
||||||
`LICENSE file <https://github.com/saltstack/salt/blob/master/LICENSE>`_ for the
|
`LICENSE file <https://github.com/saltstack/salt/blob/master/LICENSE>`_ for the
|
||||||
|
|
|
@ -10,7 +10,7 @@ Salt Table of Contents
|
||||||
topics/about_salt_project
|
topics/about_salt_project
|
||||||
topics/index
|
topics/index
|
||||||
topics/salt_system_architecture
|
topics/salt_system_architecture
|
||||||
topics/community/index
|
topics/contributing
|
||||||
topics/installation/index
|
topics/installation/index
|
||||||
topics/configuration/index
|
topics/configuration/index
|
||||||
topics/using_salt
|
topics/using_salt
|
||||||
|
|
|
@ -1,106 +0,0 @@
|
||||||
.. _salt-community:
|
|
||||||
|
|
||||||
========================
|
|
||||||
Salt Community Resources
|
|
||||||
========================
|
|
||||||
|
|
||||||
.. rubric:: Join the Salt!
|
|
||||||
|
|
||||||
There are many ways to participate in and communicate with the Salt community.
|
|
||||||
|
|
||||||
Salt has an active IRC channel and a mailing list.
|
|
||||||
|
|
||||||
Mailing List
|
|
||||||
============
|
|
||||||
|
|
||||||
Join the `salt-users mailing list`_. It is the best place to ask questions
|
|
||||||
about Salt and see whats going on with Salt development! The Salt mailing list
|
|
||||||
is hosted by Google Groups. It is open to new members.
|
|
||||||
|
|
||||||
.. _`salt-users mailing list`: https://groups.google.com/forum/#!forum/salt-users
|
|
||||||
|
|
||||||
Additionally, all users of Salt should be subscribed to the Announcements mailing
|
|
||||||
list which contains important updates about Salt, such as new releases and
|
|
||||||
security-related announcements. This list is low-traffic.
|
|
||||||
|
|
||||||
.. _`salt-announce mailing list`: https://groups.google.com/forum/#!forum/salt-announce
|
|
||||||
|
|
||||||
IRC
|
|
||||||
===
|
|
||||||
|
|
||||||
The ``#salt`` IRC channel is hosted on the popular `LiberaChat`_ network. You
|
|
||||||
can use the `LiberaChat webchat client`_ right from your browser. `Logs of the
|
|
||||||
IRC channel activity`_ are also available.
|
|
||||||
|
|
||||||
.. _LiberaChat: https://libera.chat/
|
|
||||||
.. _`LiberaChat webchat client`: https://web.libera.chat/#salt
|
|
||||||
.. _`Logs of the IRC channel activity`: http://ngxbot.nginx.org/logs/%23salt/
|
|
||||||
|
|
||||||
If you wish to discuss the development of Salt itself join us in ``#salt-devel``.
|
|
||||||
|
|
||||||
|
|
||||||
Follow on Github
|
|
||||||
================
|
|
||||||
|
|
||||||
The Salt code is developed via Github. Follow Salt for constant updates on what
|
|
||||||
is happening in Salt development:
|
|
||||||
|
|
||||||
|saltrepo|
|
|
||||||
|
|
||||||
Long-term planning and strategic decisions are handled via Salt Enhancement Proposals
|
|
||||||
and can be found on GitHub.
|
|
||||||
|
|
||||||
.. _`Salt Enhancement Proposals`: https://github.com/saltstack/salt-enhancement-proposals
|
|
||||||
|
|
||||||
|
|
||||||
Blogs
|
|
||||||
=====
|
|
||||||
|
|
||||||
The Salt Project keeps a `blog`_ with recent news and advancements:
|
|
||||||
|
|
||||||
https://saltproject.io/blog/
|
|
||||||
|
|
||||||
.. _`blog`: https://saltproject.io/blog/
|
|
||||||
|
|
||||||
|
|
||||||
Example Salt States
|
|
||||||
===================
|
|
||||||
|
|
||||||
The official ``salt-states`` repository is:
|
|
||||||
https://github.com/saltstack/salt-states
|
|
||||||
|
|
||||||
A few examples of salt states from the community:
|
|
||||||
|
|
||||||
* https://github.com/blast-hardcheese/blast-salt-states
|
|
||||||
* https://github.com/kevingranade/kevingranade-salt-state
|
|
||||||
* https://github.com/uggedal/states
|
|
||||||
* https://github.com/mattmcclean/salt-openstack/tree/master/salt
|
|
||||||
* https://github.com/rentalita/ubuntu-setup/
|
|
||||||
* https://github.com/brutasse/states
|
|
||||||
* https://github.com/pcrews/salt-data
|
|
||||||
|
|
||||||
Follow on ohloh
|
|
||||||
===============
|
|
||||||
|
|
||||||
https://www.ohloh.net/p/salt
|
|
||||||
|
|
||||||
Other community links
|
|
||||||
=====================
|
|
||||||
|
|
||||||
- `Salt Project <http://saltproject.io>`_
|
|
||||||
- `Subreddit <http://www.reddit.com/r/saltstack>`_
|
|
||||||
- `YouTube <https://www.youtube.com/channel/UCpveTIucFx9ljGelW63-BWg>`_
|
|
||||||
- `Twitch <https://twitch.tv/saltprojectoss>`_
|
|
||||||
- `Facebook <https://www.facebook.com/SaltProjectOSS>`_
|
|
||||||
- `Twitter <https://twitter.com/Salt_Project_OS>`_
|
|
||||||
- `Wikipedia page <https://en.wikipedia.org/wiki/Salt_(software)>`_
|
|
||||||
- `Stack Overflow <https://stackoverflow.com/questions/tagged/salt-stack+or+salt-cloud+or+salt-creation>`_
|
|
||||||
|
|
||||||
Hack the Source
|
|
||||||
===============
|
|
||||||
|
|
||||||
If you want to get involved with the development of source code or the
|
|
||||||
documentation efforts, please review the :ref:`contributing documentation
|
|
||||||
<contributing>`!
|
|
||||||
|
|
||||||
.. _`Apache 2.0 license`: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
3
doc/topics/contributing.rst
Normal file
3
doc/topics/contributing.rst
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.. _contributing:
|
||||||
|
|
||||||
|
.. include:: ../../CONTRIBUTING.rst
|
Loading…
Add table
Reference in a new issue