Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
229a685
Move code used only by the extension into its scope and out of the co…
nblagoev Mar 20, 2021
a687b0b
Move the common and language-server components to ./packages dir
nblagoev Mar 20, 2021
4410598
Update license years
nblagoev Mar 20, 2021
d2a4808
Merge branch 'master' into vrdt-monorepo
nblagoev Mar 21, 2021
22d76bf
Add instllation steps to the README
nblagoev Mar 21, 2021
23b4185
Ignore the generated proto files is eslint
nblagoev Mar 21, 2021
46891ce
Split the root package.json into 4 - root, extension, vrdt-common and…
nblagoev Apr 10, 2021
b545672
Fix vrdt-common and vro-language-server dependencies
nblagoev Apr 10, 2021
03ade73
Use npm workspaces
nblagoev Apr 10, 2021
3fe0afb
Remove the generated proto files from the repo
nblagoev Apr 10, 2021
5b0146f
Fix jest paths
nblagoev Apr 10, 2021
f6183ac
Merge extension's package.json into the root one
nblagoev Apr 10, 2021
ab5bb09
Add peerDependencies used by vrdt's transitive dependencies to allow …
nblagoev Apr 10, 2021
161060a
Bundle using webpack
nblagoev Apr 10, 2021
6a937eb
Downgrade to language server 6.x to fix the regression introduced wit…
nblagoev Apr 10, 2021
c42699a
Remove the shebang header from langserver.ts
nblagoev Apr 10, 2021
00bbad7
Change the entry point in package.json when building the production p…
nblagoev Apr 10, 2021
d6e2275
Split webpack config into multiple files to avoid mixing the base dirs
nblagoev Apr 11, 2021
b878801
Update the source organization wiki
nblagoev Apr 11, 2021
e82ed76
Prepare v2.3.0
nblagoev Apr 11, 2021
8823d30
Add readme files for vrdt-common and vro-language-server
nblagoev Apr 11, 2021
ab2626a
Ignore non-relevant files when building npm packages for vrdt-common …
nblagoev Apr 11, 2021
50ae864
Merge branch 'master' into vrdt-monorepo
nblagoev Apr 20, 2021
070be30
Add the VMware Code of Conduct
nblagoev Apr 21, 2021
59f7e8a
Move the Usage documentation from README to the wiki
nblagoev Apr 21, 2021
ba42781
Build packages/node/* and publish to GitHub Registry during Release
nblagoev Apr 21, 2021
b56f833
Move Code Of Conduct and Contributing guides to .github
nblagoev Apr 21, 2021
7efe02a
Fix package paths for the eslint GitHub workflow
nblagoev Apr 22, 2021
3b5b8b5
Replace gpg with minisign for verifying release assets
nblagoev May 8, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ build/
coverage/
node_modules/

language-server/src/proto/**
packages/node/vro-language-server/src/proto/**

gulpfile.js
jest.config.js
webpack.config.js
4 changes: 2 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ module.exports = {
"import/named": "off",
"import/no-unresolved": [
"warn",
{ ignore: ["vscode", "vrealize-common", "vro-language-server", "../../proto"] }
{ ignore: ["vscode", "../../proto"] }
],
"import/namespace": "off",
"import/newline-after-import": "warn",
Expand All @@ -134,7 +134,7 @@ module.exports = {
"!",
{
pattern: " * Copyright \\d{4}-\\d{4} VMware, Inc\\.",
template: " * Copyright 2018-2020 VMware, Inc."
template: " * Copyright 2018-2021 VMware, Inc."
},
" * SPDX-License-Identifier: MIT",
" "
Expand Down
127 changes: 127 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in vRealize Developer Tools
project and our community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at oss-coc@vmware.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
File renamed without changes.
53 changes: 18 additions & 35 deletions .github/workflows/draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ jobs:
- name: Build VSIX package
run: "node node_modules/gulp/bin/gulp.js package"

- name: Build NPM tarballs
run: "npm pack --workspaces"

- name: Publish code coverage report
uses: codecov/codecov-action@v1
with:
Expand All @@ -56,19 +59,25 @@ jobs:
GPG_PRIVATE_KEY: ${{ secrets.RELEASE_GPG_PRIVATE_KEY }}
PASSPHRASE: ${{ secrets.RELEASE_GPG_PASSPHRASE }}

- name: Checksum and sign
- name: Checksum and sign all artifacts
run: |
sha256sum --tag vrealize-developer-tools-$PKG_VERSION.vsix > vrealize-developer-tools-$PKG_VERSION.vsix.sha256
gpg --default-key $KEYID --armor --detach-sig vrealize-developer-tools-$PKG_VERSION.vsix.sha256

find *.tgz -type f -exec sha256sum --tag {} \; | sort > packages.sha256
gpg --default-key $KEYID --armor --detach-sig packages.sha256
env:
PKG_VERSION: ${{steps.version_step.outputs.version}}
KEYID: ${{steps.import_gpg.outputs.keyid}}

- name: Upload artifact
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: vrealize-developer-tools-${{steps.version_step.outputs.version}}
path: |
*.tgz
packages.sha256
packages.sha256.asc
vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix
vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256
vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256.asc
Expand All @@ -85,36 +94,10 @@ jobs:
base-ref: ${{ env.baseRef }}
head-ref: ${{ github.ref }}

- name: Create release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: ${{steps.generate_changelog.outputs.result}}
draft: true
prerelease: false

- name: Upload release asset
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix
asset_name: vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix
asset_content_type: application/octet-stream

- name: Upload release checksum
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256
asset_name: vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256
asset_content_type: application/octet-stream

- name: Upload release signature
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256.asc
asset_name: vrealize-developer-tools-${{steps.version_step.outputs.version}}.vsix.sha256.asc
asset_content_type: application/octet-stream
- name: Create a release
run: |
tagname="${GITHUB_REF#refs/tags/}"
gh release create "$tagname" --draft --notes $RELEASE_NOTES *.tgz *.vsix *.sha256 *.asc
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RELEASE_NOTES: ${{steps.generate_changelog.outputs.result}}
2 changes: 1 addition & 1 deletion .github/workflows/lint-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ jobs:
uses: reviewdog/action-eslint@v1
with:
reporter: github-pr-review
eslint_flags: "common/src/**/*.ts extension/src/**/*.ts language-server/src/**/*.ts"
eslint_flags: "packages/node/vrdt-common/src/**/*.ts packages/node/vro-language-server/src/**/*.ts extension/src/**/*.ts "
39 changes: 29 additions & 10 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
types: [released]
jobs:
publish:
name: Publish to Visual Studio Marketplace
name: Publish to Visual Studio Marketplace and GitHub Packages
runs-on: ubuntu-latest
steps:
- name: Use Node.js 12.x
Expand All @@ -15,20 +15,39 @@ jobs:
- name: Install vsce
run: npm install -g vsce

- name: Download release asset
- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v2
env:
GPG_PRIVATE_KEY: ${{ secrets.RELEASE_GPG_PRIVATE_KEY }}
PASSPHRASE: ${{ secrets.RELEASE_GPG_PASSPHRASE }}

- name: Download release assets
id: release_asset
env:
TAG_NAME: ${{ github.event.release.tag_name }}
run: gh release download $TAG_NAME

- name: Verify all release assets
env:
TAG_NAME: ${{ github.event.release.tag_name }}
KEYID: ${{steps.import_gpg.outputs.keyid}}
run: |
VERSION=$(echo -n $TAG_NAME | sed 's/^v//')
FILE_NAME="vrealize-developer-tools-${VERSION}.vsix"
DOWNLOAD_URL=$(jq --raw-output ".release.assets[] | select(.name == \"$FILE_NAME\") | .browser_download_url" "$GITHUB_EVENT_PATH")
gpg --keyid-format long --verify vrealize-developer-tools-${TAG_NAME#v}.vsix.sha256.asc vrealize-developer-tools-${TAG_NAME#v}.vsix.sha256
gpg --keyid-format long --verify packages.sha256.asc packages.sha256

wget $DOWNLOAD_URL
echo "::set-output name=file_name::$FILE_NAME"
sha256sum -c vrealize-developer-tools-${TAG_NAME#v}.vsix.sha256
sha256sum -c packages.sha256

- name: Publish to VS Marketplace
- name: Publish extension to VS Marketplace
env:
TAG_NAME: ${{ github.event.release.tag_name }}
MARKETPLACE_SECRET: ${{ secrets.VS_MARKETPLACE_TOKEN }}
FILE_NAME: ${{ steps.release_asset.outputs.file_name }}
run: "vsce publish -p $MARKETPLACE_SECRET --packagePath $FILE_NAME"
run: "vsce publish -p $MARKETPLACE_SECRET --packagePath vrealize-developer-tools-${TAG_NAME#v}.vsix"

- name: Publish npm packages to GitHub Packages Registry
env:
TAG_NAME: ${{ github.event.release.tag_name }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | # uses the package.json's publishConfig/registry URL
find *.tgz -type f -exec npm publish {} \;
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
logs
*.log*
*.tsbuildinfo
*.bkp
*.tgz
*.vsix

out/
dist/
coverage/
node_modules/

*.vsix
.vscode-test/
.vscode/*

Expand All @@ -18,5 +20,5 @@ node_modules/
!/.vscode/launch.json
!/.vscode/extensions.json

language-server/src/proto/**
packages/node/vro-language-server/src/proto
workflow-schema/*
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
registry=https://registry.npmjs.org
@types:registry=https://registry.npmjs.org
@vmware:registry=https://npm.pkg.github.com
@protobufjs:registry=https://registry.npmjs.org
Loading