scala-steward
codemod
Our great sponsors
scala-steward | codemod | |
---|---|---|
4 | 8 | |
1,121 | 3,895 | |
1.0% | - | |
9.4 | 0.0 | |
6 days ago | over 3 years ago | |
Scala | Python | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scala-steward
-
Secure the Dependencies of your Scala Project on Github
To not confuse anyone reading this, these are actually pretty radically different. Keep in mind that Renovate is literally just doing regex on your build files. While this is great for simple things and sending in some updates, I know first hand this is far inferior to the update support you'll get by using something like Scala Steward.
-
Looking for a really good/complex example codebase or tutorial for Scala FP
https://github.com/scala-steward-org/scala-steward Might be the one you are looking for
- Scala projects to read through
-
Software Is Drowning the World
This is one of the reasons why statically typed languages have a big advantage when it comes to maintenance.
Take Scala for example. There is now mature tooling for keeping your dependencies / libraries up-to-date automatically, using automatic migration-scripts (must be provided by the library author of course).
See here: https://github.com/scala-steward-org/scala-steward/blob/mast...
The difficult part here is of course to write the migrations. This works very well in Scala (and can work as well in certain other languages) because the type-system provides enough information to do automatic rewrites and it is easy to _not_ use unsound techniques such as reflection, code generation, macros etc.
The reason why we don't see such tooling in other languages yet is that they are either dynamically typed, which makes it almost impossible to write migration scripts that pretty much always work. Or they are statically typed, but the typesystem is so limited, that developers have to fall back on mentioned unsound features.
codemod
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
This is new to me, sounds interesting!
I once used Codemod [0] to migrate an old JS codebase. Would this be a use case for Ohm as well?
- Automating Dead Code Cleanup
-
Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
That differs but is a reasonable understanding. I’m instead referring to automations that perform large scale refactoring as handled by Facebook, who would be contributing to this effort.
https://github.com/facebookarchive/codemod
It sounds like what you are describing is what’s known as poly fills which convert code into a variant that maximizes function across implementations which isn’t really applicable here.
-
Automatic Dependency Upgrade Tool (with auto-resolve breaking changes)
That's why I've been working on a tool that automatically upgrades major versions of libraries with breaking changes, the idea is to simplify the process and save developers time and effort by having a bank of transformers (using codemod & jscodeshift) and open source them:
- Python 2 Removed from Debian
-
How Our Engineering Team Used Python's AST to Patch 100,000s of Lines of Code
What they did appears similar to https://github.com/facebook/codemod.
-
Software Is Drowning the World
I think codemod is probably one such tool: https://github.com/facebook/codemod
What are some alternatives?
renovate - Universal dependency automation tool.
jscodeshift - A JavaScript codemod toolkit.
pfps-shopping-cart - :shopping_cart: The Shopping Cart application developed in the book "Practical FP in Scala: A hands-on approach"
comby - A code rewrite tool for structural search and replace that supports ~every language.
scalac-options - A DSL for scalacOptions
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
Gitbucket - A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility
goimports - [mirror] Go Tools
zio-cats-backend - A backend service integrating ZIO with cats, STTP, http4s, doobie and ztapir
cinder - Cinder is Meta's internal performance-oriented production version of CPython.
paradox - Markdown documentation
Magnit.Tokenization - Tokenize strings into custom tokens using ordered regex operations.