Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
675ebda
Only check for unwanted functions (#11632)
moogle19 Feb 16, 2022
8d06ee8
Fix --warnings-as-errors for compiling with --all-warnings (#11634)
MichalDolata Feb 16, 2022
8da48af
Document delete_attribute+accumulate, closes #11635
josevalim Feb 16, 2022
f20c017
Deprecate levelpad of Logger.Formatter (#11633)
nallwhy Feb 17, 2022
22e3b12
Improvements to docs in URI and Module
josevalim Feb 16, 2022
c67c0d6
Update Mix.DepTest for Erlang/OTP 25 (#11636)
michallepicki Feb 17, 2022
2ddd291
Update Mix.TasksTestTest for Erlang/OTP 25 (#11637)
michallepicki Feb 17, 2022
d1fb5a1
Allow iodata in sigil formatting functions
josevalim Feb 17, 2022
97b2585
Add explanation for exit reason to GenServer (#11639)
oskarkook Feb 17, 2022
2ccf549
Fix typo (#11641)
v0idpwn Feb 17, 2022
79ffa65
Recreate local.sample task fixture in test_helper.exs (#11640)
michallepicki Feb 17, 2022
e6b5a91
Deprecate rebar2
josevalim Feb 17, 2022
5ba5e7b
Skip tests using Rebar2 on Erlang/OTP 25+ (#11643)
michallepicki Feb 17, 2022
5cca5e5
Remove rebar2 support
josevalim Feb 17, 2022
99c15ec
Add opening delimiter to sigil metadata/opts
josevalim Feb 17, 2022
a55dd11
Update local rebar3
josevalim Feb 17, 2022
b5f9f07
Remove Rebar 2 leftovers (#11649)
michallepicki Feb 18, 2022
e29f149
Handle 'mix local.rebar' command options without arguments (#11650)
henrythebuilder Feb 18, 2022
f47e18e
Fix typos (#11653)
kianmeng Feb 19, 2022
495e0bd
Remove `{:from_app, app}` from typespec and docs (#11655)
LostKobrakai Feb 19, 2022
dc8c191
Fallback to rebar3 when looking up command
josevalim Feb 19, 2022
36eb6eb
Profiler return the return value of the function (#11657)
PragTob Feb 20, 2022
3827a31
Improve error messages from bad capture operator usage (#11656)
josevalim Feb 21, 2022
c781651
Support general+reason metadata from EEP 54
josevalim Feb 22, 2022
ff55435
Show errors for incorrect `--rpc-eval` usage (#11659)
wojtekmach Feb 23, 2022
50f7a32
Fix CLI when Erlang flags are given after --rpc-eval
josevalim Feb 23, 2022
e61406b
Adjust childspec documentation to note that DynamicSupervisor require…
travisgriggs Feb 23, 2022
15319e7
Skip --rpc-eval missing arg test on Windows
josevalim Feb 24, 2022
57ee3e8
Improve eval stacktraces on Erlang/OTP 25+ (#11665)
josevalim Feb 24, 2022
1395240
Refactor EEx tokenizer (#11666)
feliperenan Feb 25, 2022
51d1eb9
Move some EEx syntax errors to tokenizer
josevalim Feb 25, 2022
74a1be6
Remove TODO
josevalim Feb 25, 2022
31a7940
Add EEx.tokenize/2 (#11667)
feliperenan Feb 27, 2022
d1eb57a
Use main EEx tokenize API
josevalim Feb 27, 2022
f887627
Add `doc since` to `EEx.tokenize/2` (#11669)
wojtekmach Feb 27, 2022
f83f1f5
Add zip_input_on_exit option to Task.async_stream (#11668)
vtm9 Feb 28, 2022
417c8b2
Fix spec for EEx.tokenize/2 and EEx.Compiler.compile/2 (#11670)
michallepicki Feb 28, 2022
f6d9241
Only keep input in async_stream if necessary
josevalim Feb 28, 2022
3538920
Fix `Enumerable.slice` docs (#11672)
wojtekmach Feb 28, 2022
abf8dea
Tweak type unification to fix infinite loop with recursive vars (#11664)
michallepicki Feb 28, 2022
63099e7
Expose EEx comments as tokens in EEx.tokenize/2 (#11674)
feliperenan Mar 1, 2022
bbeb8e6
Update EEx.token() type (#11678)
aptinio Mar 2, 2022
32cde7f
Fix EEx.tokenize/2 CaseClauseError (#11677)
aptinio Mar 2, 2022
d806ab3
Improve Macro.pipe/3 docs (#11679)
WLSF Mar 2, 2022
8fb28bc
Add Range.shift/2 (#11676)
capitalist Mar 3, 2022
82d1a49
Update CHANGELOG
josevalim Mar 3, 2022
fc0cb01
Add release notes outline to CHANGELOG
josevalim Mar 3, 2022
4212fbf
Add no_limit to Inspect.Algebra
josevalim Mar 3, 2022
b7a72ca
Add examples other than keyword lists (#11680)
nathanl Mar 3, 2022
8ab2fb9
Update Inspect.Algebra.fits?/5 spec (#11683)
michallepicki Mar 4, 2022
20c8d10
Make BEAM compression in mix releases opt-in (#11685)
fhunleth Mar 6, 2022
2e38f5e
Raise when doctest's only function is undefined (#11684)
RudolfMan Mar 6, 2022
149823a
Remove duplicated comment (#11687)
thiagopromano Mar 7, 2022
c6272ce
Add missing word, closes #11686
josevalim Mar 8, 2022
d4fa71d
Add space before argument for documentation consistency (#11690)
infinityfye Mar 9, 2022
b81a59a
Add Logger.put_process_level/2 and rewrite enable/1 and disable/1 (#1…
stefanchrobot Mar 10, 2022
21c166f
Fix `EEx.tokenize/2` docs (#11694)
wojtekmach Mar 10, 2022
bdcf887
Allow plus symbol in mix do as alternative to comma (#11696)
dhaspden Mar 10, 2022
63e4741
Fix Logger docs and specs (#11697)
michallepicki Mar 11, 2022
7b0988e
Fix bug when formatting :"\\" (#11699)
sabiwara Mar 12, 2022
c0dcfdc
Fix: dot path for umbrella test (#11693)
MichalDolata Mar 12, 2022
4123eee
Document how to manually build URI structs (#11688)
mtrudel Mar 12, 2022
7fd4526
Add line in diagnostic for invalid struct key (#11701)
sabiwara Mar 13, 2022
e0294bc
Fix use of assert_receive[d] in catch_exit doc (#11702)
devstopfix Mar 13, 2022
03acf01
Improve docs for throw
josevalim Mar 15, 2022
bd2e691
Support ISO8601 basic format parsing with `DateTime.from_iso8601` (#1…
dariodf Mar 15, 2022
d6df224
Add more reasons to fallback to inet or inet6 (#11705)
maltekrupa Mar 16, 2022
c03e397
Add OTP-24.3 to CI (#11711)
josevalim Mar 19, 2022
beb6b47
Change map updates type checking direction (#11713)
michallepicki Mar 21, 2022
fa621f2
Do not mention charlist segments in `<<>>/1` docs (#11718)
andrhua Mar 23, 2022
b53fb30
Improve error message clarity
josevalim Mar 23, 2022
a1fe88f
Fix typo (#11722)
krns Mar 24, 2022
ac1c322
fix typo in the supervisor docs (#11723)
markthequark Mar 25, 2022
507a91a
Fixes for multi args before + in mix do
josevalim Mar 25, 2022
b535be2
CI: Add build docs (#11724)
eksperimental Mar 25, 2022
14b9535
Do not mention compatibility in @dialyzer attr doc (#11725)
michallepicki Mar 25, 2022
4384cbb
Use EEP 54 pretty printer option
josevalim Mar 25, 2022
6546a43
Streamline release.yml Github Action with ci.yml (#11727)
eksperimental Mar 25, 2022
2f10761
Remove new lines from multiline test name (with --trace option) (#11728)
nashby Mar 25, 2022
4095d29
Replace usage of comma with plus sign in "mix do" commands (#11729)
eksperimental Mar 26, 2022
8d0cfde
CI: Use latest ex_doc version (#11732)
eksperimental Mar 27, 2022
5f33f22
Makefile: allow setting DOCS_FORMAT (#11733)
eksperimental Mar 28, 2022
b8cd17d
Improve docs for then and tap (#11730)
daskycodes Mar 28, 2022
873b7c2
Warn if any of True, False, and Nil aliases are used (#11731)
fmterrorf Mar 28, 2022
feb9884
Fix Version.parse/1 incorrectly stripping dots from field (#11736)
peake100 Mar 29, 2022
d4d0523
Add ws and wss port configuration to URIConfig (#11738)
entertainyou Apr 1, 2022
eea4a9e
Make Registry.send work when value part is present (#11742)
entertainyou Apr 5, 2022
700e0b7
Fix typo in mix escript.build docs (#11743)
yellowsman Apr 6, 2022
e8b24cd
Remove duplication in unicode tokenizer
josevalim Apr 9, 2022
94bab44
Run after_suite even when no tests were ran (#11749)
jared-mackey Apr 9, 2022
85617ce
Only store test timings in CLIFormatter when --slowest is used (#11754)
vorce Apr 11, 2022
e304bf3
Revert "Add compile-time dependencies on require"
josevalim Apr 11, 2022
b553fe6
Do not store logs when storing timings
josevalim Apr 11, 2022
2780157
Mention key optionality for literal keyword typespecs (#11757)
v0idpwn Apr 13, 2022
a566fbe
Clarify what the correct xor precedence should have been
josevalim Apr 16, 2022
4cc92a7
Fix variable declaration in default argument block (#11758)
sabiwara Apr 16, 2022
eafb7b8
Move error cases to new defaults_test.exs
josevalim Apr 16, 2022
37fbb2b
Improve docs for Unicode on String
josevalim Apr 19, 2022
de74212
Talk about the byte representation
josevalim Apr 19, 2022
da409d8
Add short hash to tmp_dir in ExUnit to avoid test name collision (#11…
eksperimental Apr 19, 2022
62fb3a6
Add dark logo in README with #gh-dark-mode-only (#11768)
simonprev Apr 21, 2022
afee927
Fix System.shell/2 command escaping on Unix (#11767)
jonatanklosko Apr 21, 2022
7909d45
Optimize Enum.with_index/2 for lists (#11765)
sabiwara Apr 22, 2022
540b202
Use stdio when boot fails to avoid cutoffs
josevalim Apr 23, 2022
26e5080
Fix mix suite
josevalim Apr 23, 2022
b274310
Do not generate more stacktrace than support on eval errors
josevalim Apr 23, 2022
920e7bd
Make individual files in `escript.build` example better distinguishab…
NobbZ Apr 24, 2022
7213cee
Add missing known tag `:describe_line` to ExUnit.Case docs (#11773)
joshprice Apr 24, 2022
14dff5c
ExUnit: Group colliding test names in tests (#11774)
eksperimental Apr 24, 2022
0e76dd6
Remove warning in Kernel default tests (#11777)
eksperimental Apr 24, 2022
d9bd5d6
Supress output in doctest in String module (#11776)
eksperimental Apr 24, 2022
225241f
Return no_translation error in StringIO put_chars as in Erlang (#11756)
maennchen Apr 25, 2022
395b053
Evaluate --dot-iex line by line
josevalim Apr 25, 2022
0ec20d3
Mix: Remove exclamation mark from message release command (#11780)
eksperimental Apr 25, 2022
8d99d11
Use double # for comments in release script (#11781)
eksperimental Apr 25, 2022
04554ba
Remove trailing whitespace (#11782)
jbampton Apr 25, 2022
e38c23f
Adds start_link_supervised (#11769)
joladev Apr 25, 2022
bdc35f7
Add error details to ErlangError (#11779)
maennchen Apr 25, 2022
adaa773
Fix ExUnit.Callbacks.start_link_supervised!/2 spec (#11784)
michallepicki Apr 26, 2022
d1e6b75
Do not collapse small floats, closes #761
josevalim Apr 26, 2022
808e955
Update CHANGELOG
josevalim Apr 26, 2022
27c3a4a
Warn if a protocol has no definition, closes #11588
josevalim Apr 26, 2022
965505f
Expand imports within describe, closes #11726
josevalim Apr 26, 2022
709583d
Simplify recursion in ExUnit merge
josevalim Apr 26, 2022
abda4a1
Clarify deps.compile will attempt to compile deps
josevalim Apr 27, 2022
68fa921
Define how to_existing_atom works within modules, closes #11786
josevalim Apr 30, 2022
94bd3dd
Update IEx.Helpers docs for open/1 (#11787)
mgibowski Apr 30, 2022
3ba5381
mix format
josevalim Apr 30, 2022
5e07218
Add ExUnit.run/1 to rerun test modules (#11788)
kw7oe May 1, 2022
2c70bd4
Update Copyright owners to manpages. (#11792)
eksperimental May 2, 2022
fd51354
Fix punctuation and grammar issues in guides (#11790)
solar05 May 2, 2022
2771845
Support :test_elixirc_options in mix test
josevalim May 2, 2022
1907914
Store :mfa in the Task struct (#11794)
josevalim May 2, 2022
91fa0e3
Improve docs for Task mfa field (#11795)
eksperimental May 2, 2022
d7709a5
Allow slice to overflow on both starting and ending positions
josevalim May 4, 2022
4cdd76b
Fix warnings on lexical tracker suite
josevalim May 4, 2022
dadb49f
Inline more code in Enum
josevalim May 4, 2022
bd49ad6
Generate less code in defstruct
josevalim May 6, 2022
549a867
Warn on underived derives, closes #11799
josevalim May 6, 2022
9e1aa0b
Do not format empty lines into line breaks (#11802)
ak3nji May 7, 2022
e41b59a
Do not add new line on all empty mix format
josevalim May 8, 2022
cb91088
Update CHANGELOG
josevalim May 8, 2022
c053b4b
Raise ArgumentError when inspect protocol options don't match struct …
jwharrow May 8, 2022
122cc00
GenServer: Rename `continue` argument in handle_continue/2 (#11793)
eksperimental May 8, 2022
197b79f
Add when :asc/:desc were introduced in Enum.sort/2 (#11803)
whatyouhide May 8, 2022
169595f
Change import metadata to imports as a list
josevalim May 8, 2022
3ee4e78
Support more stacktrace formats in IO.warn/2
josevalim May 8, 2022
c5c31ba
Add allow_nonexistent_atoms to OptionParser spec (#11804)
fhunleth May 8, 2022
677e481
Add docs for the "options" argument in EEx.eval_string/3 (#11805)
krainboltgreene May 9, 2022
aa9128c
Mention module docs for EEx options
josevalim May 9, 2022
1f9f6de
Add "@doc since" attribute to List.keysort/4 (#11810)
eksperimental May 10, 2022
07ac37c
Remove dead code in List.keysort/3 (#11809)
eksperimental May 10, 2022
f325995
Do not expand expressions in IEx eagerly, closes #11807
josevalim May 10, 2022
21972c1
Return proper syntax error on incomplete escape char in string, close…
josevalim May 11, 2022
a1527dc
Add --no-optional-deps to skip optional dependencies for compilation …
josevalim May 11, 2022
6668191
Optimize Enum.sort_by/3 when sorter is :desc (#11819)
eksperimental May 12, 2022
6faa829
Document `import mod, only: :sigils` (#11816)
wojtekmach May 12, 2022
25b2811
Update README instructions for cloning ex_doc (#11821)
ascandella May 12, 2022
fbb0f06
Support filename in `mix format -` when reading from stdin (#11822)
ascandella May 12, 2022
614f41c
Improve docs for setup_all + on_exit (#11823)
whatyouhide May 13, 2022
fb3595c
Grammar fixes related to A vs AN (#11826)
eksperimental May 13, 2022
0935cab
Polish the docs for the ExUnit module
whatyouhide May 14, 2022
65319f5
When all tests are excluded, colorize summary in yellow with message …
solar05 May 14, 2022
77bae85
Improve Exception blame for is_struct guard by reverting the macro (#…
ak3nji May 14, 2022
07b5f2d
Add a guard to ExUnit.configure/1 (#11828)
whatyouhide May 14, 2022
5d17989
Clarify value of :modules option, closes #11830
josevalim May 15, 2022
14bdb23
Replace usage of "etc." (#11832)
eksperimental May 15, 2022
e49fced
Clarify docs for Supervisor.start_link/2 (#11831)
eksperimental May 15, 2022
86e8f70
Handle Calendar.strftime widths with "0" in them (#11833)
jdewar May 15, 2022
cbc3f7a
CHANGELOG: fix mention to Logger.put_process_level/2 (#11834)
eksperimental May 15, 2022
9fd7e40
Improve t:Supervisor.child_spec/0 (#11835)
eksperimental May 15, 2022
a862545
Update t:Supervisor.child_spec/0 to reflect specs in minimum supporte…
eksperimental May 15, 2022
c04c74c
Use :warning level for Logger threshold
josevalim May 15, 2022
7d80cbc
Allow :warning to configure Logger Console color
josevalim May 15, 2022
93f7438
Update section reference in Supervisor module (#11841)
eksperimental May 16, 2022
85594ce
Improve warning on quoted atoms, calls, and keywords (#11838)
cmcaine May 16, 2022
04074e5
Add note about Module functions availability during @after_compile (#…
lukaszsamson May 16, 2022
3c1df66
Add tests for warning on atoms starting with a number (#11842)
eksperimental May 16, 2022
7b70999
Add the :normalize_bitstring_modifiers formatter option (#11840)
sabiwara May 17, 2022
2bf3c04
Fix typo in a TODO comment
whatyouhide May 17, 2022
81a1d57
Polish docs for PartitionSupervisor
whatyouhide May 19, 2022
cc4c837
Add spec to PartitionSupervisor.start_link/1 (#11846)
whatyouhide May 19, 2022
76fd2f0
Fix small things here and there in the CHANGELOG
whatyouhide May 19, 2022
ce9f43b
Consider steps when slicing a list forward
josevalim May 19, 2022
f4f71cd
Add examples to Enum.slice/2 docs (#11847)
whatyouhide May 19, 2022
1b9d2b5
Use zero-arity instead of 0-arity and so on (#11848)
eksperimental May 20, 2022
4424129
Fix function link in docs for the Code module (#11850)
eksperimental May 20, 2022
3d76d19
Replace default sorter in Enum.sort_by/3 with :asc (#11856)
eksperimental May 21, 2022
9ed22fb
Manually link to functions with multiple arities (#11855)
eksperimental May 21, 2022
0e5720a
Fix missing arity in some functions (#11854)
eksperimental May 21, 2022
6767256
Update PartitionSupervisor implementation notes (#11853)
davydog187 May 21, 2022
f68d2cf
Copy-edit Supervisor docs + New types (#11849)
eksperimental May 21, 2022
4c909a1
Removes/Adds qualified calls to Kernel (#11852)
eksperimental May 21, 2022
f4fc493
Remove explicit reference to Kernel.SpecialForms.* (#11851)
eksperimental May 21, 2022
c99025f
Run Erlang/OTP 25 on CI (#11858)
josevalim May 21, 2022
0d37cc2
Allow test modules to be compiled
josevalim May 21, 2022
713ce1d
Allow any valid name for PartitionSupervisor (#11860)
sorentwo May 22, 2022
b456bef
Improvements to PartitionSupervisor
josevalim May 22, 2022
e700145
nfc and additional normalizations for identifiers (#11859)
mrluc May 23, 2022
638b427
Improve Code.Fragment.surround_context spec (#11867)
lukaszsamson May 23, 2022
f431aef
Do not attempt to suggest starting tokens
josevalim May 23, 2022
5deafbd
Normalize unicode characters once in tokenizer
josevalim May 23, 2022
1062253
Improve position typespec (#11868)
lukaszsamson May 23, 2022
9a4d10e
Introduce t:Supervisor.sup_flags/0 + Streamline specs (#11865)
eksperimental May 24, 2022
cd8da51
Fix Supervisor.init/2 return type in spec (#11871)
michallepicki May 25, 2022
df2e451
Mix.Dep.Converger now tells which deps formed a cycle (#11873)
gp-pereira May 26, 2022
fe20dd9
Docs improvements to Macro
josevalim May 27, 2022
1e5932b
Improvements to Code module
josevalim May 27, 2022
33018dc
Minor grammar fix (#11879)
eksperimental May 29, 2022
3176951
Update prewalk and postwalk documentation (#11874)
iaguirre88 May 29, 2022
1f6ac2d
Add example for Macro.traverse/4 docs (#11881)
iaguirre88 May 30, 2022
e2f5884
Rescue errors from formatting, closes #11880
josevalim May 29, 2022
38d76d4
Skip docs on secondary bootstrap (#11883)
josevalim May 30, 2022
26e4624
Correct specs semantics for hd/1 and tl/1 (#11884)
eksperimental May 30, 2022
22be3c9
Validate argument passed to "use ExUnit.Case" (#11887)
whatyouhide May 31, 2022
682239b
Improve docs for ExUnit.CaseTemplate (#11888)
whatyouhide May 31, 2022
f7e5887
Add mix eval (#11861)
josevalim May 31, 2022
01361af
Add typespec :delayed_write to File.stream! modes (#11890)
ryanwinchester May 31, 2022
4c800c8
Make documentation for hd/1 and tl/1 more beginner friendly (#11891)
eksperimental May 31, 2022
d588716
Improve docs for RELEASE_MODE
josevalim Jun 1, 2022
695e45c
Small fix in docs for Application.ensure_loaded/1 (#11895)
MichalDolata Jun 2, 2022
74bee73
Add PartitionSupervisor section to the changelog (#11892)
whatyouhide Jun 2, 2022
18f473d
Add structure issue templates (#11893)
yordis Jun 2, 2022
43f2b44
Remove periods for consistency
josevalim Jun 2, 2022
8d3e8a5
Rename section to "Report an issue" in GH template (#11900)
eksperimental Jun 3, 2022
5273f7a
Fix typo in the docs for URI.new!/1 (#11898)
boringcactus Jun 3, 2022
2a4ea70
Show stacktrace if everything is pruned instead
josevalim Jun 3, 2022
a930ab3
Fix typos (#11901)
optikfluffel Jun 3, 2022
98343d0
Improve Github issue template (#11902)
eksperimental Jun 3, 2022
3aa5d2b
Add remaining info for 1.14 CHANGELOG (#11896)
whatyouhide Jun 3, 2022
8fad150
Improve Inspect for structs (#11897)
josevalim Jun 3, 2022
f51a239
Update CHANGELOG
josevalim Jun 3, 2022
0ca5802
GitHub Template: Separate paragraphs when rendered (#11904)
eksperimental Jun 4, 2022
7d62286
Improvements to CHANGELOG
josevalim Jun 4, 2022
b35174e
Add Float.min_finite/0 and Float.max_finite/0
josevalim Jun 6, 2022
91d345a
chore: Set permissions for GitHub actions (#11906)
naveensrinivasan Jun 6, 2022
bbb492b
chore: Included githubactions in the dependabot config (#11907)
naveensrinivasan Jun 7, 2022
f32c2a5
Bump actions/checkout from 2 to 3 (#11909)
dependabot[bot] Jun 7, 2022
4c0a788
Bump actions/cache from 2 to 3 (#11908)
dependabot[bot] Jun 7, 2022
f5c0cfc
Make Code.Fragment.surround_context behave consistently with windows …
lukaszsamson Jun 7, 2022
173c15b
Return keywords in Code.Fragment.surround_context (#11911)
lukaszsamson Jun 7, 2022
9bb1202
Update instructions for Map.map/2 deprecation, closes #11912
josevalim Jun 8, 2022
888eba7
Add documentation about using guards for map fields (#11913)
rodrigues Jun 9, 2022
c12f6c1
Teach elixir.bat ELIXIR_CLI_DRY_RUN (#11916)
samaaron Jun 10, 2022
76febea
Change MapSet.t definition to make Dialyzer happy (#11917)
michallepicki Jun 11, 2022
fa7b6a8
Move custom formatting docs to Logger.Formatter
josevalim Jun 11, 2022
a59146d
Fix example in overridables_in
josevalim Jun 11, 2022
27a276e
Replace misspelt helper nillify with nilify (#11919)
eksperimental Jun 11, 2022
d1dd9c9
Add note on dot in code fragment
josevalim Jun 12, 2022
1d7e057
Bump actions/cache from 3 to 4
dependabot[bot] Jan 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
50 changes: 50 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
env:
CIRRUS_CLONE_DEPTH: 50
ELIXIR_ASSERT_TIMEOUT: 2000
ELIXIRC_OPTS: "--warnings-as-errors"
ERLC_OPTS: "warnings_as_errors"
LANG: C.UTF-8

test_template: &DEFAULT_TEST_SETTINGS
# don't cancel the task execution if it's master or a release branch
auto_cancellation: $CIRRUS_BRANCH != 'master' && $CIRRUS_BRANCH !=~ 'v\d+\.\d+.*'

test_freebsd_task:
<<: *DEFAULT_TEST_SETTINGS

name: FreeBSD 13.0
alias: FreeBSD Stable

freebsd_instance:
image_family: freebsd-13-0
cpu: 8
memory: 7424Mi

env:
CHECK_REPRODUCIBLE: true
LC_ALL: en_US.UTF-8
PATH: $PATH:/usr/local/lib/erlang24/bin

install_script:
- pkg install -y erlang-runtime24 git gmake
- rm -rf .git
- gmake compile

build_info_script: bin/elixir --version

test_formatted_script:
- gmake test_formatted &&
echo "All Elixir source code files are properly formatted."

dialyzer_script: dialyzer -pa lib/elixir/ebin --build_plt --output_plt elixir.plt --apps lib/elixir/ebin/elixir.beam lib/elixir/ebin/Elixir.Kernel.beam

test_erlang_script: gmake test_erlang

test_elixir_script: gmake test_elixir

check_reproducible_script: |
if [ -n "$CHECK_REPRODUCIBLE" ]; then
gmake check_reproducible
else
echo "The reproducibility of the build is only checked in the last stable Erlang/OTP version."
fi
19 changes: 19 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[
inputs: [
"lib/*/{lib,unicode,test}/**/*.{ex,exs}",
"lib/*/*.exs",
"lib/ex_unit/examples/*.exs",
".formatter.exs"
],
locals_without_parens: [
# Formatter tests
assert_format: 2,
assert_format: 3,
assert_same: 1,
assert_same: 2,

# Errors tests
assert_eval_raise: 3
],
normalize_bitstring_modifiers: false
]
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
lib/elixir/test/elixir/fixtures/*.txt text eol=lf
*.ex diff=elixir
*.exs diff=elixir
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
blank_issues_enabled: true

contact_links:
- name: Discuss proposals
url: https://groups.google.com/g/elixir-lang-core
about: Send proposals for new ideas to our mailing list

- name: Ask questions and support
url: https://elixirforum.com/
about: Ask questions, provide support and more on Elixir Forum
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Report an issue
description:
Tell us about something that is not working the way we (probably) intend
body:
- type: markdown
attributes:
value: >
Thank you for contributing to Elixir! :heart:


Please, do not use this form for guidance, questions or support.
Try instead in [Elixir Forum](https://elixirforum.com),
the [IRC Chat](https://web.libera.chat/#elixir),
[Stack Overflow](https://stackoverflow.com/questions/tagged/elixir),
[Slack](https://elixir-slackin.herokuapp.com),
[Discord](https://discord.gg/elixir) or in other online communities.

- type: textarea
id: elixir-and-otp-version
attributes:
label: Elixir and Erlang/OTP versions
description: Paste the output of `elixir --version` here.
validations:
required: true

- type: input
id: os
attributes:
label: Operating system
description: The operating system that this issue is happening on.
validations:
required: true

- type: textarea
id: current-behavior
attributes:
label: Current behavior
description: >
Include code samples, errors, and stacktraces if appropriate.


If reporting a bug, please include the reproducing steps.
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A short description on how you expect the code to behave.
validations:
required: true
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
129 changes: 129 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: CI

on: [pull_request, push]

env:
ELIXIR_ASSERT_TIMEOUT: 2000
ELIXIRC_OPTS: "--warnings-as-errors"
ERLC_OPTS: "warnings_as_errors"
LANG: C.UTF-8

permissions:
contents: read

jobs:
test_linux:
name: Linux, ${{ matrix.otp_release }}, Ubuntu 18.04
strategy:
fail-fast: false
matrix:
include:
- otp_release: OTP-25.0
otp_latest: true
- otp_release: OTP-24.3
- otp_release: OTP-24.0
- otp_release: OTP-23.3
- otp_release: OTP-23.0
- otp_release: master
development: true
- otp_release: maint
development: true
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install Erlang/OTP
run: |
cd $RUNNER_TEMP
wget -O otp.tar.gz https://repo.hex.pm/builds/otp/ubuntu-18.04/${{ matrix.otp_release }}.tar.gz
mkdir -p otp
tar zxf otp.tar.gz -C otp --strip-components=1
otp/Install -minimal $(pwd)/otp
echo "$(pwd)/otp/bin" >> $GITHUB_PATH
- name: Compile Elixir
run: |
rm -rf .git
make compile
echo "$PWD/bin" >> $GITHUB_PATH
- name: Build info
run: bin/elixir --version
- name: Check format
run: make test_formatted && echo "All Elixir source code files are properly formatted."
- name: Run Dialyzer
run: dialyzer -pa lib/elixir/ebin --build_plt --output_plt elixir.plt --apps lib/elixir/ebin/elixir.beam lib/elixir/ebin/Elixir.Kernel.beam
- name: Erlang test suite
run: make test_erlang
continue-on-error: ${{ matrix.development }}
- name: Elixir test suite
run: make test_elixir
continue-on-error: ${{ matrix.development }}
- name: Check reproducible builds
run: taskset 1 make check_reproducible
if: ${{ matrix.otp_latest }}
- name: Build docs
if: ${{ matrix.otp_latest }}
run: |
git config --global advice.detachedHead false
EX_DOC_LATEST_STABLE_VERSION=$(curl -s https://hex.pm/api/packages/ex_doc | jq --raw-output '.latest_stable_version')
for branch in main v${EX_DOC_LATEST_STABLE_VERSION}; do
echo "Building docs with ExDoc ${branch}"
cd ..
git clone https://github.com/elixir-lang/ex_doc.git --branch ${branch} --depth 1
cd ex_doc
../elixir/bin/mix do local.rebar --force + local.hex --force + deps.get + compile
cd ../elixir/
make docs
rm -rf ../ex_doc/
done

test_windows:
name: Windows, OTP-${{ matrix.otp_release }}, Windows Server 2019
strategy:
matrix:
otp_release: ['23.3']
runs-on: windows-2019
steps:
- name: Configure Git
run: git config --global core.autocrlf input
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Cache Erlang/OTP package
uses: actions/cache@v4
with:
path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey\erlang
key: OTP-${{ matrix.otp_release }}-windows-2019
- name: Install Erlang/OTP
run: choco install -y erlang --version ${{ matrix.otp_release }}
- name: Compile Elixir
run: |
remove-item '.git' -recurse -force
make compile
- name: Build info
run: bin/elixir --version
- name: Check format
run: make test_formatted && echo "All Elixir source code files are properly formatted."
- name: Erlang test suite
run: make --keep-going test_erlang
- name: Elixir test suite
run: |
del c:/Windows/System32/drivers/etc/hosts
make --keep-going test_elixir

check_posix_compliant:
name: Check POSIX-compliant
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install Shellcheck
run: |
sudo apt update
sudo apt install -y shellcheck
- name: Check POSIX-compliant
run: |
shellcheck -e SC2039,2086 bin/elixir && echo "bin/elixir is POSIX compliant"
shellcheck bin/elixirc && echo "bin/elixirc is POSIX compliant"
shellcheck bin/iex && echo "bin/iex is POSIX compliant"
62 changes: 62 additions & 0 deletions .github/workflows/notify.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# #!/usr/bin/env elixir
[tag] = System.argv()

Mix.install([
{:req, "~> 0.2.1"},
{:jason, "~> 1.0"}
])

%{status: 200, body: body} =
Req.get!("https://api.github.com/repos/elixir-lang/elixir/releases/tags/#{tag}")

if body["draft"] do
raise "cannot notify a draft release"
end

## Notify on elixir-lang-ann

names_and_checksums =
for asset <- body["assets"],
name = asset["name"],
name =~ ~r/.sha\d+sum$/,
do: {name, Req.get!(asset["browser_download_url"]).body}

line_items =
for {name, checksum_and_name} <- Enum.sort(names_and_checksums) do
[checksum | _] = String.split(checksum_and_name, " ")
root = Path.rootname(name)
"." <> type = Path.extname(name)
" * #{root} - #{type} - #{checksum}\n"
end

headers = %{
"X-Postmark-Server-Token" => System.fetch_env!("ELIXIR_LANG_ANN_TOKEN")
}

body = %{
"From" => "[email protected]",
"To" => "[email protected]",
"Subject" => "Elixir #{tag} released",
"HtmlBody" => "https://github.com/elixir-lang/elixir/releases/tag/#{tag}\n\n#{line_items}",
"MessageStream": "outbound"
}

resp = Req.post!("https://api.postmarkapp.com/email", {:json, body}, headers: headers)
IO.puts("#{resp.status} elixir-lang-ann\n#{inspect(resp.body)}")

## Notify on Elixir Forum

headers = %{
"api-key" => System.fetch_env!("ELIXIR_FORUM_TOKEN"),
"api-username" => "Elixir"
}

body = %{
"title" => "Elixir #{tag} released",
"raw" => "https://github.com/elixir-lang/elixir/releases/tag/#{tag}\n\n#{body["body"]}",
# Elixir News
"category" => 28
}

resp = Req.post!("https://elixirforum.com/posts.json", {:json, body}, headers: headers)
IO.puts("#{resp.status} Elixir Forum\n#{inspect(resp.body)}")
28 changes: 28 additions & 0 deletions .github/workflows/notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Notify

on:
release:
types:
- published

permissions:
contents: read

jobs:
notify:
runs-on: ubuntu-18.04
name: Notify
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: erlef/setup-beam@v1
with:
otp-version: 24.3
elixir-version: 1.13.4
- name: Run Elixir script
env:
ELIXIR_FORUM_TOKEN: ${{ secret.ELIXIR_FORUM_TOKEN }}
ELIXIR_LANG_ANN_TOKEN: ${{ secret.ELIXIR_LANG_ANN_TOKEN }}
run: |
elixir .github./workflows/notify.exs ${{ github.ref_name }}
Loading