From 073c5b35db7e41ec6a0b18ac199b7daa7f468d7b Mon Sep 17 00:00:00 2001 From: Till Maas Date: Tue, 10 Mar 2020 22:23:25 +0100 Subject: [PATCH] add initial steps --- Home.asciidoc | 42 ------------------------------------- Home.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 42 deletions(-) delete mode 100644 Home.asciidoc create mode 100644 Home.md diff --git a/Home.asciidoc b/Home.asciidoc deleted file mode 100644 index 58b4c7c..0000000 --- a/Home.asciidoc +++ /dev/null @@ -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 - diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..0088c91 --- /dev/null +++ b/Home.md @@ -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 \ No newline at end of file