Amazing to hear that you're interested in contributing to Lucid Evolution!
This document outlines how you can contribute to make Lucid Evolution better than it was before. Lucid Evolution is a monorepo, make sure you're working in the correct package when making changes. Maintain backwards compatibility unless explicitly discussed and agreed upon for a major version change and when possible be mindful of performance implications, especially for core functionality
- Reporting bugs
- Suggesting enhancements
- Improving documentation
- Submitting code changes
- Discussing the current state of the code
We use GitHub to host code, track issues and feature requests, and accept pull requests
Pull requests are the best way to propose changes. Write clear, concise commit messages. Following the conventional commits specification is a valuable best practice, we actively welcome your pull requests:
- Fork the repo and create your branch. Naming your branches with a prefix indicating the type of change (e.g., feature/, bugfix/, docs/) followed by a brief description greatly helps the maintainers
- If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Write and update tests for your changes. Run
pnpm test
to ensure all tests pass - Make sure your code lints
- Ensure your changes pass all CI checks before requesting a review
- Issue your suggestion
- Follow the existing coding style in the project
- Adhere to the ESLint configuration provided in the repository
- Run
pnpm run lint
/pnpm list
to ensure your code follows our style guidelines - Run
pnpm format
(with Prettier) /pnpm format-check
to format your code
Before running tests locally, you need to ensure that specific environment variables are correctly set. These variables are needed for interacting with the necessary APIs (Kupo / Ogmios) during testing. Follow the steps below to configure your environment:
- Create the .env files:
Under packages/lucid, create an .env file with the following variables:
VITE_API_URL="https://cardano-preprod.blockfrost.io/api/v0/"
VITE_BLOCKFROST_KEY=""
VITE_SEED=""
VITE_MAESTRO_KEY=""
VITE_BLOCKFROST_KEY_MAINNET=""
VITE_KUPO_KEY="your_kupo_key_here"
VITE_OGMIOS_KEY="your_ogmios_key_here"
Under packages/provider, create an .env file with the following variables:
VITE_KUPO_KEY="your_kupo_key_here"
VITE_OGMIOS_KEY="your_ogmios_key_here"
You will not be using API keys directly but Authenticated HTTP Endpoint URL
(https://dmtr_ogmios......
)
If you encounter any issues while running the tests, double-check that all the environment variables are correctly set and that the keys are valid. Also, ensure that your local setup mirrors the environment in which the tests are expected to run
We use GitHub issues to track bugs. Report a bug by opening a new issue
A good bug report should include:
- A quick summary and/or background
- Steps to reproduce
- Be specific
- Provide sample code if possible
- What you expected would happen
- What actually happens
- Notes (including why you think this might be happening, or what you've tried that didn't work)
We welcome suggestions for enhancements. Please create an issue to discuss your idea before making significant changes
Improving documentation is a great way to contribute. This includes both inline code comments and our external documentation. Update the documentation in the docs
folder for any user-facing changes. Using changesets to document your changes help both you and the mainters to have a better overview for the idea you are contributing with
(Run pnpm changeset
to create a new changeset this is required for CI)
By contributing to Lucid Evolution, you agree that your contributions will be licensed under its MIT License
Don't hesitate to ask. You can open an issue or reach out to the maintainers directly. Anastasia Labs team and community actively discuss our opinions in our discord
Thank you for contributing to Lucid Evolution!