Contributing to Lumiere

Thanks for expressing your interest in contributing to Lumiere! We encourage you to take a look at this document before making a contribution to ensure that your (and our) experience can be beneficial. While these are mostly guidelines and not hard-coded rules, we hope that you will be able to abide by these guidelines.

If you are new and wish to get started from the beginning, read on below. Otherwise, you may wish to consider jumping to the Developing with the source code section and reading from that section onwards.

Quick start

To begin, please ensure that you have a version of Node (at the very least npm) installed. If you need assistance with that, consult the Node.js documentation to install them.

  1. To verify that Node.js and npm are installed, run their commands with the version flag (-v) like below. If installed, the version of your Node.js and npm installations should be outputted.
node -v
npm -v
  1. Clone Lumiere's project repository from GitHub using Git's clone command. This can be done anywhere, as long as it is easily accessible by you.
git clone https://github.com/project-lumiere/lumiere.codes.git
  1. Navigate to the location where you cloned Lumiere's repository.
cd path/to/Lumiere/repository

Replace path/to/Lumiere/repository with the actual location of the cloned Lumiere folder.

  1. Install all of Lumiere's dependencies using npm.
npm install
  1. Initialize and generate a Prisma project using npx.
npx prisma init
npx prisma generate
  1. Link and pull the required environment variables from Vercel to your project. If you have not authenticated yourself previously, do so before running the link command.
npx vercel login # If you have not authenticated yourself
npx vercel link
# Follow instructions from the Vercel CLI; link to lumiere/lumiere.codes
npx vercel env pull

Important! If you have access to the variables, an .env file should be created at the root of your local clone of Lumiere. Please do not expose this file (and the contents of it) anywhere, including GitHub. Git is configured to ignore the .env file (see .gitignore), but please exercise caution anyway when before committing or pushing.

This requires you to be a member of the Lumiere team on Vercel. If you need access to it, please contact Anthony.

  1. Run Lumiere's development server. This allows you to access a local version of Lumiere at localhost:3000 (by default).
npm run dev
  1. You may now get started making changes. Use the local version (running in localhost) to preview any changes you've made. Note that any changes here will not be reflected until you push to the Lumiere project repository; from there, Vercel will automatically deploy your changes to the live site.

Need help? Feel free to reach out to Anthony or Arash.

Additionally, the project includes several recommended extensions for you to install if you are opening the repository in Visual Studio Code. You may choose to consider whether to install these extensions or forgo them, but we encourage you to do so to ensure standardization and consistency.

Developing with the source code

Please create a branch (of appropriate naming) if you intend to contribute significantly (for example, adding a feature or resolving a bug). Otherwise, contributing to the main branch for minor contributions (for example, spelling errors) are alright as well.

Creating issues and pull requests

If you notice a bug that should be fixed, would like to ask a question about the source code, or have other queries of relevance to the project (i.e., Lumiere), you may create an issue. If you have played around with the code and would like to contribute directly to it, please feel free to create a pull request as well.

Please try to take note of the following:

  • Please try to be as detailed as possible — if you noticed a bug, please try to take screenshots if the bugs are visual. Otherwise, please try to be as detailed in explaining your concern as well.
  • Please try to format your Issue properly — by using Markdown features like headings, text emphases, and images, you'll be able to help us understand your issue or pull request better.

We don't intend in creating an issue or pull request template just yet since different contexts may require a different format. However, please try your best to make sure that your Issue is still somewhat formatted and structured.

Final notes

We hope that you'll have a fairly smooth experience getting started with the code. If you have any troubles with the code, please feel free to create an issue or contact any developer of Lumiere! We thank you for your interest in contributing to Lumiere.