Skip to content

Latest commit

 

History

History
139 lines (89 loc) · 5.66 KB

CONTRIBUTING.md

File metadata and controls

139 lines (89 loc) · 5.66 KB

Contributing

We are very welcome for new developers.

We will try to give you good feedback in pull requests with explanations and guidance to learn something new.

Also, feel free to ask any questions about career and development. If you are helping us, we will try to mentor you.

Language

  • In the project, we are using English.
  • Most contributors are not native speaker. Don’t be afraid of your language if you are not a native English speaker too.
  • Feel free to use automatic translators. Use DeepL to write issues and the browser’s translation to read docs.

Where to Ask Questions

  • Don’t know anything and need assistance?
  • Have some unknown issue running the project server for development?
  • Don’t know how to contribute?

You can ask any question to the maintainer in Telegram: @sitnik. You can ask in English, Russian, or Spanish.

Our mentoring is a basic payback for your time and contribution to the project. Even a simple question can improve the guide for other beginners.

Install Environment

  1. Install environment:

    • To fix a small bug you can run app directly in your browser via StackBlitz.

    • For lond-term contribution we recommend installing asdf and then run:

      asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
      asdf plugin-add pnpm https://github.com/jonathanmorley/asdf-pnpm.git
      asdf install
    • You can also manually install Node.js and pnpm versions according to .tool-versions file.

  2. Then install all npm dependencies by pnpm:

    pnpm install
  3. Run tests to be sure that everything is OK (open issue if tests don’t work in your environment):

    pnpm test

    If you have strange error, check that all folders in the path to the project use only Latin symbols.

Run Web Client

To run web clients, just call in the root of the project:

pnpm start

It will run a web server and proxy (the website, by default, can make HTTP requests only to its own servers; we need a proxy to send requests to RSS feeds on other servers).

To run the visual testing tool (Storybook), run it from the web/ folder:

cd web/
pnpm visual

It will show all UI components and all possible states of pages. It is the best tool to test browser compatibility or change CSS.

Text Editor Settings

To work with the project, we recommend adding to your IDE or text editor:

  • EditorConfig plugin to sync text editor settings. VS Code automatically takes these settings from the .vscode/ folder.
  • Svelte syntax support for Web Client. Like svelte.svelte-vscode for VS Code.

You may also install Prettier and ESLint plugins or just use precommit hook.

If you write docs, we recommend installing LanguageTool for grammar check. For VS Code, davidlday.languagetool-linter.

Learn App Architecture

Before any significant changes, read all README.md to understand app architecture.

Check Our Checklist

Read our checklist for pull requests. It contains things you should think about and can speed up code review a lot.

If you see that people made the same mistake several times, suggest adding a new item to the checklist to prevent repeating these mistakes.

How to Find Next Task

If you are not just fixing a bug but want to join the core team, here is the path:

  1. Your first task is to test pnpm test in your environment and report issue.
  2. Go to our Tasks plan and take next task from Onboarding column. If Onboarding is empty, you can look in Ready to Take.
    1. Choose any task that fits the best to you.
    2. Write there I want to take it.
    3. The task will be reserved for you for a week.
    4. Don’t worry if a week is not enough. Just make a draft PR.
  3. After the onboarding, you can take tasks from the Ready to Take column. See the discussions in issues to pick next one.

Feel free to ask maintainer about your next task.

We will mentor you in return for your participation, so don’t be afraid to ask questions.

Git Commits and Branches

We care about good commit messages. Try to think about them and describe more:

- git commit -m 'Fix issue'
+ git commit -m 'Fix <Loader> style in Safari'

In commit’s messages example why you did changes, not what you changed:

- git commit -m 'Add .editorconfig'
+ git commit -m 'Add .editorconfig to sync text editor settings'

We recommend signing your commits.

There is no any specific rules about git branch names.