summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md66
1 files changed, 59 insertions, 7 deletions
diff --git a/README.md b/README.md
index d02557393..896f28b3d 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,63 @@
-vyos-smoketest
-==============
+# vyos-1x: VyOS 1.2.0+ configuration scripts and data
-This is a set of scripts and test data for sanity checking VyOS builds.
+[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=vyos%3Avyos-1x&metric=coverage)](https://sonarcloud.io/component_measures?id=vyos%3Avyos-1x&metric=coverage)
+[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvyos%2Fvyos-1x.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvyos%2Fvyos-1x?ref=badge_shield)
-The main entry point is /usr/bin/vyos-smoketest
+VyOS 1.1.x had its codebase split into way too many submodules for no good reason, which made it hard
+to navigate or write meaningful changelogs. As the code undergoes rewrite in the new style in VyOS 1.2.0+,
+we consolidate the rewritten code in this package.
-It will try to check for common things that break such as kernel modules not loading,
-and print a test report.
+If you just want to build a VyOS image, the repository you want is [vyos-build](https://github.com/vyos/vyos-build).
+If you also want to contribute to VyOS, read on.
-It also comes with a huge reference config that has almost every feature set.
+## Package layout
+
+```
+interface-definitions # Configuration interface (i.e. conf mode command) definitions
+op-mode-definitions # Operational command definitions
+src
+ conf_mode/ # Configuration mode scripts
+ op_mode/ # Operational mode scripts
+ completion/ # Completion helpers
+ validators/ # Value validators
+ helpers/ # Misc helpers
+ migration-scripts # Migration scripts
+ tests/ # Unit tests
+
+python/ # Python modules
+
+scripts/ # Build-time scripts
+schema/ # XML schemas
+```
+
+## Interface/command definitions
+
+Raw node.def files for the old backend are no longer written by hand or generated by custom sciprts.
+They are all now produced from a unified XML format that supports a strict subset of the old backend
+features. In particular, it intentionally does not support embedded shell scripts, default values,
+and value "types", instead delegating those tasks to external scripts.
+
+Configuration interface definitions must conform to the schema found in schema/interface_definition.rng
+and operational command definitions must conform to schema/op-mode-definition.rng
+Schema checks are performed at build time, so a package with malformed interface definitions will not build.
+
+## Configuration scripts
+
+The guidelines in a nutshell:
+
+* Use separate functions for retrieving configuration data, validating it, and generating taret config
+* Use a template processor when the format is more complex than just one line (jinja2 and pystache are acceptable options)
+
+## Tests
+
+Tests are executed at build time, you can also execute them by hand with:
+
+```
+pipenv install
+pipenv shell
+make test
+```
+
+
+## License
+[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvyos%2Fvyos-1x.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvyos%2Fvyos-1x?ref=badge_large) \ No newline at end of file