add initial steps

Till Maas 2020-03-10 22:23:25 +01:00
parent 9fb59b25dd
commit 073c5b35db
2 changed files with 57 additions and 42 deletions

@ -1,42 +0,0 @@
## Improve Network Linux System Role 2020 GSoC project
- Difficulty: Intermediate
- Technology: Python, Ansible
- Mentor: Till Maas, Thomas Haller
- GitHub: @tyll, @thom311
- Project URL: https://github.com/linux-system-roles/network/
### Description
The Network Linux System Role provides a uniform configuration interface for
network-scripts and NetworkManager. In this project, the role would be
improved. There are several areas that could be selected by an intern depending
on their interest:
#### Add support for more interfaces/options, this includes the following tasks
* Write missing tests/documentation for open PRs to finalize them
* Add support for wake-on-lan options: https://github.com/linux-system-roles/network/issues/150
* Add proper support for team and make the configuration more uniform with bonding
#### Improve the testing framework
* Write an integration test to become familiar with the role, for example for https://github.com/linux-system-roles/network/issues/124
* Make the tests more uniform (they developed over the time. Adjust old tests to use the conventions of newer tests)
* Add support to test the ansible module directly via pytest instead of only via ansible-playbook
* Simplify test playbooks by writing custom Ansible modules that simplify test setup/preparation and assertions
#### Network state management (most difficult)
* Support to update only partial settings
* Return the current network configuration
* Initially only the configuration files
* Maybe also the runtime state
### What are we looking for
* Interest in writing high-quality code in Python for Ansible
* Personal accountability with regular, clear and open communication
* Ability to independently transfer feedback into code
* Support for more features or a better test framework
* Effective collaboration via GitHub, IRC and video conferences

57
Home.md Normal file

@ -0,0 +1,57 @@
## Improve Network Linux System Role 2020 GSoC project
- Difficulty: Intermediate
- Technology: Python, Ansible
- Mentor: Till Maas, Thomas Haller
- GitHub: @tyll, @thom311
- Project URL: https://github.com/linux-system-roles/network/
### Description
The Network Linux System Role provides a uniform configuration interface for
network-scripts and NetworkManager. In this project, the role would be
improved. There are several areas that could be selected by an intern depending
on their interest:
#### Add support for more interfaces/options, this includes the following tasks
* Write missing tests/documentation for open PRs to finalize them
* Add support for wake-on-lan options: https://github.com/linux-system-roles/network/issues/150
* Add proper support for team and make the configuration more uniform with bonding
#### Improve the testing framework
* Write an integration test to become familiar with the role, for example for https://github.com/linux-system-roles/network/issues/124
* Make the tests more uniform (they developed over the time. Adjust old tests to use the conventions of newer tests)
* Add support to test the ansible module directly via pytest instead of only via ansible-playbook
* Simplify test playbooks by writing custom Ansible modules that simplify test setup/preparation and assertions
#### Network state management (most difficult)
* Support to update only partial settings
* Return the current network configuration
* Initially only the configuration files
* Maybe also the runtime state
### What are we looking for
* Interest in writing high-quality code in Python for Ansible
* Personal accountability with regular, clear and open communication
* Ability to independently transfer feedback into code
* Support for more features or a better test framework
* Effective collaboration via GitHub, IRC and video conferences
### First Steps
* Subscribe to the system roles [mailing list](https://lists.fedorahosted.org/admin/lists/systemroles.lists.fedorahosted.org/) and send an introduction message. Tell us which area interests you and why you would like to participate
* If you are using IRC, join the `#systemroles` IRC channel on [freenode](https://freenode.net/kb/answer/chat) and say Hi (it is rather new, therefore there is not much going on, yet)
* Take a look at the [integration tests](https://github.com/linux-system-roles/network/tree/master/tests) and try to get them running. The are run by a [custom CI tool](https://github.com/linux-system-roles/test-harness/blob/master/test/run-tests#L399) and are inspired by the [Standard Test Interface](https://docs.fedoraproject.org/en-US/ci/standard-test-interface/)
* Get the unit and linting tests running using [tox](https://tox.readthedocs.io/en/latest/)
* Optional: Get the molecule tests running by running `tox -e molecule` (this requires being able to run docker as the current user)
* Study the recently added integration tests: [tests_ethtool_features_nm.yml](https://github.com/linux-system-roles/network/blob/master/tests/tests_ethtool_features_nm.yml) and [tests_ethtool_features_initscripts.yml](https://github.com/linux-system-roles/network/blob/master/tests/tests_ethtool_features_nm.yml)
* Possible initial tasks:
* Port one of the old tests to use the same format as the new tests:
* Pick one of tests_bridge.yml, tests_default.yml, tests_ethernet.yml and create a new issue in the issue tracker to indicate that you plan to work on it and submit a PR with the new test that references the issue
* Once you did it, create a new PR that references your issue and request a review from @tyll
* Create a new test using the example files from https://github.com/linux-system-roles/network/issues/124#issuecomment-572250996
* Look through the README for examples and write a simple test for them if there is none already
* Watch this wiki page for updates