目录
Momo Kornher

chore: migrate to Yarn Berry (v4) (#2626)

This migrates the jsii-compiler project from Yarn Classic (v1) to Yarn Berry (v4) with the node-modules linker, following the same approach used in jsii-rosetta#3622.

The old common.ts exported hardcoded helper functions (ACTIONS_CHECKOUT, ACTIONS_SETUP_NODE, YARN_INSTALL) that duplicated action versions and flags across all workflows. These have been replaced with a single workflowSetup() wrapper around projen’s project.renderWorkflowSetup(), which automatically generates the correct corepack, setup-node, and install steps based on the package manager configuration. Checkout steps now use github.WorkflowSteps.checkout() where possible.

Jobs that require custom setup-node configuration (matrix node versions, custom registry URLs) still use inline steps, since the projen primitives don’t support those options.

Additionally, a 3-day cooldown has been added to the dependency upgrade workflow as supply chain protection. This is enforced at two levels: ncu --cooldown=3 filters packages during discovery, and YARN_NPM_MINIMAL_AGE_GATE=4320m blocks them at yarn install time.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

8天前1096次提交

jsii

Join the chat at https://cdk.Dev All Contributors Build Status npm docker

Overview

jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!

A class library written in TypeScript can be used in projects authored in TypeScript or Javascript (as usual), but also in Python, Java, C# (and other languages from the .NET family), …

Documentation

Head over to our documentation website!

The jsii toolchain is spread out on multiple repositories:

  • aws/jsii-compiler is where the jsii compiler is maintained (except releases in the 1.x line)
  • aws/jsii-rosetta is where the jsii-rosetta sample code transliteration tool is maintained (except releases in the 1.x line)
  • aws/jsii is where the rest of the toolchain is maintained, including:
    • @jsii/spec, the package that defines the .jsii assembly specification
    • jsii-config, an interactive tool to help configure your jsii package
    • jsii-pacmak, the bindings generator for jsii packages
    • jsii-reflect, a higher-level way to process .jsii assemblies
    • The jsii runtime libraries for the supported jsii target languages
    • 1.x release lines of jsii and jsii-rosetta

Blog Posts

Here’s a collection of blog posts (in chronological order) related to jsii:

If you wrote blog posts about jsii and would like to have them referenced here, do not hesitate to file a pull request to add the links here!

:gear: Maintenance & Support

The applicable Maintenance & Support policy can be reviewed in SUPPORT.md.

The current status of jsii compiler releases is:

Release Status EOS Comment
5.9.x Current TBD npm
5.8.x Unsupported 2026-02-15 npm

🔇 Silencing Warnings

The --silence-warnings option allows you to suppress specific warnings from the compiler output. Silenced warnings are still emitted internally (e.g. they are still part of the assembly), but are not printed to the console. When --fail-on-warnings (--Werr) is set, silenced warnings are not treated as errors.

Warnings can be identified by JSII code, number, or diagnostic name:

# By full JSII code
jsii --silence-warnings JSII5018

# By number only
jsii --silence-warnings 5018

# By specific diagnostic name (the part after the slash)
jsii --silence-warnings reserved-word

# By full diagnostic name
jsii --silence-warnings language-compatibility/reserved-word

# By category (silences ALL warnings in that category)
jsii --silence-warnings language-compatibility

# Multiple warnings
jsii --silence-warnings reserved-word JSII5019

Inline Suppression

Individual warnings can be suppressed directly in source code using the @jsii suppress directive. This is useful when you want --fail-on-warnings enabled globally but need to allow specific instances of a warning.

Each directive accepts a single warning identifier using the same formats as --silence-warnings. An optional text after the identifier is treated as an explanation comment. Use multiple directives to suppress multiple warnings:

export class MyClass {
  /**
   * @jsii suppress JSII5019 this name is intentional
   * @jsii suppress reserved-word
   */
  public myClass(): void { }
}

The suppression applies to the annotated declaration and all of its members. For example, a @jsii suppress directive on a class will suppress matching warnings on all methods and properties within that class.

Only warnings that reference a source code location can be suppressed inline. Warnings not tied to a specific node (e.g. JSII0003 for a missing README) are not affected.

:balance_scale: License

jsii is distributed under the Apache License, Version 2.0.

See LICENSE and NOTICE for more information.

:gear: Contributing

See CONTRIBUTING.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Aatman
Aatman

💻
Aaron Costley
Aaron Costley

🐛 💻 🤔 👀
Abdallah Hodieb
Abdallah Hodieb

🐛
Adam Ruka
Adam Ruka

🐛 💻 🚧 👀
Adrian Dimech
Adrian Dimech

💻
Adrian Hesketh
Adrian Hesketh

💻
Alex Pulver
Alex Pulver

🐛
Amir Szekely
Amir Szekely

💻
Andi Pabst
Andi Pabst

🐛
Andrew Wason
Andrew Wason

🐛 💻
André Fontenele
André Fontenele

💻
Andy Slezak
Andy Slezak

💻
Ansgar Mertens
Ansgar Mertens

🚧 💻 🐛
Anshul Guleria
Anshul Guleria

🤔
Anurag Roy
Anurag Roy

💻
Ari Palo
Ari Palo

🤔
Armaan Tobaccowalla
Armaan Tobaccowalla

🐛
Bartłomiej Jurek
Bartłomiej Jurek

🐛
Ben Bridts
Ben Bridts

📖
Ben Chaimberg
Ben Chaimberg

📖
Ben Farr
Ben Farr

📖
Ben Walters
Ben Walters

🤔
Benjamin Macher
Benjamin Macher

📖
Benjamin Maizels
Benjamin Maizels

💻 👀
Bervianto Leo Pratama
Bervianto Leo Pratama

💻
Bill Cauchois
Bill Cauchois

🤔
Bradley Sherman
Bradley Sherman

💻
Brecht Verhoeve
Brecht Verhoeve

🤔
Breland Miley
Breland Miley

💻
Bryan Moffatt
Bryan Moffatt

💻
CaerusKaru
CaerusKaru

💻 🚧
Calvin Combs
Calvin Combs

💻 👀
Camilo Bermúdez
Camilo Bermúdez

🐛
Campion Fellin
Campion Fellin

💻
Carter Van Deuren
Carter Van Deuren

🐛
Chris Garvis
Chris Garvis

📖
Christian Moore
Christian Moore

🐛
Christophe Vico
Christophe Vico

🐛
Christopher Currie
Christopher Currie

💻 🤔
Christopher Rybicki
Christopher Rybicki

📖 🐛 💻
Colin Francis
Colin Francis

💻
CommanderRoot
CommanderRoot

💻
Cory Hall
Cory Hall

🐛
Cristian Măgherușan-Stanciu
Cristian Măgherușan-Stanciu

🐛
CyrusNajmabadi
CyrusNajmabadi

🐛 🤔
Damian Silbergleith
Damian Silbergleith

💻 🐛
Daniel Dinu
Daniel Dinu

🐛 💻
Daniel Schmidt
Daniel Schmidt

🐛 💻
Daniel Schroeder
Daniel Schroeder

🐛 💻 📖 🤔 🚧
Dave Slotnick
Dave Slotnick

🐛
David Bell
David Bell

💻
Donald Stufft
Donald Stufft

🐛 💻 🤔 👀
Dongie Agnir
Dongie Agnir

💻 👀
Eduardo Rabelo
Eduardo Rabelo

📖
Eduardo Sena S. Rosa
Eduardo Sena S. Rosa

🐛
Elad Ben-Israel
Elad Ben-Israel

🐛 💻 🤔 🚧 👀 📢
Eli Polonsky
Eli Polonsky

🐛 💻 🤔 🚧 👀
Eric Carboni
Eric Carboni

💻
Eric Z. Beard
Eric Z. Beard

📆
Erik Karlsson
Erik Karlsson

🐛
Eugene Kozlov
Eugene Kozlov

💻
Fabio Gentile
Fabio Gentile

🐛
Florian Eitel
Florian Eitel

🤔
Glib Shpychka
Glib Shpychka

🐛
Graham Lea
Graham Lea

🤔 👀
Greg Lucas
Greg Lucas

💻
Hamza Assyad
Hamza Assyad

🐛 💻 🤔 👀
Hari Pachuveetil
Hari Pachuveetil

📝 📖
Hirotaka Tagawa / wafuwafu13
Hirotaka Tagawa / wafuwafu13

💻
Hogan Bobertz
Hogan Bobertz

💻
Hsing-Hui Hsu
Hsing-Hui Hsu

💻 📖 🤔 👀
Huy Phan (Harry)
Huy Phan (Harry)

💻
Ikko Ashimine
Ikko Ashimine

📖
James
James

🐛 💻
James Kelley
James Kelley

🐛
James Mead
James Mead

💻
James Siri
James Siri

💻 🚧
Jason Del Ponte
Jason Del Ponte

🤔 👀
Jason Fulghum
Jason Fulghum

🤔 📆 👀
Jeff Malins
Jeff Malins

💻
Jerry Kindall
Jerry Kindall

📖 🤔
Jimmy Gaussen
Jimmy Gaussen

🤔
Johannes Weber
Johannes Weber

📖
John Pantzlaff
John Pantzlaff

💻
Jon Day
Jon Day

💻
Jon Steinich
Jon Steinich

🐛 🤔 💻
Joseph Lawson
Joseph Lawson

👀
Joseph Martin
Joseph Martin

🐛
Junix
Junix

🐛
Justin Frahm
Justin Frahm

🐛
Justin Taylor
Justin Taylor

🐛
Kaizen Conroy
Kaizen Conroy

💻
Kaushik Borra
Kaushik Borra

🐛
Kayo
Kayo

💻
Kendra Neil
Kendra Neil

💻
Knut O. Hellan
Knut O. Hellan

🐛
Kyle Thomson
Kyle Thomson

💻 👀
Leandro Padua
Leandro Padua

🐛
Liang Zhou
Liang Zhou

🐛 💻
Madeline Kusters
Madeline Kusters

💻 🐛
Maja S Bratseth
Maja S Bratseth

🐛
Marcos Diez
Marcos Diez

🐛
Mark Nielsen
Mark Nielsen

💻
Matthew Bonig
Matthew Bonig

🐛 📝
Matthew Pirocchi
Matthew Pirocchi

💻 🤔 👀
Meng Xin Zhu
Meng Xin Zhu

🐛
Michael Neil
Michael Neil

🚧
Mike Lane
Mike Lane

🐛
Mitch Garnaat
Mitch Garnaat

🐛 💻 🤔 👀
Mitchell Valine
Mitchell Valine

🐛 💻 🤔 🚧 👀
Mohamad Soufan
Mohamad Soufan

📖
Mohamed Elasmar
Mohamed Elasmar

💻
Momo Kornher
Momo Kornher

💻
Mykola Mogylenko
Mykola Mogylenko

🐛
Naumel
Naumel

👀
Neta Nir
Neta Nir

💻 🤔 🚧 👀
Nick Lynch
Nick Lynch

🐛 💻 🚧 👀
Niranjan Jayakar
Niranjan Jayakar

🐛 💻 🤔 🚧 👀
Noah Litov
Noah Litov

💻 🚧 👀
Otavio Macedo
Otavio Macedo

💻 🐛
PIDZ - Bart
PIDZ - Bart

🤔
Pahud Hsieh
Pahud Hsieh

💻
Peter Woodworth
Peter Woodworth

🚧
Petr Kacer
Petr Kacer

🐛
Petra Barus
Petra Barus

💻
Philip Cali
Philip Cali

🤔
Quentin Loos
Quentin Loos

🤔
Raphael
Raphael

🐛
Richard H Boyd
Richard H Boyd

🐛
Rico Huijbers
Rico Huijbers

🐛 💻 🤔 🚧 👀
Romain Marcadier
Romain Marcadier

🐛 💻 🎨 🤔 🚧 👀 📝
Ryan Parker
Ryan Parker

💻
SADIK KUZU
SADIK KUZU

👀
SK
SK

🤔
Sam Fink
Sam Fink

💻 👀
Sam Goodwin
Sam Goodwin

👀
Sebastian Korfmann
Sebastian Korfmann

🐛 💻 🤔
Sepehr Laal
Sepehr Laal

🐛
Shailja Khurana
Shailja Khurana

💻
Shane Witbeck
Shane Witbeck

🤔
Shiv Lakshminarayan
Shiv Lakshminarayan

💻 🚧 👀
Somaya
Somaya

💻 🤔 🚧 👀
Stephen Kuenzli
Stephen Kuenzli

📖
Takahiro Sugiura
Takahiro Sugiura

📖
The Gitter Badger
The Gitter Badger

💻 🚧
Thomas Matecki
Thomas Matecki

💻
Thomas Poignant
Thomas Poignant

🐛
Thomas Steinbach
Thomas Steinbach

🐛
Thorsten Hoeger
Thorsten Hoeger

💻
Tim Wagner
Tim Wagner

🐛 🤔
Timothy Jones
Timothy Jones

💻
Tobias Lidskog
Tobias Lidskog

💻
Tom Bonner
Tom Bonner

🐛
Tom Keller
Tom Keller

💻
Ty Coghlan
Ty Coghlan

🐛
Tyler van Hensbergen
Tyler van Hensbergen

🤔
Vinayak Kukreja
Vinayak Kukreja

💻
Vlad Hrybok
Vlad Hrybok

🐛
Vladimir Shchur
Vladimir Shchur

🐛
Will Bender
Will Bender

💻
Yan Zhulanow
Yan Zhulanow

💻
Yathi
Yathi

💻
Yigong Liu
Yigong Liu

🐛 🤔
Zach Bienenfeld
Zach Bienenfeld

🐛
ajnarang
ajnarang

🤔
andyan
andyan

💻
aniljava
aniljava

💻
arnogeurts-sqills
arnogeurts-sqills

🐛 💻
cn-cit
cn-cit

🐛
deccy-mcc
deccy-mcc

🐛
dependabot-preview[bot]
dependabot-preview[bot]

🐛 🚧
dependabot[bot]
dependabot[bot]

🚧
dheffx
dheffx

🐛
gregswdl
gregswdl

🐛
guyroberts21
guyroberts21

📖
mattBrzezinski
mattBrzezinski

📖
mergify
mergify

🚧
mergify[bot]
mergify[bot]

🚧
mikewrighton
mikewrighton

💻
nathannaveen
nathannaveen

🚧
paulhcsun
paulhcsun

💻
seiyashima42
seiyashima42

🐛 💻 📖
sullis
sullis

💻
vaneek
vaneek

🐛
wendysophie
wendysophie

🐛
ysuzuki19
ysuzuki19

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号