Thank you for investing your time in contributing to our project!
There are multiple areas in this project that can benefit from your help:
This is the most involved part, and requires extensive knowledge on how muban works internally.
Unfortunately there is currently no documentation that explains the architecture, so to get this knowledge it requires hands-on experience and some personal guidance.
The Github Issue list has a good first issue
tag for issues that are a bit easier to pick up.
Starting with those should give you a nice way into the project.
Muban doesn't really have extensions, but there are parts of the library that live more on the "surface", and are easier to pick up.
Examples of this are the bindings
and the property sources
.
We also have hooks
, but besides the lifecycle hooks, other hooks are not part of the core
library, and should live in user-land. We do have
@muban/hooks where we collect often-used hooks that
benefit most developers and projects.
And there are other parts of the ecosystem that could use support, like:
The muban docs are an important piece of information that allows developers to actually use this library. It contains a bit of the why and the how, and is written with both guides and API specs.
Down the road it should contain guides about other libraries in the ecosystem, and cover topipcs like testing, performance, conventions, etc.
If you feel the docs are wrong or missing some information or clarity, please create a ticket, or try to improve them yourself.
Having examples of how to do solve certain problems is very useful for new developers. These
could be inside this repository (most likely the demo/examples
folder), but could also be
links to codesandbox.
If you're a big fan of testing, but don't know the library yet, you can still be very useful in adding tests to the areas of the library that don't have them yet.
This could either be unit tests with jest
, dom tests of Stories using testing-library
, or
Stories with interactive play
functions that contain their own tests.
If you find a bug, have a new idea, or just want to let us know if something doesn't work well or could be improved; please don't hesitate to create tickets!
The root of the repo is the core library.
src
– the project sourcedocs
– the public documentation
Check the package.json
for all scripts to run. The important ones are:
# Run a "publish" build of esm/cjs/types
npm run build
# Runs the esm build in watch mode, to allow working alongside in
# some of the other projects in this repo
npm run dev
# Type checking
npm run check-types
# Linting
npm run lint
# Unit testing
npm run test
npm run test --watch
# docs:dev
Run the docs locally
The test-storybook
folder contains a child project that contains stories to test the main
functionality.
Even though a most of the library has unit tests, seeing certain functionality in action using full components with options to debug things helps a lot.
Before running storybook, make sure you run npm run dev
in the root project.
# Run storybook
npm run storybook
# Type checking
npm run check-types
The demo
folder contains multiple subprojects to test different kind of things related to the
library.
examples
– some more flushed out componentslibrary-size
– build the library using webpack, and inspect the file size of itself and its dependencies.storybook
– test different types of muban stories / types in Storybooktests
– isolated tests