Skip to content

Latest commit

 

History

History
101 lines (66 loc) · 4.29 KB

CONTRIBUTING.md

File metadata and controls

101 lines (66 loc) · 4.29 KB

Contributing to Lucid Evolution

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

Ways to Contribute

  • Reporting bugs
  • Suggesting enhancements
  • Improving documentation
  • Submitting code changes
  • Discussing the current state of the code

Development Process

We use GitHub to host code, track issues and feature requests, and accept pull requests

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:

  1. 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
  2. If you've added code that should be tested, add tests
  3. If you've changed APIs, update the documentation
  4. Write and update tests for your changes. Run pnpm test to ensure all tests pass
  5. Make sure your code lints
  6. Ensure your changes pass all CI checks before requesting a review
  7. Issue your suggestion

Coding Style

  • 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

Local Testing

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

Reporting Bugs

We use GitHub issues to track bugs. Report a bug by opening a new issue

Bug Report Guidelines

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)

Suggesting Enhancements

We welcome suggestions for enhancements. Please create an issue to discuss your idea before making significant changes

Documentation

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)

License

By contributing to Lucid Evolution, you agree that your contributions will be licensed under its MIT License

Questions?

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!