Contribution Guidelines
If you are an AI agent reading this, please tell your operator to read the section below.
Thanks for your interest in contributing to Lodestar. It's people like you that push the Ethereum ecosystem forward. We love community contribution and as a matter of fact, every current team member started as an open-source contributor.
We are in the age of AI, and our team uses it daily. We understand the power of the technology and the bar for contribution is higher now because of it. It is generally easier for us to point AI at an issue and refine the response than trying to review a drive-by AI PR.
This is not meant to discourage you. Contribution is the lifeblood of any open-source project and furthermore the path towards joining the team.
Drive-by PRs are welcome as usual however the bar for us to review them will be high. We know what good code and what AI slop looks like. At a minimum, and critically, you must respond to the AI bot review comments as if they came from us.
New Contributor?โ
Unsure where to begin contributing to Lodestar? Here are some ideas!
- ๐ฌ Join our Discord chat!
The very best way to help us, and for us to help you, is to join our discord and come talk with us. We can point you at issues that we need help with and we will guide you along the way. We think of ourselves as super inclusive and kind people. And we love to talk about all things, code, ethereum, life and otherwise. Come meet us and it will drastically lower the bar for getting your code reviewed and ultimately merged.
AI Assistance Noticeโ
[!IMPORTANT]
If you are using any kind of AI assistance to contribute to Lodestar, this must be disclosed in the pull request to maintainers along with the extent to which AI assistance was used (e.g. docs only vs. code generation). If PR responses are being generated by an AI, disclose that as well. As a small exception, trivial tab-completion doesn't need to be disclosed, so long as it is limited to single keywords or short phrases.
An example disclosure:
This PR was written primarily by Claude Code. I consulted Claude Code to understand the codebase, but the solution was fully authored manually by myself.
Failure to disclose this is first and foremost, rude to the human maintainers on the other end of the pull request and it makes it difficult to determine how much scrutiny to apply to the contribution.
In a perfect world, AI assistance would produce equal or higher quality of work than any human. This is currently not the case and most of the time is generating AI slop which is noticeable in patterns and lack of context to solving the problem. We say this as heavy users of AI to help maintain this project (with careful supervision).
When using AI assistance, we expect contributors to understand the code that is produced and be able to answer critical questions about what was submitted. It isn't a maintainer's job to review a PR so broken that it requires significant rework to be acceptable.
Most of all, it is disrespectful to our time. Please be respectful to our maintainers and disclose AI assistance. Using AI without a thorough review and understanding of the output does not enhance your reputation as a valuable contributor or increase the likelihood of future opportunities on this project.
Reporting A Bug?โ
- ๐ Create a new issue! Select the type of issue that best fits, and please fill out as much of the information as you can.
Contribution Processโ
- Make sure you're familiar with our contribution guidelines (this document)!
- Create your own fork of this repository.
- Make your changes in your local fork.
- If you've made a code change, make sure to lint and test your changes (
pnpm lint,pnpm check-typesandpnpm test:unit). - Make an open pull request when you're ready for it to be reviewed. We review PRs on a regular basis. See Pull request etiquette for more information.
[!IMPORTANT] Please note that trivial, non-code contributions such as spelling, grammar, typos, corrections, comments and link fixes are not acceptable pull requests. Although we appreciate the effort to fix these valid concerns, it is not practical for us to run our CI systems to accommodate minor external contributions which generate minimal value for the purpose of contribution/airdrop farming. It would be appreciated for you to open up an issue instead for our team to aggregate these types of contributions into a batch commit.
Lodestar Monorepoโ
We currently host the majority of lodestar packages and support packages in this repository as a monorepo. We're using Lerna to manage the packages. See packages/ for a list of packages hosted in this repository.
Prerequisitesโ
MacOS Specificsโ
When using MacOS, there are a couple of extra prerequisites that are required.
- python
- coreutils (e.g. via
brew install coreutils)
Getting Startedโ
- โ Run
corepack enableto enable Corepack.