diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..7e2f83d0 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig file: http://EditorConfig.org + +# Top-most EditorConfig file. +root = true + +# Unix-style, newlines, indent style of 4 spaces, with a newline ending every file. +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..6d5a0c26 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,31 @@ +### Pre-Check ### + +- If you are filing for a bug, please do a quick search in current issues first +- For bugs, mention if you are willing or interested in helping fix the issue +- For questions or support, it helps to include context around your project or problem +- Think of a descriptive title (more descriptive than 'feature X is broken' unless it is fully broken) + +### Environment ### + +- Add the result of `rebar3 report` to your message: + +``` +$ rebar3 report "my failing command" +... +``` + +- Verify whether the version of rebar3 you're running is the latest release (see https://github.com/erlang/rebar3/releases) +- If possible, include information about your project and its structure. Open source projects or examples are always easier to debug. + If you can provide an example code base to reproduce the issue on, we will generally be able to provide more help, and faster. + +### Current behaviour ### + +Describe the current behaviour. In case of a failure, crash, or exception, please include the result of running the command with debug information: + +``` +DEBUG=1 rebar3 +``` + +### Expected behaviour ### + +Describe what you expected to happen. diff --git a/.gitignore b/.gitignore index 34b6ef0c..129c935c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ _checkouts .rebar3 rebar3 +rebar3.cmd _build .depsolver_plt *.beam diff --git a/.travis.yml b/.travis.yml index dbb4f26e..32d51ca8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,48 @@ -sudo: false language: erlang -install: 'true' -otp_release: -- 19.0 -- 18.0 -- 17.5 -- R16B03-1 -- R15B03 -before_script: "./bootstrap" -script: "./rebar3 ct" +matrix: + include: + - os: linux + otp_release: 17.5 + - os: linux + otp_release: 18.3 + - os: linux + otp_release: 19.3 + - os: linux + otp_release: 20.0 + - os: linux + otp_release: 21.0 + - os: osx + language: generic +before_script: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi + ## should eventually use a tap that has previous erlang versions here + ## as this only uses the latest erlang available via brew + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install erlang; fi +script: "./bootstrap && ./rebar3 ct" branches: only: - master + - hex_core cache: directories: - "$HOME/.cache/rebar3/hex/default" deploy: - provider: releases - api_key: - secure: MjloYuaQF3cd3Oab57zqwPDLPqt5MDgBIrRLpXOQwNovr2tnkKd4aJK3QJ3pTxvZievjgl+qIYI1IZyjuRV37nkjAfMw14iig959wi0k8XTJoMdylVxE5X7hk4SiWhX/ycnJx3C28PPw1OitGTF76HAJDMgEelNdoNt+hvjvDEo= - file: rebar3 - on: - repo: erlang/rebar3 - tags: true + - provider: releases + api_key: + secure: MjloYuaQF3cd3Oab57zqwPDLPqt5MDgBIrRLpXOQwNovr2tnkKd4aJK3QJ3pTxvZievjgl+qIYI1IZyjuRV37nkjAfMw14iig959wi0k8XTJoMdylVxE5X7hk4SiWhX/ycnJx3C28PPw1OitGTF76HAJDMgEelNdoNt+hvjvDEo= + file: rebar3 + on: + repo: erlang/rebar3 + tags: true + - provider: s3 + access_key_id: AKIAJAPYAQEFYCYSNL7Q + secret_access_key: + secure: "BUv2KQABv0Q4e8DAVNBRTc/lXHWt27yCN46Fdgo1IrcSSIiP+hq2yXzQcXLbPwkEu6pxUZQtL3mvKbt6l7uw3wFrcRfFAi1PGTITAW8MTmxtwcZIBcHSk3XOzDbkK+fYYcaddszmt7hDzzEFPtmYXiNgnaMIVeynhQLgcCcIRRQ=" + skip_cleanup: true + local-dir: _build/prod/bin + bucket: "rebar3-nightly" + acl: public_read + on: + repo: erlang/rebar3 + branch: master + condition: $TRAVIS_OTP_RELEASE = "17.5" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80778130..16de1e57 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -162,7 +162,7 @@ $ ./rebar3 ct ``` Most tests are named according to their module name followed by the `_SUITE` -suffi. Providers are made shorter, such that `rebar_prv_new` is tested in +suffix. Providers are made shorter, such that `rebar_prv_new` is tested in `rebar_new_SUITE`. Most tests in the test suite will rely on calling Rebar3 in its API form, @@ -285,7 +285,7 @@ The reviewer may ask you to later squash the commits together to provide a clean commit history before merging in the feature. It's important to write a proper commit title and description. The commit title -should fir around 50 characters; it is the first line of the commit text. The +should be no more than 50 characters; it is the first line of the commit text. The second line of the commit text must be left blank. The third line and beyond is the commit message. You should write a commit message. If you do, wrap all lines at 72 characters. You should explain what the commit does, what @@ -299,7 +299,7 @@ maintainers. When opening a pull request, explain what the patch is doing and if it makes sense, why the proposed implementation was chosen. Try to use well-defined commits (one feature per commit) so that reading -them and testing them is easier for reviewers and while bissecting the code +them and testing them is easier for reviewers and while bisecting the code base for issues. During the review process, you may be asked to correct or edit a few things diff --git a/README.md b/README.md index f44c7bdb..e312ca64 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ best experience you can get. A [getting started guide is maintained on the official documentation website](http://www.rebar3.org/docs/getting-started), but installing rebar3 can be done by any of the ways described below -Nightly compiled version: +Latest stable compiled version: ```bash $ wget https://s3.amazonaws.com/rebar3/rebar3 && chmod +x rebar3 ``` @@ -69,7 +69,7 @@ $ cd rebar3 $ ./bootstrap ``` -Stable versions can be obtained from the [releases page](https://github.com/erlang/rebar3/releases). +Stable versions can also be obtained from the [releases page](https://github.com/erlang/rebar3/releases). The rebar3 escript can also extract itself with a run script under the user's home directory: @@ -77,11 +77,12 @@ The rebar3 escript can also extract itself with a run script under the user's ho $ ./rebar3 local install ===> Extracting rebar3 libs to ~/.cache/rebar3/lib... ===> Writing rebar3 run script ~/.cache/rebar3/bin/rebar3... -===> Add to $PATH for use: export PATH=$PATH:~/.cache/rebar3/bin +===> Add to $PATH for use: export PATH=~/.cache/rebar3/bin:$PATH ``` To keep it up to date after you've installed rebar3 this way you can use `rebar3 local upgrade` which -fetches the latest nightly and extracts to the same place as above. +fetches the latest stable release and extracts to the same place as above. A [nightly version can +also be obtained](https://s3.amazonaws.com/rebar3-nightly/rebar3) if desired. Rebar3 may also be available on various OS-specific package managers such as FreeBSD Ports. Those are maintained by the community and Rebar3 maintainers @@ -89,7 +90,7 @@ themselves are generally not involved in that process. If you do not have a full Erlang install, we using [erln8](http://erln8.github.io/erln8/) or [kerl](https://github.com/yrashk/kerl). For binary packages use those provided -by [Erlang Solutions](https://www.erlang-solutions.com/downloads/download-erlang-otp), +by [Erlang Solutions](https://www.erlang-solutions.com/resources/download.html), but be sure to choose the "Standard" download option or you'll have issues building projects. @@ -127,7 +128,7 @@ others via the plugin ecosystem: | Tarballs | Releases can be packaged into tarballs ready to be deployed. | | Templates | Configurable templates ship out of the box (try `rebar3 new` for a list or `rebar3 new help