-
Notifications
You must be signed in to change notification settings - Fork 1
2. Technical reference & contributing guidance
Adam WΓ³jcik edited this page Jul 17, 2024
·
2 revisions
π Before you start working on an issue, be sure to check out our Contribution guidelinesπ.
The main definition of the project is (as always) in the package.json
file. Besides the dependencies in that file, we may find most of the VS Code extension capabilities and details present in the VS Code marketplace.
βββ assets // Keeps all the graphical files connected to the project (either used in the extension or in docs)
β βββ images // Keeps images used in readme file
βββ constants // Static strings
βββ data // Keeps .json files which store info about all the samples or scenarios of a given PnP sample gallery repo
βββ media // Keeps additional font used by the extension for icons
βββ models // models/interfaces used as method inputs or outputs
βββ scripts // Keeps all the scripts used for maintenance or in pipelines
βββ snippets // Keeps the snippets definition
βββ src // Extension main definitions for panels
βββ webview-ui // Keeps small react apps that build each part/functionality of the extension
β βββ commandList // webview react app that creates the command list
β βββ docsView // webview react app that creates the docs view
β βββ samplesView // webview react app that creates the samples view
The extension was developed using the following tech:
- React.js
- TypeScript
The extension uses the following VS Code extension capabilities:
- commands
- webviews
- extending activity bar
- panel/views in activity bar
Currently in the project we have 4 pipelines:
- Prepare Release - This pipeline is scheduled by corn. It creates a PR that prepares the extension for new patch release. It rechecks the CLI for Microsoft 365 and PnP Scrip Sample repo to create data needed for the extension and updates the extension number in package.json file to prepare it for next patch release.
- Release - Runs when new GitHub Release (or rather new tag) is added to a commit. Should be triggered by creating a new GitHub Release after merging all the PR's and merging the Prepare Release PR. It builds the extension and publishes it to marketplace.
- Create .vsix package - The aim of this workflow is to create .vsix package to be downloaded from the artifacts and tested locally.