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

📖 improve docs of rescaffold #4479

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/book/src/reference/rescaffold.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Currently, it supports two optional params, `input-dir` and `output-dir`.

`input-dir` is the path to the existing project that you want to re-scaffold. Default is the current working directory.

`output-dir` is the path to the directory where you want to generate the new project. Default is a subdirectory in the current working directory.
`output-dir` is the path to the directory where you want to generate the new project. Default is a directory named "output-dir" in the current working directory.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we not inform the output-dir it should be == $pwd , the current directory.
Are you facing a different behaviour?
Does it create a directory called output-dir and scaffold the project inside of it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that's the part that confused me.

The flag itself defaults to "" -> pkg/cli/alpha/command.go:59

The struct itself has a default then later here -> pkg/cli/alpha/internal/generate.go:46

image

It then sets it when this path is "" here as a default. -> pkg/cli/alpha/internal/generate.go:246

At least this is how I understand it and I get a output-dir folder.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OH we need to fix that.
It is a bug. By default it should be current dir == PWD

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to get this right: So instead of appending output-dir to the PWD it should be just the PWD right?

I can make a PR for this & maybe this then also removes the need to change the docs.

Copy link
Contributor Author

@Sijoma Sijoma Jan 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So something like this?

image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to do a little more than that.
Also, we need to ensure it via the tests.
See: #4500


```sh
kubebuilder alpha generate --input-dir=/path/to/existing/project --output-dir=/path/to/new/project
Expand All @@ -39,7 +39,7 @@ kubebuilder alpha generate --input-dir=/path/to/existing/project --output-dir=/p
<h1>Regarding `input-dir` and `output-dir`:</h1>

If neither `input-dir` nor `output-dir` are specified, the project will be regenerated in the current directory.
This approach facilitates comparison between your current local branch and the version stored upstream (e.g., GitHub main branch).
This approach facilitates comparison between your code and regenerated files in `output-dir`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

This way, you can easily overlay your project's code changes atop the new scaffold.

</aside>
Expand All @@ -50,4 +50,4 @@ This way, you can easily overlay your project's code changes atop the new scaffo
- See the [desing proposal documentation](../../../../designs/helper_to_upgrade_projects_by_rescaffolding.md)

[example]: ./../../../../testdata/project-v4-with-plugins/PROJECT
[more-info]: ./../reference/project-config.md
[more-info]: ./../reference/project-config.md
3 changes: 2 additions & 1 deletion pkg/cli/alpha/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package alpha
import (
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"

"sigs.k8s.io/kubebuilder/v4/pkg/cli/alpha/internal"
)

Expand Down Expand Up @@ -57,7 +58,7 @@ Then we will re-scaffold the project by Kubebuilder in the directory specified b
scaffoldCmd.Flags().StringVar(&opts.InputDir, "input-dir", "",
"path to a Kubebuilder project file if not in the current working directory")
scaffoldCmd.Flags().StringVar(&opts.OutputDir, "output-dir", "",
"path to output the scaffolding. defaults a directory in the current working directory")
"path to output the scaffolding. defaults to a directory named `output-dir` in the current working directory")

return scaffoldCmd
}