Skip to content

Commit

Permalink
Merge pull request mrdoob#3 from mrdoob/dev
Browse files Browse the repository at this point in the history
update
  • Loading branch information
SBRK authored Jun 10, 2020
2 parents 4c7b166 + b720538 commit b1aeb88
Show file tree
Hide file tree
Showing 1,553 changed files with 27,236 additions and 23,322 deletions.
94 changes: 83 additions & 11 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# Help
#### The issues section is for bug reports and feature requests only. If you need help, please use the [forum](http://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
---
The issues section is for bug reports and feature requests only. If you need help, please use the [forum](http://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).

# Bugs
#### Before reporting a bug

Expand All @@ -17,13 +17,85 @@
4. Provide a small test-case (http://jsfiddle.net). [Here is a fiddle](https://jsfiddle.net/3foLr7sn/) you can edit that runs the current version. [And here is a fiddle](https://jsfiddle.net/qgu17w5o/) that uses the dev branch. If a test-case is not possible, provide a link to a live version of your application.
5. If helpful, include a screenshot. Annotate the screenshot for clarity.

---
# Contribution
#### How to contribute to three.js

1. Make sure you have a GitHub account.
2. Fork the repository on GitHub.
3. Check the [Contribution Guidelines](https://github.com/mrdoob/three.js/wiki/How-to-contribute-to-three.js).
4. Make changes to your clone of the repository.
5. If your changes leads to a change in examples, make a new screenshot with `npm run make-screenshot <example_name>`.
6. Submit a pull request. Don't include build files in the PR.
#### Introduction

It is assumed that you know a little about node.js and git. If not, [here's some help to get started
with git](https://help.github.com/en/github/using-git) and [here’s some help to get started with node.js.](https://nodejs.org/en/docs/guides/getting-started-guide/)

* Install [Node.js](https://nodejs.org/)
* Install [Git](https://git-scm.com/)
* [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) three.js
* Open your OS’s terminal
* Change into the directory you’d like
* Clone your forked repo

git clone https://github.com/[yourgithubname]/three.js.git
* Go into the three.js directory.

cd ./three.js
* Install the dependencies

npm install

#### Next Steps

As per the npm standard, ‘start’ is the place to begin the package.

npm start

This script will start a local server similar to three.js, but instead will be hosted on your local
machine. Browse to http://localhost:8080/ to check it out. It also automatically creates the
‘build/three.js’ and ‘build/three.module.js’ scripts anytime there is a change within your three.js
directory.

The next most important script runs all the appropriate testing.

npm test

The linting is there to keep a consistent code-style across the all of the code and the testing is
there to help catch bugs and check that the code behaves as expected. It is important that
neither of these steps comes up with any errors due to your changes.
* If you’d like the linter to fix any errors that it can change, make the following addition to the “test-lint” script.

{
...
"test-lint": "eslint src --ext js --ext ts --fix && tsc -p utils/build/tsconfig.lint.json"
...
}

If you’d like to make a minified version of the build files i.e. ‘build/three.min.js’ run:

npm run-script build-closure

#### Making changes

When you’ve decided to make changes, start with the following:
* Update your local repo

git pull https://github.com/mrdoob/three.js.git
git push
* Make a new branch from the dev branch

git checkout dev
git branch [mychangesbranch]
git checkout [mychangesbranch]
* Add your changes to your commit.
* Push the changes to your forked repo.
* Open a Pull Request (PR)

Important notes:
* Don't include any build files to your commit.
* Not all new features will need a new example. Simpler features could be incorporated into an existing example. Bigger features may be asked to add an example demonstrating the feature.
* Making changes may require changes to the documentation. If so, please make a new PR for the appropriate doc changes. To update the Chinese docs, simply copy the English to begin with.
* it's good to also add an example and screenshot for it, for showing how it's used and for end-to-end testing.
* If you modify existing code, run relevant examples to check they didn't break and there wasn't performance regress.
* If you add some assets for the examples (models, textures, sounds, etc), make sure they have a proper license allowing for their use here, less restrictive the better. It is unlikely for large assets to be accepted.
* If some issue is relevant to patch / feature, please mention it with hash (e.g. #2774) in a commit message to get cross-reference in GitHub.
* If you modify files in examples/js directory, then don't perform any changes in the examples/jsm, JavaScript modules are auto-generated via running ‘node utils/modularize.js’.
* If end-to-end test failed in Travis and you are sure that all is correct, make a new screenshots with npm run make-screenshot <example_1_name> ... <example_N_name> .
* Watch out for Closure compiler warnings when building the libs, there should not be any.
* Once done with a patch / feature do not add more commits to a feature branch
* Create separate branches per patch or feature.

This project is currently contributed to mostly via everyone's spare time. Please keep that in mind as it may take some time for the appropriate feedback to get to you. If you are unsure about adding a new feature, it might be better to ask first to see whether other people think it's a good idea.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Please also include a live example if possible. You can start from these templat
##### Three.js version

- [ ] Dev
- [ ] r115
- [ ] r117
- [ ] ...

##### Browser
Expand Down
48 changes: 10 additions & 38 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,7 @@ jobs:
- name: Install node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Restore cache
uses: actions/cache@v1
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
node-version: 10
- name: Install packages
run: npm ci

Expand All @@ -47,17 +39,11 @@ jobs:
- name: Install node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Restore cache
uses: actions/cache@v1
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
node-version: 10
- name: Install packages
run: npm ci && npm run build-test
run: npm ci && npm ci --prefix test
- name: Build
run: npm run build

- name: === Unit testing ===
run: npm run test-unit
Expand All @@ -77,17 +63,11 @@ jobs:
- name: Install node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Restore cache
uses: actions/cache@v1
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
node-version: 10
- name: Install packages
run: npm ci && sudo apt-get install xvfb && npm run build
run: npm ci && npm ci --prefix test && sudo apt-get install xvfb
- name: Build
run: npm run build

- name: === E2E testing ===
run: xvfb-run --auto-servernum npm run test-e2e
Expand All @@ -101,15 +81,7 @@ jobs:
- name: Install node
uses: actions/setup-node@v1
with:
node-version: '10.x'
- name: Restore cache
uses: actions/cache@v1
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
node-version: 10
- name: Install packages
run: npm ci

Expand Down
17 changes: 15 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
.DS_Store
*.swp
.project
node_modules
.idea/
.vscode/
npm-debug.log
.jshintrc
.vs/
test/unit/three.*.unit.js

# The command'npm install --prefix test' adds files in the test folder (https://docs.npmjs.com/configuring-npm/folders.html#executables).
# There are 2 kinds of files, those without extension and those with cmd extension.
# To ignore files without a extension, following procedure is nessecary:
# - ignore all files in the test folder
# - unignore all files in subdirectories of the test folder
# - unignore all files with an extension in the test folder
test/*
!test/*/
!test/*.*
test/*.cmd
test/unit/build


**/node_modules
7 changes: 0 additions & 7 deletions .npmignore

This file was deleted.

76 changes: 76 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,15 @@ function animate() {
}
```

If everything went well you should see [this](https://jsfiddle.net/8kubjpL5/).
If everything went well, you should see [this](https://jsfiddle.net/8kubjpL5/).

### Cloning this repository ###

Cloning the repo with all its history results in a ~2GB download. If you don't need the whole history you can use the `depth` parameter to significantly reduce download size.

```sh
git clone --depth=1 https://github.com/mrdoob/three.js.git
```

### Change log ###

Expand Down
Loading

0 comments on commit b1aeb88

Please sign in to comment.