Roadmap & release history¶
What we're planning to do. Only includes minor and major releases, patch releases only fix errors, meaning they aren't planned, as our plan and hope is to write errorless code (which we'll never do, but we'll try our best to get as close as possible to that).
We'll expand (and rarely, but not impossibly, shrink) this roadmap as we make progress and/or change our plans.
This page also lists all minor and major releases since 2.X. Patches aren't listed, and most bugfixes aren't included (as we don't "plan" to fix bugs).
Upcoming major release¶
These are early plans; however we're already working on 4.0 from this branch. Expect this list to change over time and/or get removals.
- New features
-
build
, to automate building. Especially useful in JavaScript. This would have a text-config file to define what tasks to run for building a project. It could be used in combination withrelease
.
-
-
release
support for Cargo. - Dual release support: using the
FnCPF
from the interop layer to allow publishing the same JavaScript package to both npm and jsr. This would be really helpful as jsr downloads do not always work well with npm projects. - Rebuild
commit
, so you tell it what files to commit and it:- Un-stages anything else to avoid committing randomly staged files.
- Doesn't require you to stage the files before (making it useless, as
git commit -a -m
is also just one command), and lets you stage files from the own command. - Runs pre-commit tasks before staging, making them actually useful.
- Allow for DIR-based running; in simpler terms, compute things like
fkn stats
tofkn stats --self
orfkadd
tofkadd --self
, so the--self
flag isn't necessary (except for commands likefkclean
where it does make sense to have it). - Add Bun support for
audit
.
3.X¶
Version 3.4 (Released)¶
(This release wasn't planned).
- Improve cross-runtime support.
- Support
lint
for Deno and Cargo. - Improve parsing of
Cargo.toml
files.
- Support
- Improve kickstart.
- Improve parsing of Git URLs.
- Add Git "aliases" / "scopes" (e.g.
gh:owner/repo
).
Version 3.3 (Released)¶
- Rewrite the
audit
feature.- Fix known issues.
- Support it everywhere NodeJS
- pnpm
- yarn
Version 3.2 (Released)¶
- Enhancements
- Add
launchCmd
tofklaunch
for users to define how a project should start up.
- Add
- Better
migrate
feature.- Respect exact versions from the previous lockfile.
- Support
stats
' Recommended Community Standards across:- Deno
- Cargo
Version 3.1 (Released)¶
- New features
-
fuckingnode launch <project>
to immediately launch user's favorite IDE with the given project and update its dependencies.
-
Version 3.0 (Released)¶
- Make a proper logo for the project.
- New features
-
fuckingnode commit "message"
to automatically run our maintenance task and custom commands before making a Git commit and only committing if they all succeed. With the "Shorter commands" goal, it could be something likefkcommit "message"
. -
fuckingnode release "version"
to automatically run commands before releasing, then bumping the version number frompackage.json
(or equivalent), and then running the manager's specified publish command (unless overridden). -
fuckingnode surrender <project>
to automatically add a generic deprecation message to the README.md file from the project's root (if any), give the project a last maintenance, commit everything, push it, and once pushed, removing the entire project's folder from the filesystem and the project list. -
fuckingnode setup <project> <setup>
to automatically add presettsconfig.json
,.gitignore
, andfknode.yaml
files to a project. -
fuckingnode compat
to show cross-runtime compatibility without the need to open the browser.
-
- Better installer
- Revamped
.ps1
based installer for Windows. - New
.sh
based installed for macOS and Linux.
- Revamped
- Cross-runtime migration.
- Bun. Implies generating
bun.lock
inbun.lockb
projects. - Deno.
- Bun. Implies generating
- Shorter commands.
- Shorter core command,
fknode (args)
. - Windows support
- macOS and Linux support
- Shorter flags, for example,
fknode clean -- -l -p
instead offuckingnode clean -- --lint --pretty
. - Shorthands, for example,
fkclean
instead offuckingnode clean
, which together withdefaultIntensity
setting and flagless features should handle everything.- Windows support
- macOS and Linux support
- Shorter core command,
- Make
fuckingnode stats
actually useful- Similar to GitHub's community standards (any repo -> insights -> community standards), compare a project to a set of quality standards.
- Make
maxim
intensity behave likehard
intensity, doing first what lower levels do.maxim-only
would be added too, to keep the current behavior available. - Better error handling.
- Cross-platform support!
- FnCPF (FuckingNode CommonPackageFile)
- Internal generation
- Ability to export it
- Platforms
- Golang
- Base support (Recognition, package file parsing...)
- Operations (Cleanup, lint, pretty...) (May be limited)
- Extras (Kickstart, stats...) (May be limited)
- Cargo (Rust)
- Base support (Recognition, package file parsing...)
- Operations (Cleanup, lint, pretty...) (May be limited)
- Extras (Kickstart, stats...) (May be limited)
- Golang
- FnCPF (FuckingNode CommonPackageFile)
- Create a FuckingNode Interop Layer
- Linter
- Prettifier
- Updater
2.X¶
Version 2.2 (Released)¶
- Per-project cleanup.
- Flagless features via
fknode.yaml
. - Auto-flush for log files.
Version 2.1 (Released)¶
- Release the
audit
feature as annpm
only experiment. Learn more here. - Support more editors for the
kickstart
command (PS. doing this is as simple as ensuring we know the command to launch that editor in all platforms).- Emacs
- Notepad ++
- VSCodium
- Atom (it's unmaintained, but anyways...)
- Get this documentation finished.