{"id":13510810,"url":"https://github.com/vyos/vyos-1x","last_synced_at":"2026-04-16T03:03:48.917Z","repository":{"id":25017960,"uuid":"100655206","full_name":"vyos/vyos-1x","owner":"vyos","description":"VyOS command definitions, scripts, and utilities","archived":false,"fork":false,"pushed_at":"2026-04-09T14:40:58.000Z","size":29470,"stargazers_count":475,"open_issues_count":18,"forks_count":421,"subscribers_count":26,"default_branch":"current","last_synced_at":"2026-04-09T16:23:27.635Z","etag":null,"topics":["hacktoberfest","vyos"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vyos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-18T00:04:29.000Z","updated_at":"2026-04-09T14:41:19.000Z","dependencies_parsed_at":"2023-10-17T07:39:44.147Z","dependency_job_id":"b0a69830-f6b1-4e9c-82ba-6db80bc0dbc3","html_url":"https://github.com/vyos/vyos-1x","commit_stats":{"total_commits":8305,"total_committers":206,"mean_commits":40.31553398058252,"dds":0.5236604455147502,"last_synced_commit":"5d890037b177ce6971ac00f52e4cce2cac898f46"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/vyos/vyos-1x","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyos%2Fvyos-1x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyos%2Fvyos-1x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyos%2Fvyos-1x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyos%2Fvyos-1x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vyos","download_url":"https://codeload.github.com/vyos/vyos-1x/tar.gz/refs/heads/current","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyos%2Fvyos-1x/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31869051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","vyos"],"created_at":"2024-08-01T02:01:54.961Z","updated_at":"2026-04-16T03:03:48.899Z","avatar_url":"https://github.com/vyos.png","language":"Python","funding_links":[],"categories":["Python","hacktoberfest"],"sub_categories":[],"readme":"# vyos-1x: VyOS command definitions, configuration scripts, and data\n\nVyOS 1.1.x had its codebase split into way too many submodules for no good\nreason, which made it hard to navigate or write meaningful changelogs. As the\ncode undergoes rewrite in the new style in VyOS 1.2.0+, we consolidate the\nrewritten code in this package.\n\nIf you just want to build a VyOS image, the repository you want is\n[vyos-build](https://github.com/vyos/vyos-build). If you also want to contribute\nto VyOS, read on.\n\n## Package layout\n\n```\ndata                   # Jinja2 templates\ndebian                 # Our package build system\ninterface-definitions  # Configuration interface (i.e. conf mode command) definitions\nop-mode-definitions    # Operational command definitions\npython                 # Programming library for accessing the config frontend/backend\nschema                 # XML schema definition for conf mode and op mode commands\nscripts                # Build-time scripts\nsmoketest              # Python Unittests for the CLI and system\nsrc\n    conf_mode/  # Configuration mode scripts\n    op_mode/    # Operational mode scripts\n    completion/ # Completion helpers\n    validators/ # Value validators\n    helpers/    # Misc helpers\n    migration-scripts # Migration scripts\n    tests/      # Unit tests\n```\n\n## Interface/command definitions\n\nRaw `node.def` files for the old backend are no longer written by hand or\ngenerated by custom scripts. They are all now produced from a unified XML format\nthat supports a strict subset of the old backend features. In particular, it\nintentionally does not support embedded shell scripts, default values, and value\n\"types\", instead delegating those tasks to external scripts.\n\nConfiguration interface definitions must conform to the schema found in\n`schema/interface_definition.rng` and operational command definitions must\nconform to `schema/op-mode-definition.rng`. Schema checks are performed at build\ntime, so a package with malformed interface definitions will not build.\n\n## Configuration scripts\n\nThe guidelines in a nutshell:\n\n* Use separate functions for retrieving configuration data, validating it, and\n  generating taret config, see our\n  [documentation](https://docs.vyos.io/en/latest/contributing/development.html#python)\n  for the common structure\n* Use the `get_config_dict()` API as much as possible when retrieving values from the CLI\n* Use a template processor when the format is more complex than just one line\n  (our standard is Jinja2)\n\n## Tests\n\nTests are executed at build time, you can also execute them by hand with:\n\n```\npipenv install --dev\npipenv shell\nmake test\n```\n\n### Runtime (Smoke Tests)\n\nRuntime tests are executed by the CI system on a running VyOS instance inside\nQEMU. The testcases can be found inside the smoketest subdirectory which will\nbe placed into the vyos-1x-smoketest package.\n\n\n### Thanks to all the people who already contributed!\n\n\u003ca href=\"https://github.com/vyos/vyos-1x/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contributors-img.web.app/image?repo=vyos/vyos-1x\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyos%2Fvyos-1x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvyos%2Fvyos-1x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyos%2Fvyos-1x/lists"}