veelenga / awesome-crystal

:gem: A collection of awesome Crystal libraries, tools, frameworks and software
https://awesomelists.top/#/veelenga/awesome-crystal
MIT License
3.36k stars 311 forks source link

Include CI badges for each shard #412

Closed Blacksmoke16 closed 4 years ago

Blacksmoke16 commented 5 years ago

This would allow users at a glance to see the statues of shards. It would also give indications of shards that need reviewed. Such as them being now unmaintained or just need someone to update for latest breaking changes from a crystal release.

vladfaust commented 5 years ago

I thought of that. Standard badges are too big and disturbing for such a long list. I tried once to see how would it look like and it was bad, like a Christmas tree. Only if we could think of tiny standardized, one-char-size icons...

veelenga commented 5 years ago

There are a lot of links on the page, each link has a badge, so when you open the page it makes tons of GET requests to CIs. Also, badges are loading only when the requests are finished so the page starts hiccupping.

Back in a day, I made a branch that does exactly that and the list became painfully unusable.

@Blacksmoke16 I do like the idea of some automated reviews per month. However, I don't have an interest in working on it right now.

Blacksmoke16 commented 5 years ago

Hmm yea good point. Only other thought would be setting up some travis job for once a month that checks status of each via API. Would prob be doable.

Blacksmoke16 commented 5 years ago
Long JSON ```JSON { "github": { "travis": [ "spider-gazelle/bisect", "elorest/bitfields", "philnash/crotp", "MakeNowJust/crystal-diff", "unn4m3d/crystaledge", "TobiasGSmollett/crystalg", "jtomschroeder/crystalline", "drujensen/delimiter_tree", "tcrouch/edits.cr", "mettuaditya/graphlb", "TobiasGSmollett/hash_ring", "mamantoha/haversine", "mamantoha/kd_tree", "Sija/ksuid.cr", "mccallofthewild/markov", "tcrouch/multiset.cr", "kuende/murmur3", "obsidian/oak", "luislavena/radix", "johnjansen/ternary_search_tree", "blocknotes/kemal-rest-api", "TamasSzekeres/asound-cr", "TamasSzekeres/cairo-cr", "vonKingsley/crass", "maiha/crt.cr", "ruivieira/crystal-gsl", "mamantoha/crystal-hunspell", "blocknotes/curl-crystal", "jessedoyle/duktape.cr", "Sija/gphoto2.cr", "olbat/icu.cr", "splattael/libnotify.cr", "maiha/pcap.cr", "chris-huxtable/pledge.cr", "mjago/soundfile", "spider-gazelle/ssh2.cr", "chris-huxtable/syslog.cr", "andrewsuzuki/termbox-crystal", "TamasSzekeres/x11-cr", "woodruffw/x_do.cr", "crystal-community/bloom_filter", "marceloboeira/bojack", "samueleaton/cache-hash", "comandeo/crystal-memcached", "CodeSteak/Nuummite", "jwaldrip/admiral.cr", "at-grandpa/clim", "mrrooijen/commander", "f/completion", "TPei/progress_bar.cr", "epoch/tallboy", "benoist/terminal_table.cr", "veelenga/ameba", "Groogy/trashman", "gdotdesign/cr-dotenv", "philnash/envyable.cr", "luckyframework/habitat", "Sija/base62.cr", "crystal-money/money", "SuperPaintman/ms", "vladfaust/time_format.cr", "izniburak/turkish-number", "blocknotes/wkhtmltopdf-crystal", "spider-gazelle/bindata", "chris-huxtable/config.cr", "c910335/crinder", "chris-huxtable/front_matter.cr", "delef/geoip2.cr", "impatienttraveller/json-tools", "delef/maxminddb.cr", "crystal-community/toml.cr", "askn/faker", "splattael/hashids.cr", "crystal-lang/crystal-db", "puppetpies/crystal-monetdb-libmapi", "crystal-lang/crystal-mysql", "will/crystal-pg", "stefanwille/crystal-redis", "kingsleyh/crystal-rethinkdb", "crystal-lang/crystal-sqlite3", "measurechina/eventql-crystal", "crystal-community/leveldb", "ambercommunity/mongo.cr", "maiha/rocksdb.cr", "vladfaust/tarantool-crystal", "juanedi/micrate", "vladfaust/migrate.cr", "aisrael/migro", "f/guardian", "faustinoaq/kemal-watcher", "samueleaton/sentry", "faustinoaq/sentry-run", "faustinoaq/watcher", "luckyframework/carbon", "arcage/crystal-email", "tijn/devmail", "dlanileonardo/sendgrid.cr", "marciogm/asdf-crystal", "pine/crenv", "maiha/rcm.cr", "nbw/battlesnake_crystal", "gdonald/blackjack-cr", "petoem/breakout.cr", "johnjansen/clamp", "codenoid/crystal-mysql-crud-example", "crystal-community/crystal-patterns", "vladfaust/crystalworld", "exercism/crystal", "codenoid/jihantoro-cr-mysql", "codenoid/jihantoro.sd", "sdogruyol/kemal-chat", "cagataycali/kemal-heroku-example", "codenoid/kemal-mysql-blog", "f/kemal-react-chat", "ChangJoo-Park/kemal-vue-chat", "jasonl99/card_game", "jwoertink/medley", "Angarsk8/realtime-todo-app", "codingphasedotcom/rocky", "maiha/try.cr", "rodrigopinto/can_use", "metaware/flipper", "funk-yourself/crystal-di", "spalger/crystal-mime", "creadone/device_detector", "crystal-loot/exception_page", "ziprandom/graphql-crystal", "jwoertink/kave", "akwiatkowski/kemal-auth-token", "puppetpies/kemal-monetdb", "kemalcr/kemal-session", "jwaldrip/mime-types.cr", "msa7/multi_auth", "ilanusse/praetorian", "SuperPaintman/request-id", "SuperPaintman/response-time", "kemalcr/spec-kemal", "watzon/tourmaline", "oprypin/crsfml", "oprypin/crystal-chipmunk", "ddfreyne/glove", "Papierkorb/qt5.cr", "westonganger/form_builder.cr", "crystal-lang/html_builder", "madeindjs/Crystagiri", "blocknotes/gumbo-crystal", "maiha/hq.cr", "kostya/myhtml", "crystal-community/cossack", "mamantoha/crest", "porras/crul", "sdogruyol/cryload", "EvanHahn/crystal-helmet", "vladfaust/http-multiserver.cr", "vladfaust/http-params-serializable", "rogeriozambon/http-protection", "ysbaddaden/http2", "danielpclark/keyer_cr", "watzon/ngrok.cr", "vladfaust/params.cr", "blocknotes/magickwand-crystal", "stumpycr/stumpy_png", "ziprandom/cltk", "unn4m3d/cppize", "rhysd/Crisp", "mint-lang/mint", "arcage/crystal-logreader", "TobiasGSmollett/fluent-logger-crystal", "instana/crystal-sensor", "miketheman/statsd.cr", "comandeo/syslog.cr", "watzon/cadmium", "NeuraLegion/crystal-fann", "NeuraLegion/shainet", "fazibear/tensorflow.cr", "huacnlee/html-pipeline", "veelenga/aasm.cr", "Sija/any_hash.cr", "chris-huxtable/atomic_write.cr", "vnbrs/burocracia.cr", "vladfaust/callbacks.cr", "TPei/circuit_breaker", "elorest/compiled_license", "isaced/crystal-web-framework-stars", "dhruvrajvanshi/crz", "veelenga/emoji.cr", "0x73/hoop", "vladfaust/i18n.cr", "lucaong/immutable", "phoffer/inflector.cr", "lirith-engine/lirith", "akiicat/m3u8", "danielwestendorf/message_verifier.cr", "isaced/pangu.cr", "Sija/retriable.cr", "sdogruyol/tren", "SuperPaintman/ulid", "jeromegn/bson.cr", "Meoowww/Crirc", "foi/crystal-json-socket", "spider-gazelle/crystal-snmp", "RX14/fast_irc.cr", "anicholson/gopher.cr", "crystal-community/jwt", "crystal-community/msgpack-crystal", "wontruefree/socks", "Sija/ipaddress.cr", "anykeyh/clear", "amberframework/granite", "imdrasil/jennifer.cr", "onyxframework/sql", "luckyframework/record", "maiha/redis-tsv.cr", "spider-gazelle/rethinkdb-orm", "topaz-crystal/topaz", "elorest/crelease", "anykeyh/await_async", "dhruvrajvanshi/crystal-futures", "tbrand/neph", "spider-gazelle/promise", "TechMagister/bindgencr", "crystal-lang/crystal_lib", "jwoertink/fez", "kemalyst/kemalyst-generator", "olbat/libgen", "bmulvihill/dispatch", "mperham/sidekiq.cr", "jreinert/crouter", "obsidian/orion", "tbrand/router.cr", "kostya/cron_scheduler", "spider-gazelle/tasker", "konovod/linalg", "RX14/predict.cr", "imdrasil/hermes.cr", "izniburak/query-builder", "waterlink/query.cr", "Ragmaanir/soegen", "TPei/crystal_openfaas/", "schovi/baked_file_system", "crystal-community/hardware", "axvm/cake", "imdrasil/sam.cr", "MakeNowJust/crustache", "jeromegn/kilt", "jeromegn/slang", "f/temel", "emancu/crotest", "Groogy/crystal-clear", "luckyframework/lucky_flow", "c910335/mass-spec", "Ragmaanir/microtest", "ysbaddaden/minitest.cr", "waterlink/mocks.cr", "crystal-community/timecop.cr", "bwilczek/webdriver_pump", "manastech/webmock.cr", "beanieboi/aws-signer.cr", "taylorfinnell/awscr-s3", "taylorfinnell/awscr-signer", "gewo/bugsnag.cr", "sb89/crystal-darksky", "felipeelias/crystal-github", "barisbalic/crystal-monzo", "sb89/crystal-swapi", "manastech/crystal_slack", "meew0/discordcr", "mccallofthewild/gdax", "fridgerator/google_maps_api", "Gangwolf/hncr", "petoem/mixpanel-crystal", "osfx/open_exchange_rates", "oz/pinboard.cr", "sija/raven.cr", "DougEverly/slack.cr", "sferik/twitter-crystal", "neovintage/accord", "blacksmoke16/CrSerializer", "izniburak/denetmen", "vladfaust/validations.cr", "amberframework/amber", "blacksmoke16/athena", "kemalcr/kemal", "jasonl99/lattice-core", "luckyframework/lucky", "onyxframework/rest", "samueleaton/raze", "spider-gazelle/spider-gazelle", "sdogruyol/fast-http-server", "SuperPaintman/serve", "elorest/cry", "crystallabs/fluence", "crystal-community/icr", "thewalkingtoast/mpngin", "SuperPaintman/crystal-ctags", "bitfex/capistrano-kemal", "vjdhama/crystal-cookbook", "veelenga/play-crystal.el", "crystal-lang-tools/scry", "rhysd/vim-crystal", "crystal-lang-tools/vscode-crystal-lang" ], "circle": [ "SushiChain/SushiChain", "mosop/optarg", "icyleaf/totem", "TechMagister/couchdb.cr", "icyleaf/halite", "geppetto-apps/crow", "DanSnow/crystal-binary_parser", "icyleaf/wasp", "robacarp/mosquito/", "mosop/teeplate", "hanneskaeufler/crytic", "icyleaf/gitlab.cr" ], "gitlab-ci": [], "both": [ "mosop/cli", "straight-shoota/sass.cr", "drhuffman12/ai4cr", "icyleaf/markd", "jimm/crystal_port_midi", "crystal-lang/shards", "hugoabonizio/schedule.cr", "sam0x17/gcf.cr", "straight-shoota/crinja", "Val/crun" ], "none": [ "chenkovsky/aho_corasick", "abvdasker/crystal-linked-list", "ysbaddaden/clang.cr", "ysbaddaden/posix", "j8r/clicr", "j8r/cride", "dorkrawk/moola", "colstrom/zq", "aca-labs/docker-crystal", "diggersheep/warden", "codenoid/chuck-norris-holy-quotes", "oprypin/crsfml-examples", "kostya/crystal-benchmarks-game", "askn/crystal-by-example", "Demonstrandum/Crystal-Maze", "phoffer/crystalized_ruby", "lbguilherme/os-crystal", "gdotdesign/cr-melon", "ddfreyne/inari", "bararchy/mos_game", "Qwerp-Derp/hedron", "Fusion/libui.cr", "soveran/resp-crystal", "stumpycr/stumpy_gif", "charly-lang", "senselogic/CIBYL", "LinCAS-lang", "myst-lang/", "TheKernelCorp/NuummiteOS", "runic-lang", "guvencenanguvenal/katip", "pbrusco/crystal-learn", "blocknotes/manual-generator", "l3kn/raytracer", "soveran/ohm-crystal", "soveran/stal-crystal", "datanoise/amqp.cr", "soveran/toro", "ddfreyne/rcpu", "anykeyh/crystal-coverage", "timcraft/nexmo-crystal", "hangyas/telegram_bot", "ysbaddaden/prax.cr", "icyleaf/salt", "jhass/DeBot", "omarroth/invidious", "romeroadrian/nes.cr", "bcardiff/crystal-ast-helper", "ruivieira/crystal-base", "Sija/crystal-dash-docset", "papilip/helptransl8", "CorbanR/ansible-crystal", "DFabric/dppm", "dotmilk/emacs-crystal-mode", "juanedi/crystal-spacemacs-layer", "crystal-lang-tools/sublime-crystal", "crystal-lang-tools/Crystal.tmbundle", "MakeNowJust/carcin.vim", "elorest/vim-slang", "g3ortega/vscode-crystal", "crystal-lang-tools/crystal-ide", "veelenga/crystal-zsh" ] }, "gitlab": { "travis": [ "crystallabs/crystime", "Zatherz/cray", ], "circle": [], "gitlab-ci": [ "ezrast/crometheus" ], "both": [], "none": [] } } ```

Some raw data of who is on what. Results not guaranteed as I just was checking for existence of a .travis.yml or .circleci, but is a start.

I guess is how do we want to get the results. Would be nice if travis itself could inject/update the readme with a like ✅ or ❎ based on the output. But id be ok with an array of repos that are not "current" to start.

z64 commented 5 years ago

Just thought of this from our Gitter convo the other week when I came across this Rust awesome list (10k stars) that uses CI badges as described, can check it out for reference:

https://github.com/rust-unofficial/awesome-rust

Blacksmoke16 commented 5 years ago

Neat, can't say I had any trouble loading it, even if was making 500+ requests.

z64 commented 5 years ago

Yeah, I didn't anticipate any performance issues when I originally suggested it - they should all be served quickly from an edge cache. I haven't profiled it to check though.

veelenga commented 5 years ago

I did:

giphy

As you can see I have to wait ~30 sec before page becomes functional.

z64 commented 5 years ago

Hm, not sure then. It loads in a second or two on my mobile device. I have no idea how one would find out why though, mobile devices elude me entirely 😇

Blacksmoke16 commented 5 years ago

Imagine it depends on the phone and whether you're on wifi or cellular. Oh well.

Blacksmoke16 commented 5 years ago

So I been thinking about how to best go about this. @z64/@veelenga I'd like to get your thoughts on an idea I thought of.

Instead of having all the shards directly in the README, use a more configuration based approach, where each shard is defined in some YAML file, like:

shards:
  - owner: blacksmoke16
    name: some_proj
    description: Desc
    category: Networking
    vc: Github
    url: # Optional if it shouldn't link to the vc repo
    ci: Travis
    last_build_date: Some Date # Use the given CI API to get this, can be on a cron in CI.
  - owner: Some Person
    ...

New shards would be added to the array in the YAML file, then the user would run some command that would parse the YAML file, and build out the README based on that data using ECR.

The main benefit of this is that configuration file could also be parsed via CI to "flag" shards that have not been built in a while, as well as automatically making sure shards are in order etc.

If we want to go with some less fancy, I suppose just having some crystal program that can be ran to identify currently unmaintained/don't have scheduled CI setup could be made to at least cleanup the current list. The main challenge would be knowing what CI provider each shard is using.

I'd be happy to mess around with it if something we think would be useful.

veelenga commented 5 years ago

@Blacksmoke16 thanks for looking into it. Your idea is interesting, but I wouldn't rely on users' action to regenerate the markdown. This also can produce some silly discussions in pull requests.

Ideally, i would like to have a thirdparty system, which could periodically parse the Readme (and maybe some yaml file with CI links) and generate reports. That way, the maintainers will need to review the report monthly and decide that something needs to be removed from the list or not.

This approach still implies the extra action for the submitter. He will need to add a CI link to yaml file. If there is none, the system can try to find it looking to popular CI systems (Circle, Travis).

What do you think?

Blacksmoke16 commented 5 years ago

Yea that would work. Currently my plan for that was to just use each CI system's API to lookup each shard. If it 404s, try the next until I resolve one. Doing this I could build out the YAML file locally in order to run that periodic report.

I don't think it's necessary to have them provide a CI link, for new shards it would be easy enough to just go look when they make a PR and add a YAML entry in, just doing that for EVERY shard already in the readme is a bit less feasible.

I'll continue to play with what I got going locally and can post the results here later when I finish building out all the data.

veelenga commented 5 years ago

Sounds good. I was also thinking about CI system as a third party. Be free to post some work in progress so we can discuss it at the early stage. And let me know how I can help

Blacksmoke16 commented 4 years ago

Need to get everything into a better API, but I got some initial stuff working:

https://github.com/Demonstrandum/Crystal-Maze - @Demonstrandum https://github.com/Gangwolf/hncr - @Gangwolf https://github.com/Groogy/trashman - @Groogy https://github.com/Groogy/crystal-clear - @Groogy https://github.com/TheKernelCorp/NuummiteOS - @TheKernelCorp https://github.com/chenkovsky/aho_corasick - @chenkovsky https://github.com/codingphasedotcom/rocky - @codingphasedotcom https://github.com/datanoise/amqp.cr - @datanoise https://github.com/dorkrawk/moola - @dorkrawk https://github.com/dotmilk/emacs-crystal-mode - @dotmilk https://github.com/guvencenanguvenal/katip - @guvencenanguvenal https://github.com/hangyas/telegram_bot - @hangyas https://github.com/jreinert/crouter - @jreinert https://github.com/juanedi/micrate - @juanedi https://github.com/jwaldrip/mime-types.cr - @jwaldrip ~https://github.com/jwoertink/kave - @jwoertink~ https://github.com/jwoertink/medley - @jwoertink ~https://github.com/jwoertink/fez - @jwoertink~ https://github.com/luckyframework/record - @luckyframework https://github.com/madeindjs/Crystagiri - @madeindjs https://github.com/nbw/battlesnake_crystal - @nbw https://github.com/pbrusco/crystal-learn - @pbrusco https://github.com/senselogic/CIBYL - @senselogic ~https://github.com/soveran/ohm-crystal - @soveran~ ~https://github.com/soveran/stal-crystal - @soveran~ ~https://github.com/soveran/resp-crystal - @soveran~ ~https://github.com/soveran/toro - @soveran~ https://github.com/vladfaust/tarantool-crystal - @vladfaust https://github.com/ysbaddaden/clang.cr - @ysbaddaden

So we could give these ones some time to get CI setup, otherwise can probably be removed.

Next step will be using each CI's API to get the last build date (and successful build date)

EDIT: A few more that use gitlab

https://gitlab.com/Zatherz/cray - @Zatherz

veelenga commented 4 years ago

Sounds good @Blacksmoke16. Thanks for your effort

soveran commented 4 years ago

@Blacksmoke16 Thanks for this! I added CI, badge included, to all my projects in the list.

jwoertink commented 4 years ago

I've added a few too. Lots of failing builds! 😂

Blacksmoke16 commented 4 years ago

Alright, I feel pretty good about this list. Refactored some stuff so its quite a bit more reliable. There currently isn't a way to get Github Actions via API, so if one of these is using that, im sorry just let me know and I can just hardcode those repos for now.

No CI

https://github.com/Demonstrandum/Crystal-Maze - @Demonstrandum https://github.com/Gangwolf/hncr - @Gangwolf https://github.com/Groogy/trashman - @Groogy https://github.com/Groogy/crystal-clear - @Groogy https://github.com/MakeNowJust/carcin.vim - @MakeNowJust https://github.com/TheKernelCorp/NuummiteOS - @TheKernelCorp https://github.com/aca-labs/docker-crystal - @aca-labs https://github.com/chenkovsky/aho_corasick - @chenkovsky https://github.com/codingphasedotcom/rocky - @codingphasedotcom https://github.com/datanoise/amqp.cr - @datanoise https://github.com/ddfreyne/inari - @ddfreyne https://github.com/ddfreyne/rcpu - @ddfreyne https://github.com/dorkrawk/moola - @dorkrawk https://github.com/dotmilk/emacs-crystal-mode - @dotmilk https://github.com/guvencenanguvenal/katip - @guvencenanguvenal https://github.com/hangyas/telegram_bot - @hangyas https://github.com/jreinert/crouter - @jreinert https://github.com/juanedi/micrate - @juanedi https://github.com/jwaldrip/mime-types.cr - @jwaldrip https://github.com/jwoertink/medley - @jwoertink https://github.com/lbguilherme/os-crystal - @lbguilherme https://github.com/luckyframework/record - @luckyframework https://github.com/madeindjs/Crystagiri - @madeindjs https://github.com/nbw/battlesnake_crystal - @nbw https://github.com/onyxframework/rest - @onyxframework https://github.com/pbrusco/crystal-learn - @pbrusco https://github.com/petoem/breakout.cr - @petoem https://github.com/samueleaton/raze - @samueleaton https://github.com/senselogic/CIBYL - @senselogic https://github.com/tijn/devmail - @tijn https://github.com/veelenga/crystal-zsh - @veelenga https://github.com/vladfaust/params.cr - @vladfaust https://github.com/vladfaust/tarantool-crystal - @vladfaust https://github.com/watzon/arachnid - @watzon https://github.com/watzon/ngrok.cr - @watzon https://github.com/wontruefree/socks - @wontruefree https://github.com/ysbaddaden/clang.cr - @ysbaddaden

CI but never built

https://github.com/Angarsk8/realtime-todo-app - @Angarsk8 https://github.com/ChangJoo-Park/kemal-vue-chat - @ChangJoo-Park https://github.com/DougEverly/slack.cr - @DougEverly https://github.com/Fusion/libui.cr - @Fusion https://github.com/Papierkorb/qt5.cr - @Papierkorb https://github.com/Qwerp-Derp/hedron - @Qwerp-Derp https://github.com/RX14/predict.cr - @RX14 https://github.com/Sija/crystal-dash-docset - @Sija https://github.com/TechMagister/bindgencr - @TechMagister https://gitlab.com/Zatherz/cray - @Zatherz https://github.com/aisrael/migro - @aisrael https://github.com/akwiatkowski/kemal-auth-token - @akwiatkowski https://github.com/andrewsuzuki/termbox-crystal - @andrewsuzuki https://github.com/anykeyh/crystal-coverage - @anykeyh https://github.com/arcage/crystal-logreader - @arcage https://github.com/arcage/crystal-email - @arcage https://github.com/askn/crystal-by-example - @askn https://github.com/bararchy/mos_game - @bararchy https://github.com/barisbalic/crystal-monzo - @barisbalic https://github.com/bcardiff/crystal-ast-helper - @bcardiff https://github.com/bitfex/capistrano-kemal - @bitfex https://github.com/blocknotes/manual-generator - @blocknotes https://github.com/cagataycali/kemal-heroku-example - @cagataycali https://github.com/codenoid/crystal-mysql-crud-example - @codenoid https://github.com/codenoid/chuck-norris-holy-quotes - @codenoid https://github.com/codenoid/jihantoro-cr-mysql - @codenoid https://github.com/codenoid/jihantoro.sd - @codenoid https://github.com/codenoid/kemal-mysql-blog - @codenoid https://github.com/colstrom/zq - @colstrom https://github.com/crystal-lang-tools/crystal-ide - @crystal-lang-tools https://github.com/crystal-lang-tools/sublime-crystal - @crystal-lang-tools https://github.com/crystal-lang-tools/Crystal.tmbundle - @crystal-lang-tools https://github.com/drujensen/delimiter_tree - @drujensen https://github.com/elorest/bitfields - @elorest https://github.com/elorest/crelease - @elorest https://github.com/elorest/compiled_license - @elorest https://github.com/elorest/vim-slang - @elorest https://github.com/elorest/cry - @elorest https://github.com/f/kemal-react-chat - @f https://github.com/f/completion - @f https://github.com/f/temel - @f https://github.com/f/guardian - @f https://github.com/g3ortega/vscode-crystal - @g3ortega https://github.com/gdotdesign/cr-melon - @gdotdesign https://github.com/instana/crystal-sensor - @instana https://github.com/jasonl99/lattice-core - @jasonl99 https://github.com/jasonl99/card_game - @jasonl99 https://github.com/jhass/DeBot - @jhass https://github.com/juanedi/crystal-spacemacs-layer - @juanedi https://github.com/kemalcr/spec-kemal - @kemalcr https://github.com/kostya/crystal-benchmarks-game - @kostya https://github.com/kostya/cron_scheduler - @kostya https://github.com/kuende/murmur3 - @kuende https://github.com/l3kn/raytracer - @l3kn https://github.com/naqvis/xz.cr - @naqvis https://github.com/naqvis/brotli.cr - @naqvis https://github.com/oprypin/crsfml-examples - @oprypin https://github.com/osfx/open_exchange_rates - @osfx https://github.com/papilip/helptransl8 - @papilip https://github.com/phoffer/crystalized_ruby - @phoffer https://github.com/puppetpies/crystal-monetdb-libamueleaton https://github.com/samueleaton/sentry - @samueleaton https://github.com/sdogruyol/kemal-chat - @sdogruyol https://github.com/sdogruyol/fast-http-server - @sdogruyol https://github.com/spalger/crystal-mime - @spalger https://github.com/stumpycr/stumpy_gif - @stumpycr https://github.com/timcraft/nexmo-crystal - @timcraft https://github.com/vonKingsley/crass - @vonKingsley https://github.com/waterlink/query.cr - @waterlink https://github.com/watzon/cadmium - @watzon https://github.com/ysbaddaden/posix - @ysbaddaden https://github.com/ysbaddaden/prax.cr - @ysbaddadenoadrian https://github.com/ruivieira/crystal-base - @ruivieira https://github.com/samueleaton/cache-hash - @samueleaton https://github.com/samueleaton/sentry - @samueleaton https://github.com/sdogruyol/kemal-chat - @sdogruyol https://github.com/sdogruyol/fast-http-server - @sdogruyol https://github.com/spalger/crystal-mime - @spalger https://github.com/stumpycr/stumpy_gif - @stumpycr https://github.com/timcraft/nexmo-crystal - @timcraft https://github.com/vonKingsley/crass - @vonKingsley https://github.com/waterlink/query.cr - @waterlink https://github.com/watzon/cadmium - @watzon https://github.com/ysbaddaden/posix - @ysbaddaden https://github.com/ysbaddaden/prax.cr - @ysbaddaden

CI but last build was more than 30 days ago

https://github.com/0x73/hoop - @0x73 https://github.com/CodeSteak/Nuummite - @CodeSteak https://github.com/CorbanR/ansible-crystal - @CorbanR https://github.com/DanSnow/crystal-binary_parser - @DanSnow https://github.com/EvanHahn/crystal-helmet - @EvanHahn https://github.com/MakeNowJust/crystal-diff - @MakeNowJust https://github.com/Meoowww/Crirc - @Meoowww https://github.com/RX14/fast_irc.cr - @RX14 https://github.com/SuperPaintman/serve - @SuperPaintman https://github.com/SuperPaintman/crystal-ctags - @SuperPaintman https://github.com/SuperPaintman/ms - @SuperPaintman https://github.com/SuperPaintman/ulid - @SuperPaintman https://github.com/SuperPaintman/request-id - @SuperPaintman https://github.com/SuperPaintman/response-time - @SuperPaintman https://github.com/TPei/progress_bar.cr - @TPei https://github.com/TPei/circuit_breaker - @TPei https://github.com/TamasSzekeres/cairo-cr - @TamasSzekeres https://github.com/TamasSzekeres/asound-cr - @TamasSzekeres https://github.com/TamasSzekeres/x11-cr - @TamasSzekeres https://github.com/TobiasGSmollett/fluent-logger-crystal - @TobiasGSmollett https://github.com/TobiasGSmollett/crystalg - @TobiasGSmollett https://github.com/TobiasGSmollett/hash_ring - @TobiasGSmollett https://github.com/abvdasker/crystal-linked-list - @abvdasker https://github.com/aca-labs/terminimal - @aca-labs https://github.com/akiicat/m3u8 - @akiicat https://github.com/ambercommunity/mongo.cr - @ambercommunity https://github.com/anicholson/gopher.cr - @anicholson https://github.com/anykeyh/await_async - @anykeyh https://github.com/axvm/cake - @axvm https://github.com/beanieboi/aws-signer.cr - @beanieboi https://github.com/benoist/terminal_table.cr - @benoist https://github.com/blocknotes/kemal-rest-api - @blocknotes https://github.com/cable-cr/cable - @cable-cr https://github.com/chris-huxtable/front_matter.cr - @chris-huxtable https://github.com/chris-huxtable/syslog.cr - @chris-huxtable https://github.com/chris-huxtable/pledge.cr - @chris-huxtable https://github.com/chris-huxtable/config.cr - @chris-huxtable https://github.com/comandeo/crystal-memcached - @comandeo https://github.com/comandeo/syslog.cr - @comandeo https://github.com/creadone/device_detector - @creadone https://github.com/crystal-community/leveldb - @crystal-community https://github.com/crystal-community/toml.cr - @crystal-community https://github.com/crystal-community/cossack - @crystal-community https://github.com/crystal-community/bloom_filter - @crystal-community https://github.com/crystal-community/hardware - @crystal-community https://github.com/crystal-community/timecop.cr - @crystal-community https://github.com/crystal-community/icr - @crystal-community https://github.com/crystal-community/crystal-patterns - @crystal-community https://github.com/crystal-lang/html_builder - @crystal-lang https://github.com/crystal-lang/crystal_lib - @crystal-lang https://github.com/crystal-lang/crystal-mysql - @crystal-lang https://github.com/crystal-lang/crystal-sqlite3 - @crystal-lang https://github.com/crystal-loot/exception_page - @crystal-loot https://github.com/crystallabs/fluence - @crystallabs https://gitlab.com/crystallabs/crystime - @crystallabs https://github.com/danielpclark/keyer_cr - @danielpclark https://github.com/ddfreyne/glove - @ddfreyne https://github.com/dhruvrajvanshi/crz - @dhruvrajvanshi https://github.com/dhruvrajvanshi/crystal-futures - @dhruvrajvanshi https://github.com/diggersheep/warden - @diggersheep https://github.com/dlanileonardo/sendgrid.cr - @dlanileonardo https://github.com/drhuffman12/ai4cr - @drhuffman12 https://github.com/emancu/crotest - @emancu https://github.com/epoch/tallboy - @epoch https://gitlab.com/ezrast/crometheus - @ezrast https://github.com/faustinoaq/watcher - @faustinoaq https://github.com/faustinoaq/kemal-watcher - @faustinoaq https://github.com/faustinoaq/sentry-run - @faustinoaq https://github.com/fazibear/tensorflow.cr - @fazibear https://github.com/felipeelias/crystal-github - @felipeelias https://github.com/fridgerator/google_maps_api - @fridgerator https://github.com/gdonald/blackjack-cr - @gdonald https://github.com/geppetto-apps/crow - @geppetto-apps https://github.com/gewo/bugsnag.cr - @gewo https://github.com/huacnlee/html-pipeline - @huacnlee https://github.com/icyleaf/wasp - @icyleaf https://github.com/icyleaf/totem - @icyleaf https://github.com/icyleaf/halite - @icyleaf https://github.com/icyleaf/gitlab.cr - @icyleaf https://github.com/imdrasil/sam.cr - @imdrasil https://github.com/impatienttraveller/json-tools - @impatienttraveller https://github.com/isaced/pangu.cr - @isaced https://github.com/izniburak/denetmen - @izniburak https://github.com/izniburak/turkish-number - @izniburak https://github.com/izniburak/query-builder - @izniburak https://github.com/j8r/cride - @j8r https://github.com/j8r/clicr - @j8r https://github.com/jeromegn/bson.cr - @jeromegn https://github.com/johnjansen/clamp - @johnjansen https://github.com/johnjansen/ternary_search_tree - @johnjansen https://github.com/kemalcr/kemal-session - @kemalcr https://github.com/kemalyst/kemalyst-generator - @kemalyst https://github.com/konovod/linalg - @konovod https://github.com/kostya/myhtml - @kostya https://github.com/lirith-engine/lirith - @lirith-engine https://github.com/luislavena/radix - @luislavena https://github.com/maiha/hq.cr - @maiha https://github.com/maiha/redis-tsv.cr - @maiha https://github.com/mamantoha/haversine - @mamantoha https://github.com/manastech/crystal_slack - @manastech https://github.com/marceloboeira/bojack - @marceloboeira https://github.com/marciogm/asdf-crystal - @marciogm https://github.com/measurechina/eventql-crystal - @measurechina https://github.com/metaware/flipper - @metaware https://github.com/mjago/soundfile - @mjago https://github.com/mosop/teeplate - @mosop https://github.com/mosop/optarg - @mosop https://github.com/mosop/cli - @mosop https://github.com/mperham/sidekiq.cr - @mperham https://github.com/mrrooijen/commander - @mrrooijen https://github.com/msa7/multi_auth - @msa7 https://github.com/naqvis/containerregistry.cr - @naqvis https://github.com/nats-io/nats.cr - @nats-io https://github.com/neovintage/accord - @neovintage https://github.com/obsidian/orion - @obsidian https://github.com/obsidian/oak - @obsidian https://github.com/oz/pinboard.cr - @oz https://github.com/petoem/mixpanel-crystal - @petoem https://github.com/philnash/envyable.cr - @philnash https://github.com/phoffer/inflector.cr - @phoffer https://github.com/pine/crenv - @pine https://github.com/rhysd/Crisp - @rhysd https://github.com/rodrigopinto/can_use - @rodrigopinto https://github.com/rogeriozambon/http-protection - @rogeriozambon https://github.com/ruivieira/crystal-gsl - @ruivieira https://github.com/sam0x17/gcf.cr - @sam0x17 https://github.com/schovi/baked_file_system - @schovi https://github.com/sdogruyol/tren - @sdogruyol https://github.com/sdogruyol/cryload - @sdogruyol https://github.com/sferik/twitter-crystal - @sferik https://github.com/spider-gazelle/bisect - @spider-gazelle https://github.com/spider-gazelle/ssh2.cr - @spider-gazelle https://github.com/spider-gazelle/crystal-snmp - @spider-gazelle https://github.com/spider-gazelle/pinger - @spider-gazelle https://github.com/splattael/libnotify.cr - @splattael https://github.com/splattael/hashids.cr - @splattael https://github.com/stumpycr/stumpy_png - @stumpycr https://github.com/tbrand/neph - @tbrand https://github.com/topaz-crystal/topaz - @topaz-crystal https://github.com/unn4m3d/crystaledge - @unn4m3d https://github.com/unn4m3d/cppize - @unn4m3d https://github.com/veelenga/aasm.cr - @veelenga https://github.com/veelenga/play-crystal.el - @veelenga https://github.com/vjdhama/crystal-cookbook - @vjdhama https://github.com/vladfaust/time_format.cr - @vladfaust https://github.com/vnbrs/burocracia.cr - @vnbrs https://github.com/waterlink/mocks.cr - @waterlink https://github.com/westonganger/form_builder.cr - @westonganger https://github.com/y2k2mt/sse.cr - @y2k2mt https://github.com/z64/openssl.cr - @z64 https://github.com/ziprandom/cltk - @ziprandom

EDIT: Looks like I hit the mention limit :grimacing:

@veelenga I'll give some time for people to update their CI, next weekend I'll make a PR with the final script to generate these, and to remove the ones that haven't changed anything.

RX14 commented 4 years ago

Surely adding this would just look super visually messy for little gain?

If you're interested enough by the description, you're gonna click the link to the repository and see the CI badge there! It's very unlikely that CI status will be such a significant distinguishing factor to be worthy of placing right on the front page. Plus, the instantaneous CI status is not useful at all to me. What I look at is the last few builds: how long ago they were, how often, and their status and success rate.

Blacksmoke16 commented 4 years ago

@RX14 Yea, we decided to take a different approach. The current plan is to have a script that is able to generate a report of shards that don't meet the requirements, i.e. no CI and no periodic builds. This script could either be ran via CI monthly or manually by maintainers.

watzon commented 4 years ago

Just so you know, ngrok.cr is using Github actions now, so if you could hard code that https://github.com/watzon/ngrok.cr/actions

I'll work on getting specs up for arachnid, but cadmium actually needs to be changed anyway. I'll submit a PR for that after this is all taken care of.