Open xml opened 2 months ago
p.s. - I'd be happy to submit a PR to this effect. Just wanted to see if that's constructive and aligned to reality/project goals, etc...
First off, apologies for the lack of clarity. The current readme is probably not as thorough as it could be, but I wanted to keep it short so I can focus on the process of getting Radashi ready for its first true release (coming very soon).
I'm hesitant to dedicate a section to explaining why an actively maintained version is better than one that isn't. With respect, isn't it obvious? I invite you to take a look at our generated changelog to see the many improvements that have already been made in @sodiray's absence. We'll also have comprehensive release notes with high-level explanations (starting with the next release).
Okay, so let me give you an overview of how the two projects compare, given the current state of both, as well as my vision for the future. I will try to be comprehensive in listing the differences that I believe make Radashi the obvious choice:
Explicit design philosophy
Higher code quality
More functions
Benchmarks
Bundle impact
Welcoming new maintainers
Nightly beta releases
radashi@beta
release is published to NPM if any PRs were merged that day.radashi@next
release based on the next
branch.Bigger vision
Translated docs
“Browser support” page
“Lodash parity” page
Other small things
Protected main branch: PRs must pass automated checks before they can be merged. I will never push fixes or features directly to main, even though I have that privilege.
Conventional commits: I've added a commit message linter to ensure that all commits follow the conventional commits specification.
RFC process: New features and breaking changes are often submitted as an RFC to encourage community involvement in the decision-making process
Preview releases: If you can't wait for a PR to be merged, the PR author can comment /publish
to publish a preview release of the PR to NPM for immediate use
Generated changelog: Essentially a filtered commit history that excludes non-code changes to make it easy to see what's new
High-level release notes: These will include high-level explanations and code examples for the changes in each release
Contribution scripts: Scripts like pnpm add-function
have been added to streamline the contribution process
JSR.io package: If you use Deno or you just resonate with the JSR.io philosophy, you can use the JSR.io package instead of the NPM package
Better tooling: I've switched the project to use Vitest for testing (instead of Jest), Biome for linting/formatting source code (instead of TSLint/Prettier), and PNPM for package management (instead of Yarn).
Easier to copy-paste: If one of Radashi's functions isn't meeting your needs, you can easily copy-paste it into your project and change it as you see fit, because our functions always import from radashi
just like your project does.
In the end, I hope that @sodiray will be proud of where we've taken Radashi. Maybe he'll even join the core team at some point. Who knows?
Let me know if anything's still not clear. Thanks!
P.S. Thanks for prompting me to write this out. I'll include it as a page in the docs and link to it from the readme for anyone curious like yourself.
Wow. Thanks for detailed response.
EDIT: the Comparison Post is great. Everything is in-context there.
Hi, Radashi team! Thank you for great open-source tooling.
I'm new to both Radash and Radashi. And, when I read the docs for Radash, it's clear to me why it exists. And, because it has great docs, and relatively recent releases, I feel comfortable adopting it.
I'm lots less clear on why a person would adopt Radashi instead, particularly given that Radashi's docs are just... Radash's docs. It's oddly... not mentioned? Except to say:
And like: if that one is the "fastest-growing Lodash alternative"... and if that one has 4.1k stars and this one has ... 108? ... then... why wouldn't I just use that one? I think it's necessary to explain the sitch, somehow, somewhere, to accelerate the transition.
Then there's the list of Radashi benefits but... it's not really clear why those aren't also just the same benefits as Radash? I'm guessing that some of those benefits are kind of a polite sub-tweet about Radash, perhaps especially about being "actively maintained"?
I hunted around: I see the open issue and discussion on Radash about whether it's being maintained, and because none of the maintainers have responded to them, I think I understand the basic issue, and what prompted the maintainers of this project to start a new one. And, I see 13 contributors and lots of commits.
So... I think it would be helpful (especially for those disinclined to hunt as I did) to say it out-loud, here on this repo. Something like:
That could reasonably go anywhere: onto the Readme, into the new docs, or even just here as an Issue for anyone inclined to seek it. But, I think that you'll see slow adoption until you come right out and say why this exists, why it is a pro-community move, and why it's not just a 'copy-cat' or 'unconstructive bike-shedding' or something negative like that.
To be clear, I'm assuming the best. I think this project just wants to be explicit in explaining why this is, in fact, the best approach. Leaving it implicit creates FUD, and slows uptake. FWIW.