[erlang-questions] [ANN] Rebar3 first stable release 3.0.0
Tristan Sloughter
t@REDACTED
Wed Mar 9 19:21:44 CET 2016
We are happy to announce the first stable release of rebar3 with
version 3.0.0.
A bit over a year ago, we had set out to make rebar great again. We
believe we have done it, and now have a solid core on which to build
more tools and grow a better community.
Now, this doesn't mean there are no things to improve or that the code
base is bug-free. It does however mean that we are now committed to
backwards compatibility as we move forward with rebar3's next
improvements.
If you have never tried rebar3, the big item names since rebar 2.x are:
* repeatable builds with a big commitment to OTP principles
* commands that know their own dependencies
* support for profiles, allowing contextual configuration of
applications (for example, test dependencies can be kept apart from
regular deps)
* documentation is seen as a feature
* support for packages through hex.pm
* new plugin interface and mechanisms, with command namespaces
* mechanisms to override dependencies' configurations
* switching releases to relx
* and a lot of improvements to existing commands such as templates,
dialyzer, shell, and so on. You will find documentation and how to
get started with rebar3 on the website:
http://www.rebar3.org/docs/getting-started
For package publishing checkout the documentation on hex.pm:
https://hex.pm/docs/rebar3_publish
If you feel like getting started, we have had numerous posts about the
new features and user experiences:
* http://ferd.ca/dev/rebar3-shell.html
* http://blog.erlware.org/rebar3-features-part-1-local-install-and-upgrade/
* http://blog.erlware.org/rebar3-features-part-2-dependency-tree/
* http://blog.erlware.org/rebar3-features-part-3-overrides/
* http://blog.erlware.org/rebar3-features-part-4-profiles/
* http://blog.erlware.org/rebar3-features-part-5-dependency-branch-handling/
* http://blog.erlware.org/rebar3-features-part-6-_checkouts-2/
* http://blog.erlware.org/rebar3-hex-plugin/ Heinz Gies wrote about his
experience migrating to rebar3 form rebar2 at
http://blog.licenser.net/blog/2015/07/10/migrating-to-rebar3/
The How I Start Erlang guide was updated to use rebar3:
https://howistart.org/posts/erlang/1
And a guide about managing package has been written by Bruce Yinhe:
https://medium.com/@brucify/using-rebar3-to-manage-erlang-packages-282f78adff1e#.ay10goc0z
Lastly, for those who have already adopted the tool, here is what has
changed since beta-4:
* rebar3/902: Less color[1]
* rebar3/921: Fix error reports on missing include paths[2]
* rebar3/922: warn on incorrectly specified test options in
rebar.config[3]
* rebar3/923: support temporary cdn change with HEX_CDN os var[4]
* rebar3/924: only add package list of versions to registry if it has
the right build tool support[5]
* rebar3/925: upgrade eunit_formatters for OTP 18 support[6]
* rebar3/927: upgrade eunit_formatters to 0.3.1 for OTP18 bug fix[7]
* rebar3/928: Ct output improvements[8]
* rebar3/930: Handle force flags in leading position[9]
* rebar3/934: don't add a provider if the same namespace and name
already exists[10]
* rebar3/935: Default to no eunit formatter if verbose specified[11]
* rebar3/941: preserve attributes when copying files in
rebar_utils:cp_r for unix[12]
* rebar3/942: special handling of relx configs in profiles[13]
* rebar3/943: remove backward_compat entry from travis s3[14]
* rebar3/945: auto-update the registry if a pkg isn't found, fail if it
still isn't found[15]
* rebar3/948: Fix a small bug in the MIB compiler when building
dependencies[16]
* rebar3/949: fetch eunit_formatters config not from the command args
but from the config[17]
* rebar3/963: Tup merge tests[18]
* rebar3/965: fix tupple merging for realsies.[19]
* rebar3/966: allow ct suites to be specified at root of project (or
root of app)[20]
* rebar3/967: symlink mib hrl output in apps `include' directories[21]
* rebar3/970: upgrade certifi to latest release[22]
* rebar3/982: Allow bootstrap to pick up existing Hex cache and
deps[23]
* rebar3/983: Add support for total code coverage[24]
* rebar3/986: A bad template index does not crash; shows warning[25]
* rebar3/987: Plugin templates[26]
* rebar3/988: Fix wrong relative path resolution[27]
* rebar3/989: convert ~> versions to highest matching[28]
* rebar3/991: Upgrade relx to v3.11.0[29]
* rebar3/992: Bump cth_readable to 1.1.1[30]
* rebar3/993: contributors -> maintaiers in template app data[31]
* rebar3/994: warn if the directories eunit' orct' show up in
`src_dirs'[32]
* rebar3/995: Support old-style shell for rebar3 shell[33]
* rebar3/996: Updates cth_readable so it supports dumb terminals[34]
* rebar3/999: Fix windows stuff[35]
* rebar3/1005: only need to compare ref and not ref+url in git
resource[36]
* rebar3/1006: only apply default and prod profile to dependencies[37]
* rebar3/1007: install project app plugins after discovering them not
before[38]
* rebar3/1008: Unquote templates, add a warning instead.[39]
* rebar3/1009: merge overlay entries into a single {overlay, list()}
for relx[40]
* rebar3/1010: upgrade relx to 3.12.0[41]
* rebar3/1012: Remove triple brackets in bbmustache templates[42]
* rebar3/1013: upgrade bbmustache and relx[43]
* rebar3/1016: when using the --file' argument toeunit' paths were
being converted[44]
* rebar3/1017: check at runtime instead of compile time for
file:list_dir_all/1[45]
* rebar3/1018: change detection of valid modules for eunit[46]
* rebar3/1021: convert 'app' to 'application' in eunit_opts to match
cmdline args[47]
* rebar3/1022: Display error message when bad config is loaded[48]
* rebar3/1023: Rework README and CONTRIBUTING documents[49]
* rebar3/1024: deduplicate default test set generated by rebar3
eunit[50]
* rebar3/1025: add unstable install/upgrade instructions to readme[51]
* rebar3/1029: local install and local upgrade[52]
* rebar3/1031: add profile option to clean task[53]
* rebar3/1033: Fix bash completion regression (cf66dfd6ba) and make
lopt strings more resilient[54]
* rebar3/1035: Add module directory to include path[55]
* rebar3/1041: Add test case for relx overlay vars[56]
* rebar3/1043: don't strip the project apps when running ct with just a
root suite specified[57]
* rebar3/1045: don't lose overrides in an app when installing plugins
it uses[58]
* rebar3/1046: add user-agent to http request headers[59]
* rebar3/1047: Ignore unknown warning when dialyzer < 2.8[60]
* rebar3/1048: Add secondary hook for rebar_prv_compile[61]
* rebar3/1050: check top level config for minimum or blacklisted otps
at start[62]
* rebar3/1053: upgrade relx to 3.15.0[63]
* rebar3/1061: Make lock files future-proof[64]
* rebar3/1062: update relx to 3.16.0 to include color intesity
update[65]
* rebar3/1065: give top level plugin providers precedence over default
providers[66]
* rebar3/1066: Bump cth_readable[67]
* rebar3/1067: set default color intensity to high[68]
* rebar3/1068: upgrade relx to 3.17.0[69]
* rebar3/1070: Hex improvements[70]
* rebar3/1071: break up do/1 function in install_deps to make upgrade
less confusing[71]
* rebar3/1073: Support --setcookie option[72]
* rebar3/1075: add project_providers after initing default providers
but allow overrides[73]
* rebar3/1076: Add me to THANKS for suffering through Tristan's
code[74]
* rebar3/1082: Fixed rebar.config shell_apps setting[75]
* rebar3/1090: fix auto-registry update to work even when not a locked
pkg-vsn[76]
* rebar3/1091: Run all hooks[77]
* rebar3/1092: Add short-options to the eunit provider.[78]
* rebar3/1098: error on a cover spec in ct_opts[79]
* rebar3/1099: add support for common tests include flag[80]
* rebar3/1100: Fix quoting problem in zsh completion[81]
* rebar3/1101: Take CT options errors and turn them to warnings[82]
* rebar3/1102: include project_plugins in plugins that can be
upgraded[83]
* rebar3/1103: bump certifi to 0.4.0[84]
* rebar3/1104: move dialyze setting of debug_info to overrides in
profile[85]
* rebar3/1106: define the 'EUNIT' macro in the test profile[86]
* rebar3/1107: upgrade cth_readable[87]
* rebar3/1108: make omar happy[88]
* rebar3/1110: pass loglevel used in rebar3 to relx[89]
Links:
1. https://github.com/rebar/rebar3/pull/902
2. https://github.com/rebar/rebar3/pull/921
3. https://github.com/rebar/rebar3/pull/922
4. https://github.com/rebar/rebar3/pull/923
5. https://github.com/rebar/rebar3/pull/924
6. https://github.com/rebar/rebar3/pull/925
7. https://github.com/rebar/rebar3/pull/927
8. https://github.com/rebar/rebar3/pull/928
9. https://github.com/rebar/rebar3/pull/930
10. https://github.com/rebar/rebar3/pull/934
11. https://github.com/rebar/rebar3/pull/935
12. https://github.com/rebar/rebar3/pull/941
13. https://github.com/rebar/rebar3/pull/942
14. https://github.com/rebar/rebar3/pull/943
15. https://github.com/rebar/rebar3/pull/945
16. https://github.com/rebar/rebar3/pull/948
17. https://github.com/rebar/rebar3/pull/949
18. https://github.com/rebar/rebar3/pull/963
19. https://github.com/rebar/rebar3/pull/965
20. https://github.com/rebar/rebar3/pull/966
21. https://github.com/rebar/rebar3/pull/967
22. https://github.com/rebar/rebar3/pull/970
23. https://github.com/rebar/rebar3/pull/982
24. https://github.com/rebar/rebar3/pull/983
25. https://github.com/rebar/rebar3/pull/986
26. https://github.com/rebar/rebar3/pull/987
27. https://github.com/rebar/rebar3/pull/988
28. https://github.com/rebar/rebar3/pull/989
29. https://github.com/rebar/rebar3/pull/991
30. https://github.com/rebar/rebar3/pull/992
31. https://github.com/rebar/rebar3/pull/993
32. https://github.com/rebar/rebar3/pull/994
33. https://github.com/rebar/rebar3/pull/995
34. https://github.com/rebar/rebar3/pull/996
35. https://github.com/rebar/rebar3/pull/999
36. https://github.com/rebar/rebar3/pull/1005
37. https://github.com/rebar/rebar3/pull/1006
38. https://github.com/rebar/rebar3/pull/1007
39. https://github.com/rebar/rebar3/pull/1008
40. https://github.com/rebar/rebar3/pull/1009
41. https://github.com/rebar/rebar3/pull/1010
42. https://github.com/rebar/rebar3/pull/1012
43. https://github.com/rebar/rebar3/pull/1013
44. https://github.com/rebar/rebar3/pull/1016
45. https://github.com/rebar/rebar3/pull/1017
46. https://github.com/rebar/rebar3/pull/1018
47. https://github.com/rebar/rebar3/pull/1021
48. https://github.com/rebar/rebar3/pull/1022
49. https://github.com/rebar/rebar3/pull/1023
50. https://github.com/rebar/rebar3/pull/1024
51. https://github.com/rebar/rebar3/pull/1025
52. https://github.com/rebar/rebar3/pull/1029
53. https://github.com/rebar/rebar3/pull/1031
54. https://github.com/rebar/rebar3/pull/1033
55. https://github.com/rebar/rebar3/pull/1035
56. https://github.com/rebar/rebar3/pull/1041
57. https://github.com/rebar/rebar3/pull/1043
58. https://github.com/rebar/rebar3/pull/1045
59. https://github.com/rebar/rebar3/pull/1046
60. https://github.com/rebar/rebar3/pull/1047
61. https://github.com/rebar/rebar3/pull/1048
62. https://github.com/rebar/rebar3/pull/1050
63. https://github.com/rebar/rebar3/pull/1053
64. https://github.com/rebar/rebar3/pull/1061
65. https://github.com/rebar/rebar3/pull/1062
66. https://github.com/rebar/rebar3/pull/1065
67. https://github.com/rebar/rebar3/pull/1066
68. https://github.com/rebar/rebar3/pull/1067
69. https://github.com/rebar/rebar3/pull/1068
70. https://github.com/rebar/rebar3/pull/1070
71. https://github.com/rebar/rebar3/pull/1071
72. https://github.com/rebar/rebar3/pull/1073
73. https://github.com/rebar/rebar3/pull/1075
74. https://github.com/rebar/rebar3/pull/1076
75. https://github.com/rebar/rebar3/pull/1082
76. https://github.com/rebar/rebar3/pull/1090
77. https://github.com/rebar/rebar3/pull/1091
78. https://github.com/rebar/rebar3/pull/1092
79. https://github.com/rebar/rebar3/pull/1098
80. https://github.com/rebar/rebar3/pull/1099
81. https://github.com/rebar/rebar3/pull/1100
82. https://github.com/rebar/rebar3/pull/1101
83. https://github.com/rebar/rebar3/pull/1102
84. https://github.com/rebar/rebar3/pull/1103
85. https://github.com/rebar/rebar3/pull/1104
86. https://github.com/rebar/rebar3/pull/1106
87. https://github.com/rebar/rebar3/pull/1107
88. https://github.com/rebar/rebar3/pull/1108
89. https://github.com/rebar/rebar3/pull/1110
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160309/272dddff/attachment.htm>
More information about the erlang-questions
mailing list