Skip to content

Comments

chore: setup publint for published packages#7972

Merged
shulaoda merged 3 commits intomainfrom
copilot/setup-publint-in-ci
Jan 21, 2026
Merged

chore: setup publint for published packages#7972
shulaoda merged 3 commits intomainfrom
copilot/setup-publint-in-ci

Conversation

Copy link
Contributor

Copilot AI commented Jan 20, 2026

Adds publint validation for all published npm packages to ensure proper package.json exports and module configurations are maintained in CI.

Changes

  • Added publint dependency (publint@^0.3.16) and lint-publint script that validates all 4 published packages:
    • packages/rolldown
    • packages/browser
    • packages/debug
    • packages/pluginutils
  • Integrated into lint pipeline via justfile lint-node target
  • CI validation in node-validation job:
    • Adds WASI target for browser package build
    • Builds all published packages using just commands
    • Runs pnpm lint-publint to validate all packages after build

Usage

pnpm lint-publint        # Check all published packages
just lint-node          # Full Node.js validation including publint

Publint validates:

  • Export path correctness
  • Module field configurations
  • Type definition alignment
  • Package.json best practices
Original prompt

This section details on the original issue you should resolve

<issue_title>Infra: setup publint</issue_title>
<issue_description>Refs:

Some thoughts:

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@netlify
Copy link

netlify bot commented Jan 20, 2026

Deploy Preview for rolldown-rs ready!

Name Link
🔨 Latest commit b00230d
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6970912d580720000829528e
😎 Deploy Preview https://deploy-preview-7972--rolldown-rs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@socket-security
Copy link

socket-security bot commented Jan 20, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedpublint@​0.3.161001008188100

View full report

Copilot AI changed the title [WIP] Setup publint for verifying JavaScript packages Infra: setup publint for package.json validation Jan 20, 2026
Copilot AI requested a review from shulaoda January 20, 2026 15:12
@shulaoda shulaoda changed the title Infra: setup publint for package.json validation chore: setup publint for published packages Jan 20, 2026
@shulaoda shulaoda force-pushed the copilot/setup-publint-in-ci branch from 1027d65 to 3fe00e6 Compare January 20, 2026 15:25
@shulaoda shulaoda marked this pull request as ready for review January 20, 2026 15:25
Copilot AI review requested due to automatic review settings January 20, 2026 15:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR integrates publint validation for all published npm packages to ensure proper package.json exports and module configurations.

Changes:

  • Added publint dependency (v0.3.16) and lint-publint script to validate package exports
  • Integrated publint checks into the lint-node justfile target and CI pipeline
  • Added CI validation steps for all published packages: rolldown, @rolldown/pluginutils, @rolldown/debug, and @rolldown/browser

Reviewed changes

Copilot reviewed 3 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
package.json Added publint dependency and lint-publint script covering three core packages
pnpm-lock.yaml Added publint and its dependencies (@publint/pack, package-manager-detector, mri, sade)
justfile Integrated lint-publint into lint-node target
.github/workflows/ci.yml Added publint validation in node-validation job (core packages) and build-browser job (@rolldown/browser)
packages/debug/src/generated/ModuleGraphReady.ts Reformatted auto-generated type definition from multi-line to single-line
packages/debug/src/generated/ChunkGraphReady.ts Reformatted auto-generated type definition from multi-line to single-line
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@shulaoda shulaoda marked this pull request as draft January 20, 2026 15:46
@shulaoda shulaoda marked this pull request as ready for review January 20, 2026 15:54
@shulaoda shulaoda force-pushed the copilot/setup-publint-in-ci branch from 3fe00e6 to 67e9044 Compare January 20, 2026 15:54
@shulaoda
Copy link
Member

@copilot update the PR description from files changed, but don't modify or push commits

Copy link
Contributor Author

Copilot AI commented Jan 20, 2026

@copilot update the PR description from files changed, but don't modify or push commits

Updated PR description based on files changed:


Summary

Adds publint validation for all published npm packages to ensure proper package.json exports and module configurations are maintained in CI.

Changes

Dependencies

  • package.json: Added publint@^0.3.16 as devDependency
  • pnpm-lock.yaml: Updated lockfile with publint and its dependencies

Linting Integration

  • package.json: Added lint-publint script that validates 4 published packages:

    • packages/rolldown
    • packages/browser
    • packages/debug
    • packages/pluginutils
  • justfile: Integrated pnpm lint-publint into lint-node target

CI Workflow

  • .github/workflows/ci.yml: Enhanced node-validation job to:
    • Add WASI target for browser package build
    • Build all published packages (rolldown, browser, debug, pluginutils) using just commands
    • Run pnpm lint-publint to validate all packages after build
    • Ensures publint runs in CI on every PR

Usage

# Check all published packages locally
pnpm lint-publint

# Full Node.js validation (includes publint)
just lint-node

What publint validates

  • Export path correctness in package.json
  • Module field configurations (main, module, types)
  • Type definition alignment
  • Package.json best practices and common mistakes

Copy link
Member

hyf0 commented Jan 21, 2026

Merge activity

  • Jan 21, 7:13 AM UTC: The merge label 'graphite: merge-when-ready' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Jan 21, 8:49 AM UTC: The merge label 'graphite: merge-when-ready' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Jan 21, 8:50 AM UTC: The merge label 'graphite: merge-when-ready' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.

@shulaoda shulaoda merged commit a0267d4 into main Jan 21, 2026
34 checks passed
@shulaoda shulaoda deleted the copilot/setup-publint-in-ci branch January 21, 2026 08:50
@github-actions github-actions bot mentioned this pull request Jan 22, 2026
shulaoda pushed a commit that referenced this pull request Jan 22, 2026
## [1.0.0-rc.1] - 2026-01-22

### 🚀 Features

- debug_info: add facade chunk elimination reason (#7980) by @IWANABETHATGUY
- support lazy barrel optimization (#7933) by @shulaoda
- add `experimental.lazyBarrel` option (#7908) by @shulaoda
- skip unused external modules from IIFE parameter list (#7978) by @sapphi-red
- add custom panic hook for better crash reporting (#7752) by @shulaoda
- treeshake: add `invalidImportSideEffects` option (#7958) by @shulaoda
- merge allow-extension emitted chunks (#7940) by @IWANABETHATGUY
- nativeMagicString generateMap (#7944) by @IWANABETHATGUY
- Include meta.magicString in RenderChunkMeta (#7943) by @IWANABETHATGUY
- debug_info: add debug info for eliminated facade chunks (#7946) by @IWANABETHATGUY
- stablize `strictExecutionOrder` and move to `output.strictExecutionOrder` from `experimental.strictExecutionOrder` (#7901) by @sapphi-red
- add documentation link to require() error message (#7898) by @Copilot
- add `codeSplitting: boolean` and deprecate `inlineDynamicImports` (#7870) by @hyf0
- dev: change lazy module URL to `/@vite/lazy` from `/lazy` (#7884) by @sapphi-red

### 🐛 Bug Fixes

- transform JS files containing `</script>` to escape template literals (#7987) by @IWANABETHATGUY
- apply avoid-breaking-exported-api = false to clippy.toml and fix clippy errors (#7982) by @Boshen
- pass `kind` from `this.resolve` (#7981) by @sapphi-red
- rolldown_plugin_vite_resolve: ignore yarn resolution errors and fallback to other resolvers (#7968) by @sapphi-red
- renamer: prevent renaming symbols when there no conflicts (#7936) by @Dunqing
- correct minifyInterExports when emitted chunk got merged (#7941) by @IWANABETHATGUY
- deduplicate entry points when module is both emitted and dynamically imported (#7885) by @IWANABETHATGUY
- dev: add `@vite-ignore` to lazy compilation proxy module import (#7883) by @sapphi-red

### 🚜 Refactor

- rust: enable clippy nursery lint group (#8002) by @Boshen
- rust: fix inconsistent_struct_constructor clippy lint (#7999) by @Boshen
- rust: fix needless_pass_by_ref_mut clippy lint (#7994) by @Boshen
- rust: fix unnecessary_wraps clippy lint (#7993) by @Boshen
- rust: fix enum_variant_names clippy lint (#7992) by @Boshen
- fix single_match clippy lint (#7997) by @Boshen
- rust: fix redundant_clone clippy lint (#7996) by @Boshen
- rust: rename CJS to Cjs to follow upper_case_acronyms lint (#7991) by @Boshen
- rust: remove unnecessary Box wrapper around Vec in MemberExprRef (#7990) by @Boshen
- import_record: make resolved_module optional (#7907) by @shulaoda
- remove unnecessary `.parse` (#7966) by @sapphi-red
- remove unused `ImportRecordMeta::IsPlainImport` (#7948) by @shulaoda
- proper set chunk meta (#7939) by @IWANABETHATGUY
- module_loader: remove `try_spawn_with_cache` (#7920) by @shulaoda
- link_stage: simplify `ImportStatus::NoMatch` to unit variant (#7909) by @shulaoda
- improve global scope symbol reservation in chunk deconfliction (#7906) by @IWANABETHATGUY
- simplify ast unwrapping in generate stage (#7900) by @IWANABETHATGUY
- generate_stage: optimize cross-chunk imports computation (#7889) by @shulaoda
- link_stage: move runtime require logic into match branch (#7892) by @shulaoda
- link_stage: simplify runtime require reference conditions (#7891) by @shulaoda
- link_stage: inline and simplify external dynamic import check (#7890) by @shulaoda
- generate_stage: simplify external module import collection logic (#7887) by @shulaoda
- avoid redundant module lookup in TLA computation (#7886) by @shulaoda
- dev: `devEngine.compileEntry` does not return null (#7882) by @sapphi-red
- dev: fix type errors for test HMR runtime (#7881) by @sapphi-red
- dev: move `clientId` property to `DevRuntime` base class (#7880) by @sapphi-red
- dev: generate client id in browser (#7878) by @hyf0

### 📚 Documentation

- apis: organize hook filters documentation and add composable filters section (#8003) by @sapphi-red
- update `vitepress-plugin-group-icons` (#7947) by @yuyinws
- add in-depth documentation for lazy barrel optimization (#7969) by @shulaoda
- bump theme & update activeMatch for reference (#7963) by @mdong1909
- mark `build()` API as experimental (#7954) by @sapphi-red
- enhance search functionality with improved scoring and filtering logic (#7935) by @hyf0
- add minor comments to multiple types (#7930) by @sapphi-red
- refactor advanedChunks related content to adapt manual code splitting concept (#7925) by @hyf0
- apis: add content to Bundler API page (#7926) by @sapphi-red
- apis: restructure plugin API related docs (#7924) by @sapphi-red
- add plugin API docs (#7923) by @sapphi-red
- apis: add docs to important APIs (#7913) by @sapphi-red
- move the important APIs to the top of the sidebar (#7912) by @sapphi-red
- apis: add more content to CLI documentation (#7911) by @sapphi-red
- apis: generate CLI docs from --help output (#7910) by @sapphi-red
- add fathom analytics (#7896) by @mdong1909

### ⚡ Performance

- use u32 for string indices in string_wizard and rolldown to reduce memory usage (#7989) by @IWANABETHATGUY
- rust: remove all usages of `with_scope_tree_child_ids(true)` for `SemanticBuilder` (#7995) by @Dunqing
- renamer: skip unnecessary nested scope symbol processing (#7899) by @Dunqing
- module_loader: use ArcStr for importer_id to avoid string copy (#7922) by @shulaoda
- module_loader: defer `ModuleTaskOwner` construction until needed (#7921) by @shulaoda
- renamer: optimize symbol renaming by eliminating `rename_non_root_symbol` pass (#7867) by @Dunqing

### 🧪 Testing

- add lazy barrel optimization test cases (#7967) by @shulaoda

### ⚙️ Miscellaneous Tasks

- remove lazy barrel option (#8010) by @shulaoda
- mark watch API as experimental (#8004) by @sapphi-red
- deps: update dependency lodash-es to v4.17.23 [security] (#8001) by @renovate[bot]
- git ignore zed local config (#7988) by @IWANABETHATGUY
- setup publint for published packages (#7972) by @Copilot
- enable `tagged_template_transform ` uncondionally (#7975) by @IWANABETHATGUY
- deps: update oxc to v0.110.0 (#7964) by @renovate[bot]
- deps: update oxc apps (#7962) by @renovate[bot]
- ai: add upgrade-oxc Claude skill (#7957) by @Boshen
- deps: update rollup submodule for tests to v4.55.2 (#7959) by @sapphi-red
- deps: update test262 submodule for tests (#7960) by @sapphi-red
- deps: update crate-ci/typos action to v1.42.1 (#7961) by @renovate[bot]
- deps: update rust crates (#7951) by @renovate[bot]
- deps: update npm packages (#7953) by @renovate[bot]
- deps: update github-actions (#7952) by @renovate[bot]
- deps: update npm packages (#7950) by @renovate[bot]
- format magic-string test before write to disk (#7945) by @IWANABETHATGUY
- deps: update dependency rolldown-plugin-dts to ^0.21.0 (#7915) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.11.1 (#7914) by @renovate[bot]
- deps: update dependency diff to v8.0.3 [security] (#7904) by @renovate[bot]
- remove outdated TODO comment in `collect_depended_symbols` (#7888) by @shulaoda
- deps: update oxc resolver to v11.16.3 (#7876) by @renovate[bot]
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.

Infra: setup publint

4 participants