Open jdegoes opened 1 week ago
/bounty $15000
/attempt #1004
with your implementation plan/claim #1004
in the PR body to claim the bountyThank you for contributing to golemcloud/golem!
Add a bounty β’ Share on socials
Attempt | Started (GMT+0) | Solution |
---|---|---|
π’ @volfcan | Oct 12, 2024, 10:24:46 AM | WIP |
π’ @kumarvivek1752 | Oct 13, 2024, 4:24:34 PM | WIP |
π’ @kvpan | Oct 13, 2024, 5:14:25 PM | WIP |
π’ @nickconway | Oct 13, 2024, 7:43:09 PM | WIP |
π’ @cmwelsh | Oct 13, 2024, 10:01:37 PM | WIP |
π’ @uurl | Oct 14, 2024, 2:59:36 AM | WIP |
π’ @MartinKavik | Oct 14, 2024, 1:33:49 PM | WIP |
π’ @cajun-code | Oct 14, 2024, 3:21:58 PM | WIP |
π’ @anchalshivank | Oct 14, 2024, 4:00:08 PM | WIP |
π’ @mcargille | Oct 14, 2024, 5:43:16 PM | WIP |
π’ @igorperic17 | Oct 16, 2024, 5:12:19 AM | WIP |
π’ @born2ngopi | Oct 17, 2024, 6:16:37 AM | WIP |
π’ @debaa98 | Oct 19, 2024, 12:17:09 PM | WIP |
/attempt #1004
/attempt #1004
/attempt #1004
/attempt #1004
/attempt #1004
/attempt #1004
I have uploaded a new version of the Initial File System specification.
There are two corrections:
file-path
instead of body
. In several places, body
was used instead of file-path
for the return of the Rib script for the route binding. Now, the document consistently uses file-path
as the field containing a string that identifies the path of the file to serve for the file-server
binding type.result
type in the Worker Gateway for the Rib script for file serving route bindings. However, it did not clarify why or under what circumstances this alternative should be supported. The revised specification clarifies that, as an alternative to returning a record with a file-path
, the script may return a simple string, potentially wrapped in result
, which identifies the file path--as a shortcut for developers./attempt #1004
/attempt #1004
/attempt #1004
/attempt #1004
The example golem manifest shows the source file path (or url) and permissions for each file. I think a third field is needed for the path of the file in the worker, perhaps named target_path?
@camsteffen Yes, which suggests that perhaps path
should be renamed to sourcePath
.
I will incorporate these updates into a v3 of the spec.
I have uploaded a new version of the Initial File System specification.
There is one clarification identified as being necessary by @camsteffen:
sourcePath
versus targetPath
. The spec only contained sourcePath
information for files in the initial file set. However, as the files as located in the user's local file system or at various remote URLs is arbitrary, the user must be free to create their desired structure for the initial file system. So now both sourcePath
and targetPath
may be specified. In a common case, sourcePath
will be a directory, and targetPath
will be root (/
)./attempt #1004
/attempt #1004
In a common case,
sourcePath
will be a directory, andtargetPath
will be root (/
).
I had interpreted the spec as only allowing individual files in the yaml. But it sounds like you are expecting that a directory may be added, and thus including any contained files recursively?
@camsteffen Yes, indeed, you should allow specifying local directories (I think that will be far more common than specifying individual files).
Hi @jdegoes
I the spec, the golem.yaml
file is specified to contain only one component definition
component:
name: component-abc
...
properties:
files:
- sourcePath: ./a.txt
targetPath: /a.txt
permissions: read-only
- sourcePath: ../../b.dat
targetPath: /b.dat
permissions: read-write
- sourcePath: https://foo.com/bar?baz=quux
targetPath: /bar.html
permissions: read-only
But in the PR that introduced the declarative build https://github.com/golemcloud/wasm-rpc/pull/85#issue-2545101008 the components in the file are specified as an array of components in the form of
spec:
components:
# Array of component definitions
and also, there are various kind of component type (for example, wasm-build
components). I assume that the one which would refer this issue is to wasm
component types.
My question is if we should use the file golem.yaml
containing an array of components for the golem-cli component add
command, because then, we should search withing the golem.yaml
file inside spec.components
array property, a component that matches wasm
type and the same component name we are adding with the command.
It is subtly different from what you depicted in the specification PDF, as in that PDF it seems that a golem.yaml
file is attached to a single component and it's not.
/attempt #1004
@jorgehermo9 In OAM, the component spec is an independent spec from the app spec; however, the component spec is embedded into the app spec. While the example only showed "component YAML", it is expected that golem-cli
will be able to read and process the same YAML file that wasm-rpc
reads and processes; and that the only difference will be each tool cares about slightly different parts of the overall YAML file.
This is the official ticket for Golem Cloud's Bounty-to-Hire event!
This is your chance to contribute to open source, potentially win a $15,000 bounty, and maybe even land a new 100% Rust job building Golem, a next-generation open source platform for building and deploying bulletproof backends.
The specification for this ticket is attached as a PDF:
Initial File System Spec v3.pdf
Important Websites
Timeline
The Structure
The Rules
Note on Plagiarism
We recommend developing in private, so no other developers can copy or derive from your work. Before opening a pull request on October 28, we recommend first sending a ZIP archive of your complete solution to
john@ziverge.com
, to verify original authorship of the source code in the event of contested authorship.Good luck to everyone!