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

Strange behaviour with prepublishOnly script runned by bun publish on windows #15388

Open
kravetsone opened this issue Nov 24, 2024 · 1 comment
Assignees
Labels
bug Something isn't working bun install Something that relates to the npm-compatible client confirmed bug We can reproduce this issue windows An issue that is known to occur on Windows

Comments

@kravetsone
Copy link

kravetsone commented Nov 24, 2024

What version of Bun is running?

1.1.36+ededc168c

What platform is your computer?

Microsoft Windows NT 10.0.26100.0 x64

What steps can reproduce the bug?

Repository - monorepo with two packages

I run bun publish in the redis package folder but it exited with code 1 but when i run this prepublishOnly script all works fine

PS Z:\PROJECTS\GRAMIO\storages\packages\redis> bun publish
bun publish v1.1.36 (ededc168)
$ bunx tsc && bun test && bun ./scripts/release-jsr.ts && bunx pkgroll
Version 5.7.2
tsc: The TypeScript Compiler - Version 5.7.2                                                                            
                                                                                                                     TS 
COMMON COMMANDS

  tsc
  Compiles the current project (tsconfig.json in the working directory.)

  tsc app.ts util.ts
  Ignoring tsconfig.json, compiles the specified files with default compiler options.

  tsc -b
  Build a composite project in the working directory.

  tsc --init
  Creates a tsconfig.json with the recommended settings in the working directory.

  tsc -p ./path/to/tsconfig.json
  Compiles the TypeScript project located at the specified path.

  tsc --help --all
  An expanded version of this information, showing all possible compiler options

  tsc --noEmit
  tsc --target esnext
  Compiles the current project, with additional settings.

COMMAND LINE FLAGS

     --help, -h  Print this message.

    --watch, -w  Watch input files.

          --all  Show all compiler options.

  --version, -v  Print the compiler's version.

         --init  Initializes a TypeScript project and creates a tsconfig.json file.

  --project, -p  Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.

   --showConfig  Print the final configuration instead of building.

    --build, -b  Build one or more projects and their dependencies, if out of date

COMMON COMPILER OPTIONS

               --pretty  Enable color and formatting in TypeScript's output to make compiler errors easier to read.
                  type:  boolean
               default:  true

      --declaration, -d  Generate .d.ts files from TypeScript and JavaScript files in your project.
                  type:  boolean
               default:  `false`, unless `composite` is set

       --declarationMap  Create sourcemaps for d.ts files.
                  type:  boolean
               default:  false

  --emitDeclarationOnly  Only output d.ts files and not JavaScript files.
                  type:  boolean
               default:  false

            --sourceMap  Create source map files for emitted JavaScript files.
                  type:  boolean
               default:  false

               --noEmit  Disable emitting files from a compilation.
                  type:  boolean
               default:  false

           --target, -t  Set the JavaScript language version for emitted JavaScript and include compatible library declarations.
                one of:  es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, esnext
               default:  es5

           --module, -m  Specify what module code is generated.
                one of:  none, commonjs, amd, umd, system, es6/es2015, es2020, es2022, esnext, node16, nodenext, preserve
               default:  undefined

                  --lib  Specify a set of bundled library declaration files that describe the target runtime environment.
           one or more:  es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, es2023, es2024, esnext, dom, dom.iterable, dom.asynciterable, webwor                         ker, webworker.importscripts, webworker.iterable, webworker.asynciterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.i                         terable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2016.intl, es2017.arraybuf                         fer, es2017.date, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable                         /esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es201                         9.intl, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es202                         0.number, es2021.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array, es2022.error, es2022.intl, es2022.object, es20                         22.string, es2022.regexp, es2023.array, es2023.collection, es2023.intl, es2024.arraybuffer, es2024.collection, es2024.object/esnext.object, es202                         4.promise/esnext.promise, es2024.regexp/esnext.regexp, es2024.sharedmemory, es2024.string/esnext.string, esnext.array, esnext.collection, esnext.                         intl, esnext.disposable, esnext.decorators, esnext.iterator, decorators, decorators.legacy
               default:  undefined

              --allowJs  Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files.
                  type:  boolean
               default:  false

              --checkJs  Enable error reporting in type-checked JavaScript files.
                  type:  boolean
               default:  false

                  --jsx  Specify what JSX code is generated.
                one of:  preserve, react, react-native, react-jsx, react-jsxdev
               default:  undefined

              --outFile  Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.

               --outDir  Specify an output folder for all emitted files.

       --removeComments  Disable emitting comments.
                  type:  boolean
               default:  false

               --strict  Enable all strict type-checking options.
                  type:  boolean
               default:  false

                --types  Specify type package names to be included without being referenced in a source file.

      --esModuleInterop  Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.   
                  type:  boolean
               default:  false

You can learn about all of the compiler options at https://aka.ms/tsc

error: script "prepublishOnly" exited with code 1
PS Z:\PROJECTS\GRAMIO\storages\packages\redis> bun prepublishOnly
$ bunx tsc && bun test && bun ./scripts/release-jsr.ts && bunx pkgroll
bun test v1.1.36 (ededc168)

tests\index.test.ts:
✓ redisStorage > should set and get a value [15.00ms]
✓ redisStorage > should return undefined for a non-existent key
✓ redisStorage > should check if a key exists
✓ redisStorage > should return false when deleting a non-existent key
✓ redisStorage > should set and get a complex object
✓ redisStorage > should respect the TTL option [1110.00ms]
✓ redisStorage > should use keyPrefix correctly

 9 pass
 0 fail
 13 expect() calls
Ran 9 tests across 1 files. [1280.00ms]
Prepared to release on JSR!

What is the expected behavior?

No response

What do you see instead?

No response

Additional information

As a workaraound u can rename prepublishOnly to something else until it will be fixed and run it manually

@kravetsone kravetsone added bug Something isn't working needs triage labels Nov 24, 2024
@RiskyMH RiskyMH added bun install Something that relates to the npm-compatible client confirmed bug We can reproduce this issue windows An issue that is known to occur on Windows and removed needs triage labels Nov 24, 2024
@RiskyMH
Copy link
Member

RiskyMH commented Nov 25, 2024

The issue seems to be because bun publish runs it with context of root directory (of monorepo), this causes tsc to give help menu as no config.

C:\bun-repos\15388\packages\redis>bun publish
bun publish v1.1.36 (ededc168)
$ bun --print process.argv
[ "C:\\Users\\Risky\\.bun\\bin\\bun.exe", "C:\\bun-repos\\15388\\[eval]" ]

packed 0.86KB package.json
packed 1.1KB LICENSE
packed 0.66KB README.md
// ... other things

C:\bun-repos\15388\packages\redis>bun run prepublishOnly
$ bun --print process.argv
[ "C:\\Users\\Risky\\.bun\\bin\\bun.exe", "C:\\bun-repos\\15388\\packages\\redis\\[eval]" ]

And this does seem to be windows only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working bun install Something that relates to the npm-compatible client confirmed bug We can reproduce this issue windows An issue that is known to occur on Windows
Projects
None yet
Development

No branches or pull requests

3 participants