Create abstract client steps infrastracture to externalize the ap modules client configurations#6965
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
We detected some changes at Caution DO NOT create changesets for features which you do not wish to be included in the public changelog of the next CLI release. |
packages/app/src/cli/services/generate/fetch-extension-specifications.ts
Outdated
Show resolved
Hide resolved
16768f3 to
59f0139
Compare
59f0139 to
f9f9e63
Compare
7b68eb7 to
c3ee349
Compare
f9f9e63 to
59dcaa7
Compare
|
These findings are in files not modified by this PR and cannot be posted as inline comments.
The integration test calls Evidence: await executeStep({ ..., type: 'include_assets', ... }, context)
...
expect(await fileExists(joinPath(outputDir, 'logo.png'))).toBe(true)Impact:
|
|
🤖 Code Review · #projects-dev-ai for questions ✅ Complete - No issues 📋 History❌ Failed → ❌ Failed → ❌ Failed → ✅ 2 findings → ✅ No issues → ❌ Failed → ❌ Failed → ✅ No issues → ✅ No issues |
59dcaa7 to
fb4c01d
Compare
|
These findings are in files not modified by this PR and cannot be posted as inline comments.
BuildConfig.mode includes 'hosted_app_home', but ExtensionInstance.build() does not handle it. The extension may not be built, producing missing artifacts. Impact: Specs setting mode=hosted_app_home can lead to deploy failures or missing runtime resources. |
fb4c01d to
68f4751
Compare
24fb214 to
ecf7d0f
Compare
9257821 to
596be94
Compare
9bebf7c to
dd63de8
Compare
be30889 to
903f8f5
Compare
dd63de8 to
ea4aee6
Compare
e614518 to
b534c43
Compare
ea4aee6 to
243fb31
Compare
b534c43 to
ac5fd70
Compare
243fb31 to
7e38d07
Compare
ac5fd70 to
dcbe359
Compare
7e38d07 to
880b269
Compare
Differences in type declarationsWe detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:
New type declarationsWe found no new type declarations in this PR Existing type declarationspackages/cli-kit/dist/public/node/git.d.ts@@ -1,13 +1,5 @@
import { AbortError } from './error.js';
-export interface GitLogEntry {
- hash: string;
- date: string;
- message: string;
- refs: string;
- body: string;
- author_name: string;
- author_email: string;
-}
+import { DefaultLogFields, ListLogLine } from 'simple-git';
/**
* Initialize a git repository at the given directory.
*
@@ -48,12 +40,14 @@ export declare function addToGitIgnore(root: string, entry: string): void;
*
* @param repoUrl - The URL of the repository to clone.
* @param destination - The directory where the repository will be cloned.
+ * @param progressUpdater - A function that will be called with the progress of the clone.
* @param shallow - Whether to clone the repository shallowly.
* @param latestTag - Whether to clone the latest tag instead of the default branch.
*/
export interface GitCloneOptions {
repoUrl: string;
destination: string;
+ progressUpdater?: (statusString: string) => void;
shallow?: boolean;
latestTag?: boolean;
}
@@ -70,7 +64,7 @@ export declare function downloadGitRepository(cloneOptions: GitCloneOptions): Pr
* @param directory - The directory of the git repository.
* @returns The latest commit of the repository.
*/
-export declare function getLatestGitCommit(directory?: string): Promise<GitLogEntry>;
+export declare function getLatestGitCommit(directory?: string): Promise<DefaultLogFields & ListLogLine>;
/**
* Add all files to the git index from the given directory.
*
|
dcbe359 to
e5c297b
Compare
5647756 to
dcffdf5
Compare
e5c297b to
63f01da
Compare
dcffdf5 to
b7dd050
Compare
63f01da to
576d4ea
Compare
b7dd050 to
a8cf663
Compare
70b51d3 to
f140406
Compare
a8cf663 to
40c8534
Compare
f140406 to
6b7f418
Compare
…ules client configurations
6b7f418 to
3c9a3bb
Compare

WHY are these changes introduced?
This introduces a new client-side build pipeline system to replace the existing buildConfig approach for extensions. The current system is limited and doesn't provide enough flexibility for complex build scenarios.
WHAT is this pull request doing?
ClientStepsinterface that defines build steps as configuration objects with execution handled separatelyBuildContextto pass data through the step pipeline and store resultsbuild_function,build_theme,bundle_theme, andbundle_uioperationsinclude_assetsstep type with support for pattern-based and config-key-based file inclusionsExtensionSpecificationto include optionalclientStepsfield alongside existingbuildConfigbuildForBundlemethod to handle app config extensions differently by using the extension UID as the output pathfilePatternsandignoredFilePatternsare not definedHow to test your changes?
clientStepsconfigurationinclude_assetsstep with both pattern and configKey inclusion typescontinueOnErrorflagbuildConfigcontinue to work unchangedMeasuring impact
How do we know this change was effective? Please choose one:
Checklist