Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rc v1.3.0 #4

Open
wants to merge 44 commits into
base: main
Choose a base branch
from
Open

Rc v1.3.0 #4

wants to merge 44 commits into from

Conversation

gastrodon
Copy link
Owner

closes #1 #3

Rebases single-pipeline to include faster-meta-producers

When compiling pipelines into something runnable, instead of getting
producers ( remote and literal ) into a function that's immediately
callable, use a function that returns a channel that will spawn some
producers before closing.

With this channel we can feed literal producers as normal, while
allowing us to get remote producer descriptors during runtime, without
any timeout.

Refactor RunPipeline to collect producers from the spawner channel in
chunks, running them in the order received, until the spawner closes (
which we test for by looking at whether or not the next producer is nil
)

Refactor the pipeline testcase struct to specify how many producers to
run in parallel so that we can test for that, testing for non-wholly
divisible and overflowing parallel counts
This reverts commit 471d1d6.
Make the struct field name consistent across pipeline descriptors and
compiled pipelines

Fix an error where I just forgot to prop it up with other values LOL
@codecov-commenter
Copy link

codecov-commenter commented Oct 10, 2024

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 46.52956% with 208 lines in your changes missing coverage. Please review.

Project coverage is 47.02%. Comparing base (2c567b8) to head (5518bac).

Files with missing lines Patch % Lines
main.go 0.00% 72 Missing ⚠️
parse/file.go 26.00% 35 Missing and 2 partials ⚠️
core/build.go 52.85% 30 Missing and 3 partials ⚠️
parse/pipeline.go 65.57% 17 Missing and 4 partials ⚠️
parse/plugin.go 31.81% 13 Missing and 2 partials ⚠️
core/library.go 60.00% 9 Missing and 1 partial ⚠️
core/run.go 84.61% 3 Missing and 5 partials ⚠️
stdlib/plugin.go 72.72% 5 Missing and 1 partial ⚠️
parse/values.go 69.23% 3 Missing and 1 partial ⚠️
stdlib/produce/increment.go 0.00% 1 Missing ⚠️
... and 1 more

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
- Coverage   48.25%   47.02%   -1.24%     
==========================================
  Files          22       18       -4     
  Lines        1005      942      -63     
==========================================
- Hits          485      443      -42     
+ Misses        464      458       -6     
+ Partials       56       41      -15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Split parsing code into more specific files

Get rid of unused code

Get rid of defaultCtx, just use an empty one insteads
Pass library.Ctx to pipeline parsing so that we can use the functions
that return mover descriptions

SpecMap replaced with a []*Spec, specs are now only named by themselves
Since we get the mover options as cty values that are already decoded,
the hcl body decoding was pretty redundant. In the future, we'll no
longer make a parser, we'll just decode with regular `cty:` tags

Building pipelines no longer need an evalctx. The one responsible for
meta-producers needs the library context
Drop support for `psy:` struct tags, no longer use the fork providing
FromCtyValueTagged
Remove pipeline blocks from the spec, replacing it with implicit
decleration - that is, all of the movers of a particular group of files
are implied to be of the same, single pipeline.
Since the functions kinda morphed into the same thing
Pipelines now live in `group {}` blocks. IDK if this is better than the
`pipeline {}` blocks we started with, but I think so?

When we want to build an executable pipeline, we monify the group. Still
need to make the groups filterable with the cli
Move some more specific code for transforming pipeline and file groups
into main

Split out code that parses values + pipelines into full, final name TBD

Move MonifyGroup into main
Create a file type in parse that has all the parsing stuff for files
attached to it. Move the file group parsing stuff to its own type that
implements file
The "root group" is inserted at the front of the groups list
Allow `GroupDesc` to be filtered by group names
print error in hcl diag
Use all of the producers described with produce-from blocks rather than
just the first

Use the standard cfg parsing entrypoint for parsing produce-from results
and get rid of the partial function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants