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

release frontend deps docs update #1

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

Conversation

github-actions[bot]
Copy link

  • fix missing embed for amd64
  • docs: update CLI documentation for release-frontend-deps

javisperez and others added 30 commits April 15, 2024 09:05
* Rewrite of usecases.md

Rewrote use cases to simplify it, and focus on the workflow using tags. This should better illustrate the handoff between teams.

* fixup

* plus emojis
Splits the release builds to corresponding platforms.
Introduces go-releaser configuration for each platform.
adds a new workflow that uses gh CLI to do the publish.
* New discord-tracking.md with list of where discord links live
* Added correct links to SUPPORT.md
* Create ROADMAP.md

* fixup

* added summary

* Add ref in readme

Readme should mention the roadmap

* Update ROADMAP.md

Co-authored-by: Angel Misevski <misevskia@gmail.com>

---------

Co-authored-by: Angel Misevski <misevskia@gmail.com>
Fix help text and flag descriptions for `kit info` and `kit inspect` to
clarify how the --remote flag works (without flag, check locally;
with flag, check remotely).
Add PR template for repository to add some structure
Add docs for reading from standard input
* Update the cache-dependency-path

* Read the assets from '/kitops'

* UI fixes

* Remove the subdir for assets

* Fix dead link

* Remove unused style

* Add GA scripts
* Update posts.json

* Add the podcast blog, for real now

* Update posts.json
Add support for .kitignore files, using the same semantics as
.dockerignore:

* Each line is a pattern for ignoring files based on prefix
* Patterns support '*' and '?' wildcards
* Prepending ! negates a pattern
Fix some issues with kit pack: there are three "types" of packing we
need to be able to do:

* Single files (e.g. path is `somedir/myFile.txt`)
* Entire directories (e.g. path is `somedir/subdir`)
* The context directory itself (e.g. path is `.`)

For the first case, we create a tarball with only one file in it; for
the second, we compress the directory itself. This allows for the unpack
process to be

1. Create base directory for layer's path (e.g. `somedir` above)
2. Unpack the layer's tarball into the directory

However, treating the third case in the same way would lead to us adding
a directory named `<context-dir>` to the tarball, which is inappropriate
(e.g. if I have my files in /projects/mydir, you want to be able to
unpack to /projects/otherdir).

To avoid this issue (and having to special-case when the path is `.`),
we need to switch the pack and unpack processes to working on relative
paths rather than absolute paths. This updates kit pack and unpack to
work as follows

1. Resolve absolute paths for e.g. Kitfile and context directory
2. Change working directory to the context directory (or target
   directory for unpack)
3. Pack or unpack based on relative paths within the kitfile rather than
   calculated absolute paths
4. If the directory to be packed is `.`, skip creating a directory entry
   for it.

This change requires relaxing some checks for existing directories (i.e.
don't require the --overwrite flag when a directory exists); we still
require the --overwrite flag before overwriting files.
Avoid failing when unpacking encounters a directory that already
exists. This is not necessarily a problem as multiple layers can create
the same directories in some cases.
Update how we handle paths to allow layers to intersect, e.g.

model:
  path: ./my-model/
code:
  path: ./my-model/config/

With this change, in addition to processing the ignore file, we also
consider all other layers when packing a layer. If a path is not
excluded by the ignore file, it is still excluded if

1. Some other layer path is a prefix for the current path, and
2. The other layer path is _not_ a prefix for the current layer path

(more explicitly, while processing `./my-model`, we ignore any paths
starting with `./my-model/config`, but when processing
`./my-model/config`, we don't ignore paths starting with `./my-model` as
this would exclude all paths).

This commit refactors how models are handled internally, removing the
Model struct and working on the Kitfile directly instead. Functionality
for ignore files is moved into the filesystem package and extended to
support the test above
Remove out-of-date test for the pack command; this test relied on
default kitfile name behavior, which is no longer used since we
explicitly check whether a kitfile exists.
Clean paths passed in to Ignore.Matches() in the same way we clean up
during set up to avoid false results -- e.g. ./my-dir and my-dir not
matching. Otherwise, a Kitfile that uses paths with prefixed dot-slash
will be ignored incorrectly.
* Add what's new to Readme

* Update README.md

Co-authored-by: Angel Misevski <misevskia@gmail.com>

---------

Co-authored-by: Angel Misevski <misevskia@gmail.com>
Refactor output package to allow setting writers for stdout/stderr, set
these to the commands configured output/err writer (default is
stdout/stderr)
The --config flag for unpack (to unpack the Kitfile) collides with the
global --config flag which is used for setting the Kit config directory.

For unpack, the --config flag is parsed as a boolean flag, meaning a
command like

  kit unpack --config ~/.kitops mymodel:mytag

returns a cryptic error about receiving two arguments instead of one
(since ~/.kitops is parsed as a regular argument).

To avoid this, renamed the `--config` flag on kit unpack to `--kitfile`.
Fix an issue where a layer (e.g. model) with a path that includes a
trailing slash results in packing files to the wrong folder. This is
because Go's filepath.Dir will compute the directory differently if
there is a trailing slash vs not:

* dir/my-model/ --> dir is dir/my-model
* dir/my-model  --> dir is dir

To avoid this, use filepath.Clean on paths to remove trailing slashes.

Without this change, a path specified with trailing slash will result in
its files unpacking one directory up the tree.
Add functional tests that work by calling kit pack/unpack/etc. directly
with generated dummy files in a temporary directory.

Test cases are stored as yaml files matching a test case struct. For
each test case, the test

1. Sets up a temporary directory and subdirectories
2. Configures kit to use this temporary directory for its internal
   storage
3. Generates files from test case within a subdirectory
4. Writes a Kitfile and .kitignore into the subdirectory
5. Packs the directory, tagging the modelkit test:test
6. Unpacks the test:test tag into another directory
7. Verifies that all files from the test case are present, and all
   ignored files are not present
8. Cleans up the temporary directory

Logs for each command executed by the test are saved and printed in case
a failed test, or if the -test.v flag is used.
* Fix how modelkit references are logged when removing to account for
  untagged modelkits:
  * Always format modelkit ref for display to avoid including default
    registry/repository
  * Trim leading '@' characters to allow for formatting just a digest
    (i.e. log sha256:digest rather than @sha256:digest)
* Fix stray trailing tab character in output of kit list.
Extract common functions to a separate file and add test cases for
'kit remove'
amisevsk and others added 30 commits April 25, 2024 13:31
Save logs from the running server to <harness-path>/harness.log. Log
this path when --verbose mode is used.
Updates the generate command to run
build for UI and package it. The harness init
now also extracts the ui to harness home. Server
is started with the path of the ui.
Run the generate to create the embeds
Fixes the docs for the host flag
Add field 'parts' to the model part of a modelkit, allowing for
specifying additional components in addition to a "base" model.
Add ability to pack modelkits where the model references a different
modelkit in its path
Enable kitops to unpack modelkits where the model references a different
modelkit in its path
* Make every command use RunE instead of Run so that we can return an
  error
* Instead of calling os.Exit(1) on failure, return a generic error to
  signal failure and call os.Exit(1) in the root command's Execute()
The Cobra library has really annoying behaviour around printing the
usage/error message (e.g. "expected 2 args, received 1") where the
usage/error message is printed both in cases of incorrect usage _and_
when a RunE command fails (returning an error). This is undesirable as
a) we can't control the format of the error message, and b) printing
usage hides the error under a wall of irrelevant text (the user used the
CLI correctly, there was just an error while running -- the fix isn't to
correct CLI usage). Setting cmd.SilenceUsage and cmd.SilenceErrors will
mean running `kit asdf` will print nothing.

Since we need commands to return an error for testing purposes (calling
os.Exit(1) exits the test suite), we have to work around this by setting
cmd.SilenceUsage and cmd.SilenceErrors within each RunE function rather
than on the command as it's being created.
* Fix the "hijacked" scrollbar bug

* More updates
Set options in the pre-run instead of manually in each subcommand. A
little cleaner.
Verify that all modelparts type fields are

* alphanumeric, plus underscores, dashes, and dots
* less than a max length (64)

and return a specific error message in each case.
add a new for login using docker.io and stdin
remove the redundant file .goreleaser.yaml
uses Errorf instead of Fatalf and fixes missing
returns.
Installs the pnpm and nodejs dependencies for
building the dev frontend. Updates the goreleaser
to run the go generate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants