summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2025-01-21 03:04:52 +0000
committerDaniil Baturin <daniil@baturin.org>2025-01-21 03:04:52 +0000
commitccc17c5c6b14833bc57f5a8b5c250ead8c9d6450 (patch)
tree141a546a5b83bbbe2624d702f3886dd30a8d13aa /docs
parent1a87b35b072069e1ec3822d4f22c7161bf44e423 (diff)
downloadvyos-documentation-ccc17c5c6b14833bc57f5a8b5c250ead8c9d6450.tar.gz
vyos-documentation-ccc17c5c6b14833bc57f5a8b5c250ead8c9d6450.zip
Misc updates and outdated info removals in Contributing
Diffstat (limited to 'docs')
-rw-r--r--docs/contributing/development.rst151
1 files changed, 3 insertions, 148 deletions
diff --git a/docs/contributing/development.rst b/docs/contributing/development.rst
index c5df8b12..50e22c44 100644
--- a/docs/contributing/development.rst
+++ b/docs/contributing/development.rst
@@ -119,20 +119,11 @@ repositories found in the VyOS GitHub organisation at https://github.com/vyos
Determinine source package
--------------------------
-Suppose you want to make a change in the webproxy script but yet you do not know
-which of the many VyOS packages ship this file. You can determine the VyOS
+Suppose you want to make a change in a file but yet you do not know
+which of the VyOS packages ship this file. You can determine the VyOS
package name in question by using Debian's ``dpkg -S`` command of your running
VyOS installation.
-.. code-block:: none
-
- vyos@vyos:~ dpkg -S /opt/vyatta/sbin/vyatta-update-webproxy.pl
- vyatta-webproxy: /opt/vyatta/sbin/vyatta-update-webproxy.pl
-
-This means the file in question (``/opt/vyatta/sbin/vyatta-update-webproxy.pl``)
-is located in the ``vyatta-webproxy`` package which can be found here:
-https://github.com/vyos/vyatta-webproxy
-
Fork Repository and submit Patch
--------------------------------
@@ -171,7 +162,7 @@ record them in your created Git commit:
* Submit the patch ``git push`` and create the GitHub pull-request.
-Attach patch to Phabricator task
+Attach patch to Phorge task
--------------------------------
Follow the above steps on how to "Fork repository to submit a Patch". Instead
@@ -192,9 +183,6 @@ us all. By having a consistent coding style it becomes very easy for new
and also longtime contributors to navigate through the sources and all the
implied logic of any one source file..
-Python 3 **shall** be used. How long can we keep Python 2 alive anyway? No
-considerations for Python 2 compatibility **should** be taken at any time.
-
Formatting
----------
@@ -219,43 +207,6 @@ used for structured, multi-line formats such as those used by ISC DHCPd.
The default template processor for VyOS code is Jinja2_.
-Summary
--------
-
-When modifying the source code, remember these rules of the legacy elimination
-campaign:
-
-* No new features in Perl
-* No old style command definitions
-* No code incompatible with Python3
-
-
-Python
-======
-
-The switch to the Python programming language for new code is not merely a
-change of the language, but a chance to rethink and improve the programming
-approach.
-
-Let's face it: VyOS is full of spaghetti code where logic for reading the VyOS
-config, generating daemon configs, and restarting processes is all mixed up.
-
-Python (or any other language, for that matter) does not provide automatic
-protection from bad design, so we need to also devise design guidelines and
-follow them to keep the system extensible and maintainable.
-
-But we are here to assist you and want to guide you through how you can become
-a good VyOS contributor. The rules we have are not there to punish you - the
-rules are in place to help us all. What does it mean? By having a consistent
-coding style it becomes very easy for new contributors and also longtime
-contributors to navigate through the sources and all the implied logic of
-the spaghetti code.
-
-Please use the following template as good starting point when developing new
-modules or even rewrite a whole bunch of code in the new style XML/Python
-interface.
-
-
Configuration Script Structure and Behaviour
--------------------------------------------
@@ -635,69 +586,6 @@ Examples:
* Good: "Disable IPv6 forwarding"
* Bad: "Disables IPv6 forwarding"
-Migrating old CLI
------------------
-
-.. list-table::
- :widths: 25 25 50
- :header-rows: 1
-
- * - Old concept/syntax
- - New syntax
- - Notes
- * - mynode/node.def
- - <node name="mynode"> </node>
- - Leaf nodes (nodes with values) use <leafNode> tag instead
- * - mynode/node.tag , tag:
- - <tagNode name="mynode> </node>
- -
- * - help: My node
- - <properties> <help>My node</help>
- -
- * - val_help: <format>; some string
- - <properties> <valueHelp> <format> format </format> <description> some
- string </description>
- - Do not add angle brackets around the format, they will be inserted
- automatically
- * - syntax:expression: pattern
- - <properties> <constraint> <regex> ...
- - <constraintErrorMessage> will be displayed on failure
- * - syntax:expression: $VAR(@) in "foo", "bar", "baz"
- - None
- - Use regex
- * - syntax:expression: exec ...
- - <properties> <constraint> <validator> <name ="foo" argument="bar">
- - "${vyos_libexecdir}/validators/foo bar $VAR(@)" will be executed,
- <constraintErrorMessage> will be displayed on failure
- * - syntax:expression: (arithmetic expression)
- - None
- - External arithmetic validator may be added if there's demand, complex
- validation is better left to commit-time scripts
- * - priority: 999
- - <properties> <priority>999</priority>
- - Please leave a comment explaining why the priority was chosen
- (e.g. "after interfaces are configured")
- * - multi:
- - <properties> <multi/>
- - Only applicable to leaf nodes
- * - allowed: echo foo bar
- - <properties> <completionHelp> <list> foo bar </list>
- -
- * - allowed: cli-shell-api listNodes vpn ipsec esp-group
- - <properties> <completionHelp> <path> vpn ipsec esp-group </path> ...
- -
- * - allowed: /path/to/script
- - <properties> <completionHelp> <script> /path/to/script </script> ...
- -
- * - default:
- - None
- - Move default values to scripts
- * - commit:expression:
- - None
- - All commit time checks should be in the verify() function of the script
- * - begin:/create:/delete:
- - None
- - All logic should be in the scripts
C++ Backend Code
================
@@ -717,39 +605,6 @@ in the C/C++ code.
- https://github.com/vyos/vyatta-cfg/blob/0f42786a0b3/src/commit/commit-algorithm.cpp#L1252
-
-Continuous Integration
-======================
-
-VyOS makes use of Jenkins_ as our Continuous Integration (CI) service. Our
-`VyOS CI`_ server is publicly accessible here: https://ci.vyos.net. You can get
-a brief overview of all required components shipped in a VyOS ISO.
-
-To build our modules we utilize a CI/CD Pipeline script. Each and every VyOS
-component comes with it's own ``Jenkinsfile`` which is (more or less) a copy.
-The Pipeline utilizes the Docker container from the :ref:`build_iso` section -
-but instead of building it from source on every run, we rather always fetch a
-fresh copy (if needed) from Dockerhub_.
-
-Each module is build on demand if a new commit on the branch in question is
-found. After a successful run the resulting Debian Package(s) will be deployed
-to our Debian repository which is used during build time. It is located here:
-http://dev.packages.vyos.net/repositories/.
-
-
-.. stop_vyoslinter
-
-.. _Jenkins: https://jenkins.io/
-.. _Dockerhub: https://hub.docker.com/u/vyos/
-.. _process: https://blog.vyos.io/vyos-development-digest-10
-.. _VyConf: https://github.com/vyos/vyconf/tree/master/data/schemata
-.. _vyos-1x: https://github.com/vyos/vyos-1x/tree/current/schema
-.. _Jinja2: https://jinja.palletsprojects.com/
-.. _`IPv4, IPv6 and DHCP(v6)`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
-.. _`IPv4, IPv6`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
-.. _`VLAN (VIF)`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/vif.xml.i
-.. _`MAC address`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/mac.xml.i
-
.. include:: /_include/common-references.txt
.. start_vyoslinter