Thank you for stopping by. svelte-put
welcomes and appreciates your contribution.
Important
Before opening a new issue, first search for existing issues to avoid duplications. When you start working on an issue, make sure you are asked to be assigned to it.
Please include as much details as possible:
- steps to reproduce,
- screenshots.
If you have an idea and don't know where to start yet, consider opening a discussion first. If you have a PR ready as your proposed implementation, you can create an issue and a PR that references it.
This section discusses necessary steps to get svelte-put
running on local development environment.
Dependency | Installation | Description |
---|---|---|
node | volta | |
pnpm | follow guide on website | alternative to npm and yarn |
See package.json for preferred versions of node
and pnpm
.
This is a monorepo managed with pnpm workspace and turborepo with the following high-level structure:
packages/*
: coresvelte-put/*
packagessites/docs
: documentation site live at svelte-put.vnphanquang.cominternals/*
: private helper
See package.json at root directory and in each package for available npm scripts. To run package-specific npm scripts, cd
to package or use the filter=...
flag at root. For example, to start the documentation site, run:
pnpm dev --filter=@sites/docs
# or
cd sites/docs && pnpm dev
Search for @recommended
in the Extension panel for quick installation (look for "Workspace Recommendations").
To extend the @recommended
list, add the extension ID to the extensions
array in .vscode/extensions.json.
Important
Rules are to be broken. There will always be exceptions. The following guidelines are not set in stone, but rather a set of recommendations to help us work together more effectively.
A commit should:
- have a descriptive message that hints at what the commit is about, exceptionally helpful for other contributors and reviewers.
- encapsulate a complete change, i.e a single feature, bug fix, or refactor that can make sense on its own.
- ideally capture a working state of the application / site. If not, it should be marked as
[WIP]
in its commit message. - span a limited scope and has minimal footprint. If a commit does too much or has changes to many files, it is an indicator that the changes may be broken down into smaller commits.
Similarly, each pull request (PR) should work towards one issue or self-contained goal. If your PR contains a single commit, merge rebase
(fast-forward). If there are multiple commits and you want to keep the merge history, prefer merge commit
over squash
, unless there are dirty commits in the branch.
We follow the Conventional Commits guidelines for writing git commit message. Please familiarize yourself with the guidelines and be consistent.
[feat | fix | chore](scope): "[message beginning with a verb: add | change | remove]"
The project uses eslint and prettier for code linting and formatting. Make sure to install necessary plugins or integrations in your code editor.
lefthook is setup to run format and lint checks as a pre-commit
git hook.
To bypass hook (not recommended, for admin only), run git commit
with the --no-verify
flag.