Repository navigation
reckless: rust rewrite - #9239
daywalker90 wants to merge 30 commits into
Conversation
8644166 to
6889d36
Compare
vincenzopalazzo
left a comment
There was a problem hiding this comment.
Nice to see that the manifest idea is taking over. Hope you are also using git for versioning, otherwise this would be another good thing to take from https://github.com/coffee-tools/coffee
There was a problem hiding this comment.
Would be nice to reference the original reference implementation https://coffee-docs.netlify.app/support-coffee
There was a problem hiding this comment.
Would be nice to reference the original reference implementation https://coffee-docs.netlify.app/support-coffee
I was planning on giving full credit for the manifest/tip function to coffee in the README. But i want to lock down the functionality first before writing documentation.
There was a problem hiding this comment.
to save credit was also good to just include coffee, I do not think there are more features than coffee, we were also supporting ws (palanning to) to support interactive UX inside the web applications
But these days cloning is easy!
If you mean installing a plugin with a git ref then yes, that is supported. |
Yeah, otherwise it's insanity! Nice, it would be nice to have two lines that reference coffee because the development died because Blockstream was moving to reckless. Referencing a good idea is what is left in this AI era, where rebuilding is easy |
6658af8 to
f6bbfb5
Compare
5833d8b to
853fe7d
Compare
f4513c8 to
bf9e3e2
Compare
|
|
59f0030 to
a0ca360
Compare
If the timestamp of the python file does not differ after an update it will load the bytecode of the old version. We remove the pycache to make sure this does not happen. Mostly a test environment issue as in practive the timestamps should always differ.
After ElementsProject@fce9d6e we can now use it. Also fix writing flag options to config file.
The python wrapper only added the repo root to sys.path and ran the bare file stem, so an entrypoint like src/main.py failed with ImportError. Add the entrypoint's own directory to sys.path as well.
A single malformed manifest.json made find_plugin_locs return an error, so every plugin in that source disappeared from listavailable and install. Skip only the plugin whose manifest is invalid, log why, and keep scanning the rest of the source. The plugin is not installed with a default manifest, since that would ignore fields such as installable: false.
…name The lookup key was lowercased but the install directory kept the original case, so uninstall of MyPlug looked for reckless/myplug and failed to find the directory it had just installed.
A python plugin with a package.json at its root was routed to the nodejs installer, so its python dependencies were never installed.
The nodejs installer symlinked the entry file and executed it directly. A javascript entrypoint without a shebang failed to start with 'Exec format error (os error 8)'. Install a #!/bin/sh wrapper that runs the node binary found at install time instead.
The python wrapper embedded the venv and source paths in a shebang and in python string literals. A path with a space broke the shebang (the kernel splits it), and a path with a single quote broke the python source. Both wrappers are now sh scripts that pass every path as a single-quoted argument, so no value is interpolated into code.
The depth-1 filter skipped any directory whose name contained 'archive', so a plugin named archive_backup was silently left out of the source scan. Match the directory name exactly instead.
The uninstall section showed the install command.
The non-unix stub used a bare Result, which is not imported in this module, so the crate did not compile on non-unix targets.
d02ca7b to
95ed526
Compare
Not ready for code review yet, we have not decided on some important aspects. Right now it is a drop-in replacement of the python reckless version.
Should
Fixes: #8439
Fixes: #8761
Fixes: #8775
Fixes: #8776
Fixes: #8794
and should supercede #8630
Key differences:
reckless-diris a proper plugin option now--jsonoptionlistavailable, an array of strings is just not nice heremanifest.json