This is a monorepo for all the loose packages published by atopile.
Project-specific packages are published from their own repos.
Package name restrictions:
-
kebab-case
-
starts with a letter
-
"[a-z][0-9-]+"
-
project directories MUST have the same name as the package
-
drivers for ICs SHOULD be in the format "-x?". eg ti-bq240x
- there should be a single "x" on the end if there are multiple variants of the same part family
- the manufacturer stub should be omitted if the they already do this for ths
-
modules and files should be named like "x?"
- "x" is optional if there is only one variant of the part family
- omit the manufacturer stub from the filename
-
components should be named like ""
-
build names should be:
- "ref-" for reference designs
- "test-" for test builds
- "example-" for example builds
- if only one IC/set of builds exist in a package, the name can be omitted
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a new branch for your changes
git checkout -b feature/your-feature-name
- Make your changes
- Install and run pre-commit hooks to ensure code quality
pre-commit install pre-commit run --all-files
- Commit your changes with clear, descriptive commit messages
- Push to your fork
- Open a Pull Request with a clear description of your changes
Please ensure your PR:
- Follows the package naming conventions above
- Includes appropriate tests if adding new functionality
- Has all pre-commit checks passing
- Has a clear description of the changes
To build all packages in the repository, use the build-all.sh
script:
# Build all packages
./build-all.sh
# Build all packages with specific flags (e.g., --frozen)
./build-all.sh --frozen
The script will attempt to build each package and provide a summary report of successes and failures.