Problem/Motivation

Publish vertical slice POC on NPM to make it easier for developers to experiment and provide feedback.

Under what namespace would it make sense to publish this? It won't be @drupal

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

Issue fork api_client-3391145

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

brianperry created an issue. See original summary.

brianperry’s picture

Things to consider here:
* Should we implement changesets prior to publishing?
* Should we adopt conventional commits - https://www.conventionalcommits.org/en/v1.0.0/
* Will it be possible to automate this process before we're under the Drupal namespace? Will we have to mirror the codebase somewhere? Or publish manually?

brianperry’s picture

Versioning while working on 1.x. I'm now thinking we should keep this simple. Publish an initial 0.x version representing the POC. We can then declare that specific version as the vertical slice POC version. Beyond that, we can keep working on 1.0 and publishing our ongoing work as incremental 0.x releases until we complete our scope for 1.0.

brianperry’s picture

Ensuring publishing is based on main, and docs publishing is based on main as well.

brianperry’s picture

Assigned: Unassigned » brianperry
Status: Active » Needs work

Had to make more changes than I expected here as a result of the package namespaces changing. Should be close, but tsc is now complaining about:

> tsc --noEmit

packages/api-client/tsup.config.ts:17:5 - error TS2322: Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").Plugin' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").Plugin'.
  Types of property 'setup' are incompatible.
    Type '(build: import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").PluginBuild) => void | Promise<void>' is not assignable to type '(build: import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").PluginBuild) => void | Promise<void>'.
      Types of parameters 'build' and 'build' are incompatible.
        Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").PluginBuild' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").PluginBuild'.
          The types of 'initialOptions.plugins' are incompatible between these types.
            Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").Plugin[] | undefined' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").Plugin[] | undefined'.
              Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").Plugin[]' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").Plugin[]'.
                Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").Plugin' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").Plugin'.
                  Types of property 'setup' are incompatible.
                    Type '(build: import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").PluginBuild) => void | Promise<void>' is not assignable to type '(build: import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").PluginBuild) => void | Promise<void>'.
                      Types of parameters 'build' and 'build' are incompatible.
                        Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").PluginBuild' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").PluginBuild'.
                          The types of 'initialOptions.tsconfigRaw' are incompatible between these types.
                            Type 'string | import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").TsconfigRaw | undefined' is not assignable to type 'string | import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").TsconfigRaw | undefined'.
                              Type 'TsconfigRaw' is not assignable to type 'string | TsconfigRaw | undefined'.
                                Type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.19.5/node_modules/esbuild/lib/main").TsconfigRaw' is not assignable to type 'import("/Users/brianperry/repos/api_client/node_modules/.pnpm/esbuild@0.18.20/node_modules/esbuild/lib/main").TsconfigRaw'.
                                  Types of property 'compilerOptions' are incompatible.
                                    Type '{ alwaysStrict?: boolean | undefined; baseUrl?: string | undefined; experimentalDecorators?: boolean | undefined; importsNotUsedAsValues?: "error" | "remove" | "preserve" | undefined; ... 9 more ...; verbatimModuleSyntax?: boolean | undefined; } | undefined' is not assignable to type '{ alwaysStrict?: boolean | undefined; baseUrl?: boolean | undefined; experimentalDecorators?: boolean | undefined; importsNotUsedAsValues?: "error" | "remove" | "preserve" | undefined; ... 9 more ...; verbatimModuleSyntax?: boolean | undefined; } | undefined'.
                                      Type '{ alwaysStrict?: boolean | undefined; baseUrl?: string | undefined; experimentalDecorators?: boolean | undefined; importsNotUsedAsValues?: "error" | "remove" | "preserve" | undefined; ... 9 more ...; verbatimModuleSyntax?: boolean | undefined; }' is not assignable to type '{ alwaysStrict?: boolean | undefined; baseUrl?: boolean | undefined; experimentalDecorators?: boolean | undefined; importsNotUsedAsValues?: "error" | "remove" | "preserve" | undefined; ... 9 more ...; verbatimModuleSyntax?: boolean | undefined; }'.
                                        Types of property 'baseUrl' are incompatible.
                                          Type 'string | undefined' is not assignable to type 'boolean | undefined'.
                                            Type 'string' is not assignable to type 'boolean | undefined'.

 17     polyfillNode({
        ~~~~~~~~~~~~~~
 18       globals: {
    ~~~~~~~~~~~~~~~~
... 
 20       },
    ~~~~~~~~
 21     }),
    ~~~~~~


Found 1 error in packages/api-client/tsup.config.ts:17

Any ideas?

brianperry’s picture

Assigned: brianperry » Unassigned
Status: Needs work » Fixed
cosmicdreams’s picture

On the NPM page, it might be helpful to publish a user story / user stories that help people know that this vertical slice either addresses or doesn't address their use case.

It's difficult to know what scenarios this would be used for, with just the NPM page's documentation.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.