Thank you for your interest in contributing! This project is a collection of open source software packages maintained by Nicolas Ventura (@nicfv) for users like you! You are allowed to fork the repository as permitted by the MIT License terms. Contributions are welcome by submitting a pull request. Please follow the existing code styling if submitting a pull request, and please be respectful and constructive in your interactions with other contributors. Once again, thank you for your consideration!
Below is a list of requirements that must be followed when contributing to this project.
- Exists within
./packages/<name>/ - Generally,
package.jsonshould follow the existing design pattern- Must support an
npm startscript which executes.github/workflows/scripts
- Must support an
- Must contain a
README.mdandCHANGELOG.md - Source code must be written in
./packages/<name>/src/and in the latest supported version of TypeScript- Includes
index.tsas the entry point file - Includes
test.tsfor unit/integration testing
- Includes
- Tests should use the latest version of
t6for assertion testing - Must contain examples in
example/
- Must depend on the latest version of the package
- Cannot have dependencies other than the ones in this repository (keep it simple)
- Must be written in modular JavaScript with the
.mjsextension - Each example must have a corresponding
<Example Name>.mddocumentation file- This is shown above the example code in the generated documentation
- This file supports LaTeX (uses MathJax for rendering)
- UI examples must be contained in their own subfolder within the examples folder
- Must be built with webpack using the command
webpack --mode development --watchin addition to the above requirements - Allowed files:
index.html,src/index.js(for webpack's no-config setup, this isn't a webpack tutorial!) - Must include a descriptive
README.mdfile in subfolder - If media files are required, keep them under 1MB and embed them using data URLs generated from: https://tools.nicfv.com/data-url/
- Must be built with webpack using the command
- Packages begin development at version
0.0.0 - Anything under
1.0.0indicates unstable alpha or beta development - Increase the patch counter for minor bug fixes, documentation updates, or other updates that impact functionality to a minimum
- Increase the minor counter for feature additions or minor behavioral changes, that are backwards compatible
- Increase the major counter for major changes that break backwards compatibility
CHANGELOG.mdshould read in reverse chronological order, with the latest version at the top- The latest version in the changelog should match that of the package version
- To test UI examples during development, make sure dependencies are installed and open 2 separate terminals
- Terminal "A" will rebuild the package on update:
cd ./packages/<name>/ npx tsc --watch
- Terminal "B" will rebuild the example on update:
cd ./packages/<name>/example/<example_name>/ npm start # to compile with webpack
- In a browser, navigate to that example's
index.htmlpage, and refresh when changes are made to either the package or example