Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
266 commits
Select commit Hold shift + click to select a range
edc261c
Implement host_flag? macro method, not affected by cross-compilation …
oprypin May 11, 2020
b8d4ca0
Prefer HTTP basic authentication in OAuth2 client (#9127)
crush-157 May 11, 2020
90d89d0
Change `HTTP::Request#remote_address` type to `Socket::Address?` (#9210)
waj May 11, 2020
8e382d7
HTTP::Server: defer request upgrade (aka: WebSockets) (#9243)
waj May 11, 2020
0a3824b
Skip no closure check for non-Crystal procs (#9248)
jhass May 11, 2020
a2fa135
Make `NamedTuple#sorted_keys` public (#9263)
waj May 11, 2020
70959cf
Add Log Metadata (#9227)
May 11, 2020
35c1f41
Add link to GitHub repo to README.md (#9163)
straight-shoota May 11, 2020
0f3f29c
Refactor Log::Formatter (#9211)
waj May 13, 2020
433ca8e
Refactor spec hooks (#9090)
straight-shoota May 13, 2020
c7948d1
Rework DWARF loading (#9267)
waj May 13, 2020
adf8112
Cleanup Digest and OpenSSL::Digest (#8426)
didactic-drunk May 13, 2020
a3ec85a
Refactor to standardize on first argument for methods receiving `IO` …
straight-shoota May 13, 2020
32a6282
Followup of #9134. Missing swap of arguments (#9289)
May 13, 2020
2898564
Refactor Docs::Generator source link generation (#9119)
straight-shoota May 13, 2020
6d0d63f
XML: improve xpath regarding namespaces (#9288)
asterite May 14, 2020
19e2172
Compiler: cast fun function pointer to Proc (#9287)
asterite May 14, 2020
d270eba
Log: Rename Severity::Warning to Severity::Warn (#9293)
May 14, 2020
46aad29
Avoid requiring non std-lib spec spec_helper in hooks_spec (#9294)
May 14, 2020
7f399f0
Use `_realpath$DARWIN_EXTSN` function in Darwin to fix issue with Cat…
waj May 14, 2020
2f34d0b
Add IO overloads to various String case methods (#9236)
Blacksmoke16 May 14, 2020
b977a95
Escape CDATA end sequences (#9230)
Blacksmoke16 May 14, 2020
1e19a23
Add `StringLiteral#titleize` macro method (#9269)
makenowjust May 15, 2020
d49375b
`TypeNode` methods to check what "type" the node is (#9270)
Blacksmoke16 May 15, 2020
60bdcf0
Resolve the always-present Windows linker's warnings (#9307)
oprypin May 16, 2020
b199a81
Parser: rewrite type parser (#9208)
makenowjust May 18, 2020
7f13250
Make IO#skip IO#write returns the number of bytes it skipped/written …
May 18, 2020
445b993
[Docs] Fix source_url_pattern with canonical repo name (#9305)
straight-shoota May 18, 2020
7b9069f
Implement Process(env:) on Windows and add more Env specs (#9310)
oprypin May 18, 2020
5188e10
Support different number of fraction digits for RFC3339 time format (…
waj May 18, 2020
40be93b
Followup of #9134. Missing swap of arguments (#9303)
May 18, 2020
ed2bb7b
Log::Metadata optimizations (#9295)
May 18, 2020
6c5ce52
Followup of #9134. Missing swap of arguments (#9318)
oprypin May 19, 2020
c10dbc8
refactor: remove heredoc related code from StringLiteral formatter (#…
makenowjust May 19, 2020
28821fc
Keep Log::Severity::Warning as deprecated definition (#9316)
May 19, 2020
ea80f4c
Always include `lib` directory in the CRYSTAL_PATH (#9315)
waj May 19, 2020
2f90b6f
Range: use `while true` when possible in `each` and `reverse_each`
asterite May 19, 2020
c68b49f
Compiler: fix yield computation inside macro code (#9324)
asterite May 21, 2020
064b3b0
Range: use `while true` when possible in `each` and `reverse_each` (#…
asterite May 21, 2020
c13fd9c
Docs: correctly attach docs before annotations to following types (#9…
asterite May 21, 2020
b3ebb1c
Allow annotations and ditto in macro (#9341)
May 23, 2020
d91a638
Win CI: add libxml2 and enable more specs (#9346)
oprypin May 25, 2020
15e6e28
Parser: fix to parse `{[] of Foo, self.foo}` correctly (#9329)
makenowjust May 26, 2020
d9e9d2b
LibSSL: Add NO_TLS_V1_3 option (#9350)
lun-4 May 26, 2020
f3f0b29
Fix Enumerable#{zip,zip?} when self is an Iterator (#9328) (#9330)
mneumann May 26, 2020
6e621f6
Use SOURCE_DATE_EPOCH only to determine compiler date (#9088)
straight-shoota May 26, 2020
dbf2a21
Compiler: warn on deprecated macros (#9343)
May 26, 2020
499d08d
Simplify Link annotation handling (#8972)
RX14 May 26, 2020
9ba66f9
Make autocasting work in default values against unions
asterite May 28, 2020
aa893b7
Deprecate JSON.mapping and YAML.mapping (#9272)
straight-shoota May 28, 2020
05e5f95
Process raises `IO::Error` (or subclasses) (#9340)
waj May 28, 2020
e43364f
Fix parsing AM/PM hours (#9334)
straight-shoota May 28, 2020
6380fa9
Change IO#write, IO#skip, IO.copy to return Int64 (#9363)
May 28, 2020
d60a1db
Add Process.quote and fix shell usages in the compiler (#9043)
oprypin May 28, 2020
b48471e
Fix typo in "deserializing" (#9368)
j8r May 28, 2020
0dd0c08
Enumerable#join args swap. Follow up #9043 (#9369)
May 28, 2020
290a5f9
CI: Use --json-config-url doc option (#9370)
May 28, 2020
67d4731
Merge pull request #9366 from asterite/bug/autocast-union-alias-defau…
asterite May 28, 2020
9d84d37
Refactor CrystalPath::Error (#9359)
straight-shoota May 29, 2020
f584ff6
Refactor spec_helper (#9367)
straight-shoota May 29, 2020
11075c4
Add Int#digits (#9383)
asterite Jun 1, 2020
a2031af
Fix double string escape in XML::Node#content= (#9300)
straight-shoota Jun 1, 2020
b02e6d5
Allow calling `at_exit` inside `at_exit` (#9388)
asterite Jun 1, 2020
cdc9829
Parser: allow ->@ivar.foo and ->@@cvar.foo (#9268)
makenowjust Jun 1, 2020
766c927
Remove HTTP::Params::Builder#to_s (#9319)
straight-shoota Jun 1, 2020
bffe450
Fix flush methods to always flush underlying IO (#9320)
straight-shoota Jun 1, 2020
9dbc88e
Add file and line references in spec_helper asserts (#9059)
straight-shoota Jun 1, 2020
13a9d3d
Doc: show input type path instead of full qualified path on generic (…
makenowjust Jun 1, 2020
babe00e
Improve File.utime precision from second to 100-nanosecond on Windows…
kubo Jun 1, 2020
4762107
Format: fix formatting `&.!` (#9391)
makenowjust Jun 1, 2020
fc5c712
Format: avoid formatter crash on heredoc having interpolation of stin…
makenowjust Jun 1, 2020
cca83e6
Make compiler specs use locally build crystal (#9393)
jhass Jun 1, 2020
2d8d649
Split general ABI specs from x86_64-specific ones, run on every platf…
oprypin Jun 1, 2020
e33075f
Specify pkgconfig name for libevent (#9395)
jhass Jun 1, 2020
c77c54a
Array: fix delete_at bug with negative start index (#9399)
asterite Jun 1, 2020
baddee8
Log: check severity before backend (#9400)
asterite Jun 2, 2020
530ec52
Docs: fix syntax highlighting of heredoc (#9396)
makenowjust Jun 2, 2020
dead87b
Improve spec helpers, prepare for compiler specs on Windows (#9351)
oprypin Jun 2, 2020
c2113aa
Hide internal __ fun from docs (#9410)
Jun 2, 2020
ea9d9b1
Minor INI improvements (#9408)
j8r Jun 3, 2020
df026e1
Fix compile time checking of method definition (#9407)
asterite Jun 3, 2020
48e9289
Basic support for Win64 C lib ABI (#9387)
oprypin Jun 3, 2020
52603da
Fix http specs on mt (#9412)
Jun 3, 2020
e50bc64
WebSocket doesn't reply with same close code (#9313)
waj Jun 3, 2020
70bec07
Ensure `type_vars` works for generic modules. (#9161)
toddsundsted Jun 3, 2020
946b4e6
Implement File#fsync on Windows (#9257)
kubo Jun 3, 2020
50813d4
Improve compiler single-file run syntax (#9171)
RX14 Jun 3, 2020
1a8ea04
Fix overflow checking for operations with mixed sign (#9403)
waj Jun 3, 2020
f324905
Tidy up Makefile and crystal env output (#9423)
Jun 4, 2020
82ac201
Remove redundant spec relying on crystal being in PATH (#9402)
jhass Jun 5, 2020
8a6988e
Ignore response body during WebSocket handshake (#9418)
waj Jun 5, 2020
b8ac9e1
specify pkg_config name for libyaml (#9426)
jhass Jun 5, 2020
3b268f0
Add support for Path pattern to Dir.glob (#9420)
straight-shoota Jun 5, 2020
ab75612
Compiler: fix `Program#nilable?` to consider union types (#9417)
asterite Jun 5, 2020
18758d5
Use `Process.quote` for `crystal env` output (#9428)
makenowjust Jun 5, 2020
c4b87dc
Allow executing OpAssign (+=, ||=, etc.) inside macros (#9409)
asterite Jun 5, 2020
0d4130e
Specify pkgconfig name for libxml2 (#9436)
Blacksmoke16 Jun 8, 2020
c5b34ae
Make YAML specs robust against libyaml 0.2.5 (#9427)
jhass Jun 8, 2020
c01184e
Compiler: don't duplicate instance var in inherited generic type (#9433)
asterite Jun 8, 2020
1af66b9
Compiler: preserve all union types in `as?` (#9435)
asterite Jun 8, 2020
9057e8d
Make IOBackend formatter a named argument (#9434)
Jun 8, 2020
ce1b36c
Update distribution-scripts (#9446)
Jun 9, 2020
3c48f31
Release 0.35.0 (#9317)
Jun 9, 2020
452fee0
Set VERSION to 0.35.1-dev (#9455)
Jun 10, 2020
5391754
Revert Hash#each restriction added in #8887 (#9456)
Jun 10, 2020
d08b646
Parser: fix parsing of `{foo: X, typeof: Y}` type (#9453)
makenowjust Jun 10, 2020
3a4be65
Parser: fix parsing of proc in hash `of` key type (#9458)
makenowjust Jun 11, 2020
224e41b
Use less strict cipher compatibility for OpenSSL client context (#9459)
straight-shoota Jun 12, 2020
5c68a02
Compiler: show warnings even if there are errors (#9461)
asterite Jun 12, 2020
79f3022
Fix Log.context.set docs for hash based data (#9470)
Jun 13, 2020
68f0f38
Remove trailing whitespace in etc/lldb/crystal_formatters.py (#9482)
makenowjust Jun 15, 2020
0e2a0f4
Restore debug level information in specs to fix 32 bits builds (#9466)
Jun 16, 2020
c41640f
Revert IO#write changes in 0.35.0 and let it return Nil (#9469)
Jun 16, 2020
9dffad3
Wrap request handler in `Log.with_context` (#9494)
Blacksmoke16 Jun 17, 2020
01dafa3
Fix Digest::Base block argument type restrictions (#9500)
straight-shoota Jun 18, 2020
5999ae2
Release 0.35.1 (#9503)
Jun 19, 2020
b52e125
Win CI: Avoid looking for globally installed libs (#9507)
oprypin Jun 19, 2020
1b1382c
Remove Travis IRC notifications (#9513)
jhass Jun 19, 2020
02a2e69
Update CI to use 0.35.1 (#9512)
Jun 20, 2020
ecea8f9
Remove unused assignment of `here` (#9468)
makenowjust Jun 22, 2020
75ab8db
Document how to generate the SNAPCRAFT_TOKEN (#9515)
Jun 22, 2020
3cdb9a9
Fix VaList and disable va_arg for AArch64 (#9422)
jhass Jun 22, 2020
224ba61
Fix bug with passing many args then a struct in Win64 C lib ABI (#9520)
oprypin Jun 22, 2020
bab17be
GitHub Actions (#9514)
waj Jun 22, 2020
560581b
Fix C ABI for AArch64 (#9430)
jhass Jun 22, 2020
b0b891a
Add a note regarding Log.setup (#9497)
caspiano Jun 22, 2020
71b97fb
Update installation link in CONTRIBUTING.md (#9448)
jkthorne Jun 22, 2020
af2a7c1
Prevent recursive call in bin/crystal wrapper (#9505)
jhass Jun 22, 2020
6768950
Extract helper methods in call_error.cr (#9376)
straight-shoota Jun 22, 2020
778ffac
Use function attribute "frame-pointer" (#9361)
kubo39 Jun 22, 2020
8fd246c
Add Crystal::Path#name_size implementation (#9380)
straight-shoota Jun 22, 2020
6492360
Make specs pass in non-IPv6 environments (#9438)
jhass Jun 22, 2020
956f401
Win CI: Fix and enable compiler specs (#9348)
oprypin Jun 23, 2020
e75e429
Fix type of HTTP::Server::Response#closed? to Bool (#9489)
straight-shoota Jun 23, 2020
8b6e62e
Drop deprecated CRC32, Adler32 top-level (#9530)
Jun 23, 2020
4d7e585
Drop deprecated Flate, Gzip, Zip, Zlib top-level (#9529)
Jun 23, 2020
0618737
Makefile: support changing the current crystal via env var and argume…
Jun 23, 2020
4482942
Fix `CRYSTAL_OPTS` parsing. Add `Process.parse_arguments` (#9518)
makenowjust Jun 23, 2020
19c0adb
Drop deprecated with_color top-level method (#9531)
Jun 23, 2020
476486e
Fix OptionParser to handle sub-commands with hyphen (#9465)
erdnaxeli Jun 23, 2020
bb233eb
Fix Log docs (#9559)
jjlorenzo Jun 29, 2020
c608b03
Update YAML::Field(converter) argument docs (#9557)
dscottboggs Jun 29, 2020
4f4ec97
Add `dup` to BitArray (#9550)
andremedeiros Jun 29, 2020
9d15c53
Remove Reference to `Kernel`. (#9549)
toddsundsted Jun 29, 2020
56ab086
Disable LLVM Global Isel (#9401)
jhass Jun 29, 2020
b32d3b4
Compiler: add a few missing `expanded.transform self` (#9506)
asterite Jun 29, 2020
489251c
Make `Socket::IpAddress` a bit more type-friendly (#9528)
asterite Jun 30, 2020
5564c06
Enable newly passing special var specs (#9560)
oprypin Jun 30, 2020
8219529
Channel#close returns boolean (#9443)
waj Jun 30, 2020
ccab86d
Use unchecked arithmetics in `Int#times` (#9511)
waj Jun 30, 2020
aad908e
Delete existing object file if bc file changes (#9558)
waj Jun 30, 2020
e04f508
Fix build on llvm 6.0 (#9562)
Jul 1, 2020
2f8092c
Allow HTTP::Client to work with any IO (#9543)
waj Jul 1, 2020
cdb4b31
Port to NetBSD (#9360)
alarixnia Jul 2, 2020
586d7c3
Print original exception after failing to raise it (#9220)
jhass Jul 2, 2020
3857fbb
Fix: `Socket#accept` obeys `read_timeout` (#9538)
waj Jul 3, 2020
794a98a
Compiler: implement autocasting in a better way (#9501)
asterite Jul 3, 2020
e7db73f
Reject annotations on ivars defined in base class (#9502)
waj Jul 6, 2020
0929912
Make specs pending instead of failing in no multicast environments (#…
jhass Jul 6, 2020
13c7934
AArch64 CI (#9508)
jhass Jul 6, 2020
5b12be9
Logging dispatcher (#9432)
waj Jul 6, 2020
afc214d
Disable aarch64 jobs on forks (#9582)
waj Jul 8, 2020
3df23bd
Hide Channel internal implementation details (#9564)
j8r Jul 9, 2020
ffed6d2
Array rotate optimization (#8516)
jkthorne Jul 10, 2020
4026318
Use content instead of value when inspect XML::Attribute (#9592)
asterite Jul 10, 2020
67b24ec
Use 'brew bundle' to install macOS dependencies in CI (#9609)
waj Jul 15, 2020
38e1cd2
String: don't materialize Regex match[0] if not needed (#9615)
asterite Jul 17, 2020
7580060
HTTP::Params: `#[]=` replaces all values. (#9605)
asterite Jul 17, 2020
f2b2330
Compiler: try literal type in autocast first (#9610)
asterite Jul 17, 2020
b9b1e4c
Fix HTTP::FormData.parse documentation (#9612)
RX14 Jul 19, 2020
2f0d1d0
Add various `String#delete_at` methods (#9398)
asterite Jul 19, 2020
64ff87f
OptionParser: don't call handler if value is given to none value hand…
makenowjust Jul 21, 2020
b55cbda
Compiler: consider `select` as an openning keyword in macros (#9624)
asterite Jul 21, 2020
eb46097
Replace "whitelisting" with "filtering" (#9627)
asterite Jul 21, 2020
884bac6
Check abstract def implementations with splats, default values and ke…
waj Jul 22, 2020
52bca24
Fix ASTNode#to_s for parenthesized expression in block (#9629)
makenowjust Jul 24, 2020
7d13f68
Allow overriding CRYSTAL_PATH in the wrapper script (#9632)
Jul 24, 2020
9041779
Fix misspelling of Japanese words in spec (#9636)
kubo Jul 28, 2020
72b50e8
Remove unnecessary fallback 'def ==(other)' (#9571)
makenowjust Jul 28, 2020
fd5e53f
Fix typos (#9638)
m-o-e Jul 28, 2020
0bf1bcd
Delay setup of HTTP::CompressHandler until content is written (#9625)
waj Jul 29, 2020
a119061
Run `brew update --preinstall` before installing (#9642)
waj Jul 30, 2020
bbcb615
Fix typo in Nagle’s algorithm name (#9561)
mgomes Jul 30, 2020
8de7f2d
Cleanup YAML/JSON Any#dig methods (#9415)
j8r Jul 30, 2020
4847a14
Print a message pointing to the online playground if compiled without…
deiv Jul 30, 2020
7e80d23
Attach doc comment to annotation in macro expansion (#9630)
makenowjust Jul 30, 2020
6251604
Raise if passing null Pointer to String
jgaskins Aug 3, 2020
0c53ea2
Raise ArgumentError and improve error message
jgaskins Aug 3, 2020
1637331
Pass through formatter
jgaskins Aug 3, 2020
4853a7f
Drop deprecated JSON.mapping (#9527)
Aug 3, 2020
7662698
Drop deprecated YAML.mapping (#9526)
Aug 3, 2020
cb7b030
Drop deprecated logger (#9525)
Aug 3, 2020
1a85151
Check abstract def implementations with double splats (#9633)
waj Aug 3, 2020
d9fbdd0
Add specs for String.new(Pointer)
jgaskins Aug 5, 2020
b52c610
Fetch git config correctly (#9640)
dorianmariecom Aug 5, 2020
b4659a1
Update distribution-scripts and publish nightly packages to bintray (…
Aug 6, 2020
afcb3f4
Add timestamp as an argument in Log::Entry initializer (#9570)
Sija Aug 13, 2020
7d2b41c
Add HTTP::Cookie::SameSite::None (#9262)
j8r Aug 13, 2020
49dec67
`def_equals` compare first by reference (#9650)
waj Aug 19, 2020
d5d79dd
HTTP::StaticFileHandler serve pre-gzipped content (#9626)
waj Aug 19, 2020
007dcfc
force-peer: VerifyMode::FAIL_IF_NO_PEER_CERT is only valid when used …
PhilAtWysdom Aug 19, 2020
203de4e
Parser: fix `a-b -c` incorrectly parsed as `a - (b - c)` (#9652)
asterite Aug 24, 2020
f441298
Fix String#rindex default offset for matching empty regex correctly (…
makenowjust Aug 24, 2020
b2b4a8b
Marks else branch of exhaustive case as unreachable (#9659)
Sija Aug 24, 2020
0be0505
Always raise ArgumentError with null pointer
bcardiff Aug 28, 2020
8530025
Compiler: make inherited hook work through generic instances (#9701)
asterite Aug 30, 2020
79ded4a
Disallow keywords as block argument name (#9704)
asterite Aug 30, 2020
c928cdb
Fix `String#index` not working well for broken UTF-8 sequences (#9713)
asterite Aug 31, 2020
2cb80ce
fix spelling mistake in http/server.cr (#9717)
Aug 31, 2020
c5574de
Raise if passing null Pointer to String (#9653)
Aug 31, 2020
0a62869
make __crystal_raise_overflow error more clear (#9686)
Aug 31, 2020
d918fc0
Complex: unary plus returns `self` (#9719)
asterite Sep 1, 2020
208140f
Parser: fix `def self./` and `def self.%` (#9721)
asterite Sep 2, 2020
5c536e7
MachO: Handle missing LC_UUID (#9706)
Sep 3, 2020
03259ea
Bug/formatter newline after comment before end (#9722)
asterite Sep 4, 2020
c11be8f
Compiler: don't form a closure on `typeof(@ivar)` (#9723)
asterite Sep 4, 2020
1ef9c84
Encoding: remove unnecessary and wrong optimization (#9724)
asterite Sep 4, 2020
dfbd6af
Fix sprintf for zero left padding a negative number (#9725)
asterite Sep 4, 2020
634af9f
HTTP::Server: don't override content-lenght if already set (#9726)
asterite Sep 4, 2020
e6498c4
Remove Enumerable#grep (#9711)
j8r Sep 4, 2020
52c750e
Parser: apply string pieces combination even if heredoc has no indent…
makenowjust Sep 5, 2020
0c926c0
Enable large-file support on i386-linux-gnu (#9478)
kubo Sep 10, 2020
4e34ca1
Formatter: correctly format named arguments like `foo:bar` (#9740)
asterite Sep 11, 2020
d6db9f0
Initial nix development environment. Use Nix for OSX CI instead of ho…
Sep 17, 2020
135e9fb
Disable specs added in #9724 on windows (#9758)
Sep 18, 2020
400e925
CI: Disable darwin ci on CircleCI (#9763)
Sep 18, 2020
d9b757a
Add HTTP::Client logging and basic instrumentation (#9756)
Sep 25, 2020
c095449
Detect failures in Nix build environment (#9776)
Sep 29, 2020
e64e872
Fix bug for c structs assigned to a type (#9743)
matthewmcgarvey Sep 29, 2020
4c72941
Fix example in the doc of `Crystal.main`. (#9736)
hugopl Sep 29, 2020
31be12b
Drop RemoteAddressType private alias (#9777)
Sep 29, 2020
f095adc
Formatter: handle comment before do in a separate line (#9762)
asterite Sep 29, 2020
d8baec4
Add documentation for HTTP::WebSocket (#9761)
Sep 29, 2020
bdbd386
Codegen: promote C variadic args as needed (#9747)
asterite Sep 29, 2020
5d1a722
Fix formatting issue (#9778)
Sep 29, 2020
b34dd43
Update-distribution scripts (#9710)
Sep 29, 2020
d97fe3f
YAML: correctly serialize infinity and NaN (#9780)
asterite Sep 30, 2020
670bf33
Fix overflows in md5 and sha1 (#9781)
Sep 30, 2020
aed3d6f
Windows: pass a flag to allow creating symlinks without admin rights …
oprypin Sep 30, 2020
d509f8e
Fix `Process.find_executable` once and for all (#9365)
oprypin Oct 1, 2020
f94e5f7
Typo fixed in example (#9786)
philipp-classen Oct 2, 2020
5be111a
Fix `Iterator#cons_pair` return type (#9788)
asterite Oct 3, 2020
719d314
Make `**` be right associative (#9684)
asterite Oct 5, 2020
5251f2a
Codegen: don't use init check for consts that are declared before rea…
asterite Oct 6, 2020
a3f9182
Use Dwarf information on Exception::CallStack.print_frame (#9792)
Oct 7, 2020
8c182b8
Allow -Dgc_none to "work" with weak_ref (#9806)
Oct 7, 2020
0fa9550
Make abstract def return type warning an error (#9810)
Oct 9, 2020
0e53f6e
Force secure renegotiation on server (#9815)
Oct 16, 2020
f78efd9
Reduce redundant newlines at end of `begin ... end`
makenowjust Sep 11, 2020
1468987
Update src/compiler/crystal/tools/formatter.cr
asterite Sep 11, 2020
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
  •  
  •  
  •  
85 changes: 72 additions & 13 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
- brew-cache-v1
- checkout
- run: bin/ci prepare_system
- run: echo 'export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/openssl/lib/pkgconfig"' >> $BASH_ENV
- run: echo 'export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/openssl@1.1/lib/pkgconfig"' >> $BASH_ENV
- run: echo 'export CURRENT_TAG="$CIRCLE_TAG"' >> $BASH_ENV
- run: bin/ci prepare_build
- run: bin/ci build
Expand Down Expand Up @@ -172,7 +172,7 @@ jobs:
- run: |
git clone https://github.com/crystal-lang/distribution-scripts.git ~/distribution-scripts
cd ~/distribution-scripts
git checkout cfe843ff938697174afea976f4499fef806b5286
git checkout e1704da2a215264ea8e101eb15d4ec1baae98222
# persist relevant information for build process
- run: |
cd ~/distribution-scripts
Expand All @@ -183,7 +183,7 @@ jobs:
echo "export CRYSTAL_SHA1=$CIRCLE_SHA1" >> build.env

# Which previous version use
export PREVIOUS_CRYSTAL_BASE_URL="https://github.com/crystal-lang/crystal/releases/download/0.34.0/crystal-0.34.0-1"
export PREVIOUS_CRYSTAL_BASE_URL="https://github.com/crystal-lang/crystal/releases/download/0.35.1/crystal-0.35.1-1"
echo "export PREVIOUS_CRYSTAL_RELEASE_LINUX64_TARGZ=${PREVIOUS_CRYSTAL_BASE_URL}-linux-x86_64.tar.gz" >> build.env
echo "export PREVIOUS_CRYSTAL_RELEASE_LINUX32_TARGZ=${PREVIOUS_CRYSTAL_BASE_URL}-linux-i686.tar.gz" >> build.env
echo "export PREVIOUS_CRYSTAL_RELEASE_DARWIN_TARGZ=${PREVIOUS_CRYSTAL_BASE_URL}-darwin-x86_64.tar.gz" >> build.env
Expand Down Expand Up @@ -225,12 +225,17 @@ jobs:
steps:
- attach_workspace:
at: /tmp/workspace
- checkout
- run: |
# We need CRYSTAL_VERSION in prepare_nightly to use src/VERSION so we publish them as x.y.z-dev in apt/rpm
#
# How to brand it
echo "export CRYSTAL_VERSION=$(cat src/VERSION)" >> /tmp/workspace/distribution-scripts/build.env
#
# TODO: We might want to do that on docker images also to support updates on multiple development versions the same date.
- run: |
cd /tmp/workspace/distribution-scripts

# How to brand it
export VERSION=nightly-$(date '+%Y%m%d')
echo "export CRYSTAL_VERSION=$VERSION" >> build.env
echo "export DOCKER_TAG=nightly" >> build.env

# Build from working directory (needed for omnibus and when version does not match branch/tag)
Expand Down Expand Up @@ -358,6 +363,24 @@ jobs:
paths:
- build

dist_bintray_nightly:
machine: true
steps:
- attach_workspace:
at: /tmp/workspace
- run:
no_output_timeout: 20m
command: |
cd /tmp/workspace/distribution-scripts
source build.env
cd bintray
./publish-nightly.sh $CRYSTAL_VERSION $(date '+%Y-%m-%d') \
/tmp/workspace/build/crystal-*-linux-x86_64.tar.gz \
/tmp/workspace/build/crystal-*-linux-i686.tar.gz
- store_artifacts:
path: /tmp/workspace/distribution-scripts/bintray/build/unsigned
destination: unsigned

dist_docker:
machine: true
steps:
Expand Down Expand Up @@ -434,6 +457,7 @@ jobs:
- attach_workspace:
at: /tmp/workspace
- run:
# $SNAPCRAFT_TOKEN is generated using `snapcraft export-login --snaps crystal --channels edge,edge/* -`
command: |
cd /tmp/workspace/distribution-scripts
source build.env
Expand Down Expand Up @@ -521,13 +545,14 @@ workflows:
branches:
ignore:
- /release\/.+/
- /package\/.+/
- /.*\bci\b.*/
- test_linux32_std:
filters: *unless_maintenance
- test_alpine:
filters: *unless_maintenance
- test_darwin:
filters: *unless_maintenance
# - test_darwin:
# filters: *unless_maintenance
- test_preview_mt:
filters: *unless_maintenance
- check_format:
Expand All @@ -552,8 +577,8 @@ workflows:
filters: *per_tag
- test_alpine:
filters: *per_tag
- test_darwin:
filters: *per_tag
# - test_darwin:
# filters: *per_tag
- test_preview_mt:
filters: *per_tag
- check_format:
Expand Down Expand Up @@ -627,7 +652,7 @@ workflows:
- test_linux
- test_linux32_std
- test_alpine
- test_darwin
# - test_darwin
- test_preview_mt
- check_format
- prepare_common
Expand All @@ -643,6 +668,10 @@ workflows:
- dist_darwin:
requires:
- prepare_nightly
- dist_bintray_nightly:
requires:
- dist_linux
- dist_linux32
- dist_docker:
requires:
- dist_linux
Expand Down Expand Up @@ -687,8 +716,8 @@ workflows:
filters: *maintenance
- test_alpine:
filters: *maintenance
- test_darwin:
filters: *maintenance
# - test_darwin:
# filters: *maintenance
- test_preview_mt:
filters: *maintenance
- check_format:
Expand Down Expand Up @@ -751,3 +780,33 @@ workflows:
- dist_darwin
- dist_snap
- dist_docs

package_build:
jobs:
- prepare_common:
filters: &package
branches:
only:
- /package\/.+/
- prepare_maintenance:
filters: *package
requires:
- prepare_common
- dist_linux:
filters: *package
requires:
- prepare_maintenance
- dist_linux32:
filters: *package
requires:
- prepare_maintenance
- dist_darwin:
filters: *package
requires:
- prepare_maintenance
- dist_artifacts:
filters: *package
requires:
- dist_linux
- dist_linux32
- dist_darwin
107 changes: 107 additions & 0 deletions .github/workflows/aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: AArch64 CI

on: [push, pull_request]

jobs:
musl-build:
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Build Crystal
uses: docker://jhass/crystal:0.35.0-alpine-build
with:
args: make crystal
- name: Upload Crystal executable
uses: actions/upload-artifact@v1
with:
name: crystal-aarch64-musl
path: .build/crystal
musl-test-stdlib:
needs: musl-build
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Download Crystal executable
uses: actions/download-artifact@v1
with:
name: crystal-aarch64-musl
path: .build/
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:0.35.0-alpine-build
with:
args: make std_spec
musl-test-compiler:
needs: musl-build
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Download Crystal executable
uses: actions/download-artifact@v1
with:
name: crystal-aarch64-musl
path: .build/
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:0.35.0-alpine-build
with:
args: make compiler_spec
gnu-build:
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Build Crystal
uses: docker://jhass/crystal:0.35.0-build
with:
args: make crystal
- name: Upload Crystal executable
uses: actions/upload-artifact@v1
with:
name: crystal-aarch64-gnu
path: .build/crystal
gnu-test-stdlib:
needs: gnu-build
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Download Crystal executable
uses: actions/download-artifact@v1
with:
name: crystal-aarch64-gnu
path: .build/
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:0.35.0-build
with:
args: make std_spec
gnu-test-compiler:
needs: gnu-build
runs-on: [linux, ARM64]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v2
- name: Download Crystal executable
uses: actions/download-artifact@v1
with:
name: crystal-aarch64-gnu
path: .build/
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:0.35.0-build
with:
args: make compiler_spec
101 changes: 101 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Linux CI

on: [push, pull_request]

env:
TRAVIS_OS_NAME: linux
SPEC_SPLIT_DOTS: 160

jobs:
test_linux:
env:
ARCH: x86_64
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v2

- name: Prepare System
run: bin/ci prepare_system

- name: Prepare Build
run: bin/ci prepare_build

- name: Test
run: bin/ci build

test_linux_32:
env:
ARCH: i386
ARCH_CMD: linux32
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v2

- name: Prepare System
run: bin/ci prepare_system

- name: Prepare Build
run: bin/ci prepare_build

- name: Test
run: bin/ci with_build_env 'make std_spec threads=1'

test_alpine:
env:
ARCH: x86_64-musl
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v2

- name: Prepare System
run: bin/ci prepare_system

- name: Prepare Build
run: bin/ci prepare_build

- name: Test
run: bin/ci build

test_preview_mt:
env:
ARCH: x86_64
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v2

- name: Prepare System
run: bin/ci prepare_system

- name: Prepare Build
run: bin/ci prepare_build

- name: Make Crystal
run: bin/ci with_build_env 'make crystal'

- name: Test
run: bin/ci with_build_env 'CRYSTAL_WORKERS=4 make std_spec threads=1 FLAGS="-D preview_mt"'

check_format:
env:
ARCH: x86_64
ARCH_CMD: linux64
runs-on: ubuntu-latest
steps:
- name: Download Crystal source
uses: actions/checkout@v2

- name: Prepare System
run: bin/ci prepare_system

- name: Prepare Build
run: bin/ci prepare_build

- name: Check Format
run: bin/ci format
Loading