{"id":18485387,"url":"https://github.com/system76/certification","last_synced_at":"2025-04-08T19:32:29.624Z","repository":{"id":37851382,"uuid":"81251953","full_name":"system76/certification","owner":"system76","description":"System76 Certification Tools","archived":false,"fork":false,"pushed_at":"2025-03-28T19:57:52.000Z","size":861,"stargazers_count":31,"open_issues_count":2,"forks_count":3,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-28T20:33:57.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/system76.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-07T20:40:22.000Z","updated_at":"2025-03-28T19:57:55.000Z","dependencies_parsed_at":"2023-10-14T22:19:54.740Z","dependency_job_id":"3c527422-b30e-4380-a24e-010c81fa9c6b","html_url":"https://github.com/system76/certification","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/system76%2Fcertification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/system76%2Fcertification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/system76%2Fcertification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/system76%2Fcertification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/system76","download_url":"https://codeload.github.com/system76/certification/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247912749,"owners_count":21017041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-06T12:45:02.910Z","updated_at":"2025-04-08T19:32:28.907Z","avatar_url":"https://github.com/system76.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# System76 Certification\n\nA collection of automated and manual processes to ensure the delivery of a quality System76 machine.\n\n\u003cdiv style=\"page-break-after: always;\"\u003e\u003c/div\u003e\n\n## Rationale\n\nWe would like to, for production and engineering reasons, have a set of automated and manual procedures that can be collected with as little user input as possible to identify product issues.\n\nFor support reasons, we would like to have a set of tests that support staff can use to identify potential issues with hardware in the field.\n\nFor marketing reasons, we would like to have more information to offer potential customers about the effectiveness of our machines.\n\n\u003cdiv style=\"page-break-after: always;\"\u003e\u003c/div\u003e\n\n## High Level Concepts\n\n### Product Conception\n\nWhen we are attempting to produce a new product, we need to evaluate what hardware is present and can be activated, using automated procedures. This information should be collected in a centralized repository.\n\n### Product Development\n\nTo develop the product, we then need to run both automated and manual tests, iterating to produce a releasable product. This information should be tracked over time, which we already do with a manual process.\n\n### Product Release\n\nUpon product release, we should be able to publish the results of our test in a beautiful, powerful manner to compliment our other product materials. We should attempt to track user engagement with this information.\n\n### Product Maintenance\n\nWhen we handle support issues, we should refer to collected test information, and be able to reproduce test results on machines in the field, or in the RMA process.\n\n\u003cdiv style=\"page-break-after: always;\"\u003e\u003c/div\u003e\n\n## Low Level Implementation\n\n### Automated Hardware Discovery\n\nWe should have a process of, given a new barebones machine, identifying present hardware and determining if there are test cases covering the usage of this hardware\n\n### Standardized Tests\n\nEach class of hardware should have a set of automated and manual tests and benchmarks that can be run in a scripted form. Preference would be to segregate manual and automated tests in order to allow quick runs of either.\n\nFull set of tests could include plainbox/checkbox tests (automated tests as well as manual tests), phoronix benchmarking and possibly even blender tests.\n\n### Test Suggestion\n\nFor discovered hardware that does not have tests or benchmarks, suggestions should be made and included in the results\n\n### Automated Result Collection\n\nResult collection should be automated, regardless of the automation of the test\n\n### Pretty and \"Ugly\" interfaces to Results\n\nWe should have a manner of presenting test results to users in a highly aesthetic manner, in addition to providing more information for our purposes and those of power users.\n\n### Comparison of Results Across Hardware\n\nWe should be able to compare results among different pieces of hardware, allowing us to display benchmark results to customers interested in examining two pieces of hardware.\n\n### Tests Prior to Shipping\n\nWe should have sanity testing to identify lemons before shipping them.\n\n### User-Generated Results\n\nWe should allow users to run this test tool and produce their own test results.\n\n\u003cdiv style=\"page-break-after: always;\"\u003e\u003c/div\u003e\n\n## Possible Development Process\n\n- Create a result collection client for some simple, automatable tests and benchmarks.\n- Create a server to host results, per product line (Oryx Pro), and model (8156)\n- Create an ugly user interface for test results\n- Create a method of discovering present hardware, and adding to the result recommendations for benchmarks and tests.\n- Improve upon the number of tests to include the most useful ones\n- Create a pretty user interface for test results\n- Create a comparison method for test results\n- Publicize this new certification framework\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystem76%2Fcertification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsystem76%2Fcertification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsystem76%2Fcertification/lists"}