Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
jsii
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!
-
Puts Debuggerer
Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
awesome-dva
A curated list of "damn vulnerable apps" and exploitable VMs / wargames. See contributing.md for information.
import { cdk } from "projen"; const project = new cdk.JsiiProject({ name: "p6-projen-project-awesome-list", author: "Philip M. Gollucci", authorAddress: "[email protected]", repositoryUrl: "https://github.com/p6m7g8/p6-projen-project-awesome-list.git", description: "Projen External Project for awesome-lists", stability: "experimental", keywords: ["awesome lists", "projen", "list", "awesome", "constructs"], defaultReleaseBranch: "main", projenrcTs: true, gitpod: true, devContainer: true, codeCov: true, prettier: true, releaseFailureIssue: true, autoApproveUpgrades: true, autoApproveOptions: { allowedUsernames: ["p6m7g8-automation"], }, deps: ["projen@^0.53.14"], peerDeps: ["projen@^0.53.14"], publishToPypi: { distName: "p6-projen-project-awesome-list", module: "p6_projen_project_awesome_list", }, publishToMaven: { javaPackage: "com.github.p6m7g8.P6ProjectProjenAwesomeList", mavenGroupId: "com.github.p6m7g8", mavenArtifactId: "p6-projen-project-awesome-list", }, publishToNuget: { dotNetNamespace: "P6m7g8.P6AwesomeList", packageId: "P6m7g8.P6AwesomeList", }, publishToGo: { moduleName: "github.com/p6m7g8/p6-projen-project-awesome-list", // why doesn't this default to repositoryUrl? }, }); project.synth();
Look what happened with the Github gh cli just recently with extensions in the 2.0 release. I even wrote one of them p6m7g8/gh-parallel to parallelly clone a Github organization. Right now there 191 extensions.
I will not cover this here. A good option is nodenv. For the purposes of this excersie you need to be on node 14.x - 16.x (not 12.x or 17.x).
If you goto the main projen README.md, you'll see these instructions for using your new module:
I intend to provide this module in every language JSSI supports so the lowest I can go is the projen type jsii.
Example(wip): https://github.com/p6m7g8/p6-cdktf-github-p6m7g8
import { cdk } from "projen"; const project = new cdk.JsiiProject({ name: "p6-projen-project-awesome-list", author: "Philip M. Gollucci", authorAddress: "[email protected]", repositoryUrl: "https://github.com/p6m7g8/p6-projen-project-awesome-list.git", description: "Projen External Project for awesome-lists", stability: "experimental", keywords: ["awesome lists", "projen", "list", "awesome", "constructs"], defaultReleaseBranch: "main", projenrcTs: true, gitpod: true, devContainer: true, codeCov: true, prettier: true, releaseFailureIssue: true, autoApproveUpgrades: true, autoApproveOptions: { allowedUsernames: ["p6m7g8-automation"], }, deps: ["projen@^0.53.14"], peerDeps: ["projen@^0.53.14"], publishToPypi: { distName: "p6-projen-project-awesome-list", module: "p6_projen_project_awesome_list", }, publishToMaven: { javaPackage: "com.github.p6m7g8.P6ProjectProjenAwesomeList", mavenGroupId: "com.github.p6m7g8", mavenArtifactId: "p6-projen-project-awesome-list", }, publishToNuget: { dotNetNamespace: "P6m7g8.P6AwesomeList", packageId: "P6m7g8.P6AwesomeList", }, publishToGo: { moduleName: "github.com/p6m7g8/p6-projen-project-awesome-list", // why doesn't this default to repositoryUrl? }, }); project.synth();
Well first, you need a use case. In this case, I wanted to make an list for projen. It then occured to me there are hundreds of awesome lists. I had never made an awesome list before. Turns out currently most folks would use yeoman. Unfrotunately, while it works great, it can definitely add some more end-2-end automation like CI/CD, dep updates, security updates, auto-approvals/merging, auto linting......