Contributing & Versioning Guide
🤝 Contributing & Versioning Guide
Section titled “🤝 Contributing & Versioning Guide”Thank you for your interest in the Kryptofolio project!
Kryptofolio is open-source software licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
⚠️ Current Project Status
Section titled “⚠️ Current Project Status”Kryptofolio is currently in active early-stage development as a personal project and learning endeavor.
At this stage:
- Direct external Pull Requests are not being accepted into the primary branch.
- You are wholeheartedly encouraged to fork the repository, inspect the architecture, experiment with new features, and use it for your personal needs.
💬 How to Contribute Today
Section titled “💬 How to Contribute Today”Even though direct PRs are temporarily on hold, community engagement and architectural feedback are warmly welcomed:
1. Reporting Bugs & Inaccuracies
Section titled “1. Reporting Bugs & Inaccuracies”If you find a calculation flaw, an exchange CSV parsing edge case, or a UI bug:
- Check the existing GitHub Issues.
- Open a new issue including:
- Clear title and detailed reproduction steps.
- Anonymized sample CSV lines illustrating the parsing issue.
- Expected vs. actual numerical behavior.
- Your local environment details (OS, Node version, browser).
2. Suggesting Features & Exchange Profiles
Section titled “2. Suggesting Features & Exchange Profiles”If you would like support for a new exchange or tax jurisdiction:
- Check open issues to see if a similar proposal exists.
- Open an issue detailing:
- The exchange name and sample CSV header formats.
- Any quirks in how the exchange exports fee amounts or trade legs.
🔮 Future Code Contribution Guidelines
Section titled “🔮 Future Code Contribution Guidelines”When the repository opens to community PRs, the following standards will be enforced:
1. Contributor License Agreement (CLA)
Section titled “1. Contributor License Agreement (CLA)”All contributors will be asked to agree to the Contributor License Agreement (CLA.md) to maintain the legal integrity of the codebase.
2. Strict Architectural Integrity
Section titled “2. Strict Architectural Integrity”- Domain logic must remain 100% pure: zero framework or database imports in
packages/core-domain. - Financial calculations must strictly preserve precision using
PreciseAmount. - All code must pass
pnpm testandpnpm typecheck(vue-tsc --noEmit) with zeroanybypasses.
3. Changesets & Conventional Commits
Section titled “3. Changesets & Conventional Commits”- Use Conventional Commits (e.g.
feat(fiscal): add bitvavo staking parser). - Run
pnpm changesetbefore pushing changes to declare semantic version impacts under the “Frontend is King” philosophy.
📚 Documentation Versioning
Section titled “📚 Documentation Versioning”The documentation portal lives in its own repository and follows the application release train:
- Tags mirror the app. Every application release
vX.Y.Zproduces the same tagvX.Y.Zinkryptofolio-documents, created automatically by the app’s release workflow. The tag marks the exact documentation that matches that release. mainis “latest”. The published site always builds frommain, which documents the most recent release plus anything merged ahead of the next one.- Pin a version. To read the docs for an older release, check out its tag:
git checkout v1.16.14 && npm ci && npm run build. package.jsonversion. It records the application version the docs were last aligned with. The tag is the source of truth if the two ever differ.- New features are badged. Pages that document a feature not yet in a stable release carry a
Newsidebar badge (sidebar.badgein the frontmatter). Remove the badge once the feature has shipped in a tagged release.