{"id":24272711,"url":"https://github.com/brainelectronics/pcba_helper","last_synced_at":"2026-02-14T21:02:28.254Z","repository":{"id":271018839,"uuid":"912108793","full_name":"brainelectronics/pcba_helper","owner":"brainelectronics","description":"Generate a deployment folder with all required files for easy PCBA","archived":false,"fork":false,"pushed_at":"2025-01-06T13:53:50.000Z","size":135,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T01:09:21.321Z","etag":null,"topics":["kicad","kicad-tool","pcb-manufacturing","pcba","python3","tooling"],"latest_commit_sha":null,"homepage":"https://brainelectronics.github.io/pcba_helper/","language":"CSS","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/brainelectronics.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2025-01-04T16:20:28.000Z","updated_at":"2025-01-06T13:53:53.000Z","dependencies_parsed_at":"2025-03-05T07:38:37.810Z","dependency_job_id":null,"html_url":"https://github.com/brainelectronics/pcba_helper","commit_stats":null,"previous_names":["brainelectronics/pcba_helper"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/brainelectronics/pcba_helper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainelectronics%2Fpcba_helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainelectronics%2Fpcba_helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainelectronics%2Fpcba_helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainelectronics%2Fpcba_helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brainelectronics","download_url":"https://codeload.github.com/brainelectronics/pcba_helper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainelectronics%2Fpcba_helper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29455601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["kicad","kicad-tool","pcb-manufacturing","pcba","python3","tooling"],"created_at":"2025-01-15T18:49:56.164Z","updated_at":"2026-02-14T21:02:28.250Z","avatar_url":"https://github.com/brainelectronics.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PCBA Helper\n\n[![PyPI Downloads](https://static.pepy.tech/badge/pcba-helper)](https://pepy.tech/projects/pcba-helper)\n![Release](https://img.shields.io/github/v/release/brainelectronics/pcba_helper?include_prereleases\u0026color=success)\n![Python](https://img.shields.io/badge/Python-3.9%20|%203.10%20|%203.11-green.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![codecov](https://codecov.io/github/brainelectronics/pcba_helper/branch/main/graph/badge.svg)](https://app.codecov.io/github/brainelectronics/pcba_helper)\n\nGenerate a deployment folder with all required files for easy PCBA\n\n---------------\n\n## General\n\nGenerate a (secured) deployment folder with all required files for easy PCBA\n\n\u003c!-- MarkdownTOC --\u003e\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Example](#example)\n- [Contributing](#contributing)\n  - [Setup](#setup)\n  - [Testing](#testing)\n  - [Changelog](#changelog)\n- [Credits](#credits)\n\n\u003c!-- /MarkdownTOC --\u003e\n\n## Installation\n\n```bash\n[\u003cPYTHON\u003e -m] pip[3] install [--user] [--upgrade] pcba_helper\n```\n\n## Usage\n\nCreate a login secured deployment folder from the KiCAD project at\n`examples/KiCAD`. The folder is named `deploy` and placed in the\n`examples/KiCAD` folder. The [iBOM file][ref-ibom] is expected relative to the\nKiCAD project folder.\n\n```bash\ngenerate-deployments examples/KiCAD \\\n  --output examples/KiCAD/deploy \\\n  --ibom-file ibom/ibom.html \\\n  --username \"John\" \\\n  --password \"secret\" \\\n  -vvvv\n```\n\nThe parameter `--public` is optional and creates pure HTML files which can be\naccessed without passing any login page, parameter values of `username` and\n`password` are ignored.\n\n## Example\n\nThe `docker-compose.yml` generates the PDF from the KiCAD schematic, creates\nthe `deploy` folder and fires up an Apache server with PHP at the fixed IP\naddress [`172.42.0.2`](http://172.42.0.2).\n\n```bash\n[PUBLIC=1] docker compose up --build\ndocker compose down\n[sudo] rm -rf examples/KiCAD/deploy\n```\n\n## Contributing\n\n### Setup\n\nFor active development you need to have `poetry` and `pre-commit` installed\n\n```bash\npython3 -m pip install --upgrade --user poetry pre-commit\ngit clone https://github.com/brainelectronics/pcba_helper.git\ncd pcba_helper\npre-commit install\npoetry install\n```\n\n### Testing\n\n```bash\n# run all tests\npoetry run coverage run -m pytest -v\n\n# run only one specific tests\npoetry run coverage run -m pytest -v -k \"test_read_save\"\n```\n\nGenerate the coverage files with\n\n```bash\npython create_report_dirs.py\ncoverage html\n```\n\nThe coverage report is placed at `reports/coverage/html/index.html`\n\n### Changelog\n\nThe changelog format is based on [Keep a Changelog][ref-keep-a-changelog], and\nthis project adheres to [Semantic Versioning][ref-semantic-versioning].\n\nPlease add a changelog snippet, see below, for every PR you contribute. The\nchanges are categorised into:\n\n- `bugfixes` fix an issue which can be used out of the box without any further\nchanges required by the user. Be aware that in some cases bugfixes can be\nbreaking changes.\n- `features` is used to indicate a backwards compatible change providing\nimproved or extended functionalitiy. This does, as `bugfixes`, in any case\nnot require any changes by the user to keep the system running after upgrading.\n- `breaking` creates a breaking, non backwards compatible change which\nrequires the user to perform additional tasks, adopt his currently running\ncode or in general can't be used as is anymore.\n\nThe scope of a change shall either be:\n- `internal` if no new deployment is required for this change, like updates in\nthe documentation for example\n- `external` or `all` if this change affects the public API of this package or\nrequires a new tag and deployment for any other reason\n\nThe changelog entry shall be short but meaningful and can of course contain\nlinks and references to other issues or PRs. New lines are only allowed for a\nnew bulletpoint entry. Usage examples or other code snippets should be placed\nin the code documentation, README or the docs folder.\n\nThe name of the snippet shall be `\u003cISSUE_ID.md\u003e`\n\n```bash\n[poetry run] changelog-generator \\\n    create .snippets/1.md\n```\n\n## Credits\n\nA big thank you to the creators and maintainers of [SemVer.org][ref-semver]\nfor their documentation and [regex example][ref-semver-regex-example]\n\n\u003c!-- Links --\u003e\n[ref-ibom]: https://github.com/openscopeproject/InteractiveHtmlBom\n[ref-keep-a-changelog]: https://keepachangelog.com/en/1.0.0/\n[ref-semantic-versioning]: https://semver.org/spec/v2.0.0.html\n[ref-semver]: https://semver.org/\n[ref-semver-regex-example]: https://regex101.com/r/Ly7O1x/3/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainelectronics%2Fpcba_helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrainelectronics%2Fpcba_helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainelectronics%2Fpcba_helper/lists"}