Skip to content

Latest commit

 

History

History
90 lines (61 loc) · 4.32 KB

CONTRIBUTING.md

File metadata and controls

90 lines (61 loc) · 4.32 KB

Contributing

We can use help in a bunch of areas and any help is appreciated. Our GitHub issues serve as a place for any discussion, whether it's bug reports, questions, project direction etc. As the project grows this policy may change.

Our Discord server is open for help and more adhoc discussion. All activity on the Discord is still moderated and will be strictly enforced under the project's Code of Conduct.

Getting Started

Building this project requires Node.js v19.1.0, which can be installed using nvm (recommended) or Node.js. We use pnpm 8.10.2 as a package manager, which can be installed following pnpm Installation.

Clone the repository and navigate to the design directory:

git clone https://github.com/jundaoapp/design
cd design

Install all packages and dependencies:

pnpm install

Running Storybook:

pnpm storybook

Components

All Jundao Design components should accept their underlying component's props by extending its intrinsic element attributes. They should also combine provided props with their own (see here).

The visual design is based off a mix of the Atlassian Design System and Ant Design and Android UI.

Component style should be made in SCSS and all components should be made accessible using Kobalte (when available, else see below).

Each component should also follow the Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA). A storybook tab is accessible in the component addons panel.

User files

If files specific to your local development environment should be ignored, please add these files to a global git ignore file rather than to a git ignore file within Jundao Design.

You can find more information on this process here.

Checks

  • pnpm format is script that runs Rome under the hood;
  • pnpm check also runs Rome.
  • pnpm check-typescript is script that runs the Typescript compiler;

Tip: use pnpm ca to run all of them.

Commit messages

Internally, the Jundao Design adheres as closely as possible to the conventional commit specification. The following this convention encourages commit best-practices and facilitates commit-powered features like change log generation.

The following commit prefixes are supported:

  • feat:, a new feature
  • fix:, a bugfix
  • docs:, a documentation update
  • test:, a test update
  • chore:, project housekeeping
  • perf:, project performance
  • refactor:, refactor of the code without change in functionality
  • style:, changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • ci:, changes to CI configuration files and scripts

To skip automatic releases include [skip release] in the commit message.

Below are examples of well-formatted commits:

feat(button): handle click event
fix: fix font size on Safari
docs: fix link to website page
test(input): add more cases to handle keyboard events

Feature feat: prefixes should not be scoped for new components.

Creating pull requests

When creating a new pull request, it's preferable to use a conventional commit-formatted title, as this title will be used as the default commit message on the squashed commit after merging.

Versioning

We follow the Semantic Versioning 2.0.0.

New releases are automatically managed by semantic-release.