Set up SSH access to Github if you haven't done so already.
- Node 8.x
- NPM 5.x
- Yarn >= 0.27.5
git clone [email protected]:salesforce/observable-membrane.git
We use yarn because it is significantly faster than npm for our use case. See this command cheatsheet.
yarn install
When using yarn build
, it will build the entire project into the dist/
folder where you can find the different distributions:
yarn build
As a result, this is the output:
dist/
├── commonjs
│ └── observable-membrane.js
├── modules
│ └── observable-membrane.js
└── umd
├── observable-membrane.js
└── observable-membrane.min.js
By default, when using this package in node, the commonjs/
or modules/
distribution will be used. Additionally, you can use the umd/
version directly in browsers.
When using yarn test
, it will execute the unit tests using jest
:
yarn test
When using yarn lint
, it will lint the src/
folder using tslint
:
yarn lint
The above command may display lint issues that are unrelated to your changes. The recommended way to avoid lint issues is to [configure your editor][eslint-integrations] to warn you in real time as you edit the file.
Fixing all existing lint issues is a tedious task so please pitch in by fixing the ones related to the files you make changes to!
Configuring your editor to use our lint and code style rules will help make the code review process delightful!
This project relies on type annotations heavily.
- Make sure your editor supports typescript.
Configure your editor to use our eslint configurations.
Configure your editor to use our editor configurations.
ext install EditorConfig
The process of submitting a pull request is fairly straightforward and generally follows the same pattern each time:
- Create a feature branch
- Make your changes
- Rebase
- Check your submission
- Create a pull request
- Update the pull request
- Commit Message Guidelines
git checkout master
git pull origin master
git checkout -b <name-of-the-feature>
Modify the files, build, test, lint and eventually commit your code using the following command:
git add <path/to/file/to/commit>
git commit
git push origin <name-of-the-feature>
The above commands will commit the files into your feature branch. You can keep pushing new changes into the same branch until you are ready to create a pull request.
Sometimes your feature branch will get stale with respect to the master branch, and it will require a rebase. The following steps can help:
git checkout master
git pull origin master
git checkout <name-of-the-feature>
git rebase master <name-of-the-feature>
note: If no conflicts arise, these commands will ensure that your changes are applied on top of the master branch. Any conflicts will have to be manually resolved.
If you've never created a pull request before, follow these instructions. Pull request title must be formatted according to Commit Message Guidelines. Pull request samples can be found here
git fetch origin
git rebase origin/${base_branch}
# If there were no merge conflicts in the rebase
git push origin ${feature_branch}
# If there was a merge conflict that was resolved
git push origin ${feature_branch} --force
note: If more changes are needed as part of the pull request, just keep committing and pushing your feature branch as described above and the pull request will automatically update.