Skip to content

Commit

Permalink
Release v2.4.0 (#149)
Browse files Browse the repository at this point in the history
## 🎯 Aim

The aim of this PR is to create v2.4.0 release

## ✅ What was done

- [x] Added support for SPFx v1.18.2
- [x] Added Teams Toolkit support
- [x] Refactored help and feedback section to tree view adding new links
to Teams Toolkit and ACE previewer
- [x] Added ACE previewer checker to suggest this extension when ACE
component is present in the project
- [x] Modified CI/CD GitHub generate workflow action to present list of
site level app catalogs
- [x] Updated dependencies validation to check for latest version of yo
  • Loading branch information
Adam-it authored Nov 29, 2023
1 parent 0c394ef commit 4fcb730
Show file tree
Hide file tree
Showing 25 changed files with 297 additions and 159 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Change Log

## [2.4.0] - 2023-11-29

- Added support for SPFx v1.18.2
- Added Teams Toolkit support
- Refactored help and feedback section to tree view adding new links to Teams Toolkit and ACE previewer
- Added ACE previewer checker to suggest this extension when ACE component is present in the project
- Modified CI/CD GitHub generate workflow action to present list of site level app catalogs
- Updated dependencies validation to check for latest version of yo

## [2.3.0] - 2023-11-16

- Updated dependencies validation to check for yo@4.3.1
Expand Down
52 changes: 26 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
</a>
</p>

<p align="center">Viva Connections Toolkit is a Visual Studio Code extension that aims to boost your productivity in developing and managing SharePoint Framework solutions helping at every stage of your development flow, from setting up your development workspace to deploying a solution straight to your tenant without the need to leave VS Code.</p>
<p align="center">Viva Connections Toolkit is a Visual Studio Code extension that aims to boost your productivity in developing and managing SharePoint Framework solutions helping at every stage of your development flow, from setting up your development workspace to deploying a solution straight to your tenant without the need to leave VS Code. With the SharePoint Framework, you can use modern web technologies and tools in your preferred development environment to build productive experiences and apps that are responsive and mobile-ready allowing you to create solutions to extend SharePoint, Microsoft Teams, Microsoft Viva Connections, Outlook and Microsoft365.com.</p>

<p align="center">
<a href="#%EF%B8%8F-architecture">Architecture</a> |
<a href="#-capabilities">Capabilities</a> |
<a href="#%EF%B8%8F-architecture">Architecture</a> |
<a href="#-wiki">Wiki</a> |
<a href="#-contributing">Contributing</a> |
<a href="#-support">Support</a> |
Expand All @@ -33,50 +33,44 @@
</p>

![Sample Gallery](./assets/images/start.png)

## ⚙️ Architecture

Viva Connections Toolkit for Visual Studio Code is an abstraction layer on top of the [SPFx](https://aka.ms/spfx) Yeoman generator and [CLI for Microsoft 365](https://pnp.github.io/cli-microsoft365/). All operations and actions are performed on the command line level using these two tools with the environment settings on your computer.

This means that the features and capabilities provided through this tool are available for any solution which has been built with SPFx.

## ⭐ Capabilities

The extension provides the following capabilities:

### 1️⃣ Welcome experience

The extension automatically detects if you are in a SharePoint Framework project. If not, it will show helpful actions to allow you to create a new SPFx or ACE solution.
The extension automatically detects if have a SharePoint Framework project opened. If not, it will start with a welcome experience that will guide you through the process of creating a new project and validating your local environment.

![Welcome experience](./assets/images/welcome-experience.png)

Directly from this view, you may create a new project from scratch or from an existing web part, extension or ACE sample, or ACE scenario.

It is also possible to open an already existing project using Open folder button.

Last but not least it is possible to check your local workspace for the needed global dependencies to develop the SPFx project, like the correct Node version, gulp, yeoman etc., and install them if needed with a single click.
Last but not least it is possible to check your local workspace for the needed global dependencies to develop the SPFx solutions, like the correct Node version, gulp, yeoman etc., and install them if needed with a single click.

### 2️⃣ Set up your development environment

To ensure that you can develop SPFx solutions, in Viva Connections Toolkit you may use the **check dependencies** functionality.
To ensure that you can develop SPFx solutions, you may use the **check dependencies** functionality.

![Validate dependency](./assets/images/validate-dependency.png)

This action will check if you have the required dependencies to create a new Viva Connections app.
This action will check if you have the required dependencies such as:

- Node version: 16 or 18
- NPM dependencies:
- gulp
- yo
- @microsoft/generator-sharepoint

In case when you do not have all dependencies installed, you can use the **install dependencies** action to install them.
In case you do not have all dependencies installed, or some are in incorrect version, you can use the **install dependencies** action to install them.

> **Info**: This list is based on the [set up your development environment recommendations](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment)
> **Info**: The list of valid dependencies is based on [set up your development environment recommendations](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment)
### 3️⃣ Don't Start from scratch. Reuse an SPFx (web part or extension) or ACE sample

From one of the samples gallery, you can kick-start your development with a new project. Create a new SPFx web part Extension or ACE solution with a click of a button. The samples are coming from [PnP Samples repo](https://pnp.github.io/sp-dev-fx-webparts/samples/type/).
You may kick-start your development with a new project based on an existing ACE or SPFx web part or extension with a click of a button. All of the provided samples are powered by [PnP Samples repositories](https://pnp.github.io/sp-dev-fx-webparts/samples/type/).

Check out how easy it is to create a new project based on a web part sample 👇.

Expand All @@ -98,13 +92,13 @@ Check it out 👇.

![Create new project](./assets/images/scaffolding.gif)

It's possible to scaffolding any kind of SPFx project.
It's possible to scaffold any kind of SPFx project.

![Create new project](./assets/images/scaffolding.png)

### 6️⃣ Login to your tenant & retrieve environment details

The extension also allows you to log in to your Microsoft 365 tenant using CLI for Microsoft 365.
The extension also allows you to login to your Microsoft 365 tenant using CLI for Microsoft 365.

![login](./assets/images/login.png)

Expand All @@ -118,7 +112,7 @@ Additionally, when an SPFx project is opened the extension will check serve.json

### 7️⃣ Gulp tasks

One of the sections of the extension shows all possible Gulp tasks one may run on an SPFx project. The tasks allow you to clean, bundle, package, serve the project with a single click.
The extension shows all possible Gulp tasks one may run on an SPFx project. The tasks allow you to clean, bundle, package, serve the project with a single click.

![Gulp Tasks](./assets/images/tasks.png)

Expand All @@ -130,33 +124,33 @@ The actions section allows unique functionalities that may significantly boost p

Currently the extension allows you to:

- **Upgrade project** - Uses CLI for Microsoft 365 to create a .md report with upgrade guidance to the latest supported SPFx version by the extension. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#upgrade-project)
- **Upgrade project** - Uses CLI for Microsoft 365 to create a .md report with upgrade guidance to the latest supported SPFx version by the extension. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#upgrade-project)

![Upgrade project](./assets/images/upgrade-project.png)

- **Validate current project** - Creates a validation .md report against the currently used SPFx version in the project. The action will automatically detect the SPFx version used and will validate if the project is properly set up. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#validate-current-project)
- **Validate current project** - Creates a validation .md report against the currently used SPFx version in the project. The action will automatically detect the SPFx version used and will validate if the project is properly set up. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#validate-current-project)

- **Rename current project** - Forget about manual work and let the extension rename your project and generate a new solution ID. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#rename-current-project)
- **Rename current project** - Forget about manual work and let the extension rename your project and generate a new solution ID. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#rename-current-project)

![Rename](./assets/images/rename.png)

- **Grant API permissions** - The action will Grant all API permissions specified in the package-solution.json of the current project. This is especially helpful if you just want to debug your SPFx solution using Workbench. No longer do you need to bundle, package, and deploy the project to then go to the SharePoint admin portal and consent to the permissions. All of that is now done with just a single click. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#grant-api-permissions)
- **Grant API permissions** - The action will Grant all API permissions specified in the package-solution.json of the current project. This is especially helpful if you just want to debug your SPFx solution using Workbench. No longer do you need to bundle, package, and deploy the project to then go to the SharePoint admin portal and consent to the permissions. All of that is now done with just a single click. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#grant-api-permissions)

![Grant permissions](./assets/images/grant-permissions.png)

- **Deploy project** - This action will only work when the user is logged in to tenant and the sppkg file is present. The action will deploy the project to the selected (tenant or site) app catalog. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#deploy-project)
- **Deploy project** - This action will only work when the user is logged in to tenant and the sppkg file is present. The action will deploy the project to the selected (tenant or site) app catalog. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#grant-api-permissions)

![Deploy](./assets/images/deploy.png)

- **Add new component** - Allows scaffolding a new SPFx project as a new component of the currently opened project. The action under the hood uses the same SharePoint Yeoman generator to scaffold a new project and this feature is an abstraction UI layer. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#add-new-component)
- **Add new component** - Allows scaffolding a new SPFx project as a new component of the currently opened project. The action under the hood uses the same SharePoint Yeoman generator to scaffold a new project and this feature is an abstraction UI layer. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#add-new-component)

![Add component](./assets/images/add-component.png)

- **CI/CD GitHub Workflow** - This action will allow you to generate yaml GitHub workflow that uses CLI for Microsoft 365 GitHub actions to bundle, package, and deploy your project to an app catalog on every code push. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#cicd-github-workflow)
- **CI/CD GitHub Workflow** - This action will allow you to generate yaml GitHub workflow that uses CLI for Microsoft 365 GitHub actions to bundle, package, and deploy your project to an app catalog on every code push. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#cicd-github-workflow)

![CI CD pipeline](./assets/images/CI_CD-pipeline-gif.gif)

- **Open sample/scenario galleries of the SPFx web part, extensions, or ACEs projects** - Viva Connections Toolkit supports a couple of sample galleries that may be used to scaffold a new SPFx project. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/4.6-Actions#open-samplescenario-galleries-of-the-spfx-web-part-extensions-or-aces-projects)
- **Open sample/scenario galleries of the SPFx web part, extensions, or ACEs projects** - Viva Connections Toolkit supports a couple of sample galleries that may be used to scaffold a new SPFx project. [Check out our docs for more details](https://github.com/pnp/vscode-viva/wiki/5.5-Actions#open-samplescenario-galleries-of-the-spfx-web-part-extensions-or-aces-projects)

### 9️⃣ Help and feedback section

Expand Down Expand Up @@ -186,6 +180,12 @@ Check it out in action 👇

![code snippets](./assets/images/code-snippets.gif)

## ⚙️ Architecture

Viva Connections Toolkit for Visual Studio Code is an abstraction layer on top of the [SPFx](https://aka.ms/spfx) Yeoman generator and [CLI for Microsoft 365](https://pnp.github.io/cli-microsoft365/).

This means that the features and capabilities provided through this tool are available for any solution which has been built with SPFx.

## 📚 Wiki

For more information on how to use the extension, please refer to the [wiki](https://github.com/pnp/vscode-viva/wiki).
Expand Down
Binary file modified assets/images/actions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/create-base-on-spfx-ace.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/create-base-on-spfx-webpart.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/help-and-feedback.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/scaffolding.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/tasks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/upgrade-project.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/welcome-experience.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "viva-connections-toolkit",
"displayName": "Viva Connections Toolkit",
"description": "Viva Connections Toolkit aims to boost your productivity in developing and managing SharePoint Framework solutions helping at every stage of your development flow, from setting up your development workspace to deploying a solution straight to your tenant without the need to leave VS Code and now even create a CI/CD pipeline to introduce automate deployment of your app. This toolkit is provided by the community.",
"version": "2.3.0",
"version": "2.4.0",
"publisher": "m365pnp",
"preview": false,
"homepage": "https://github.com/pnp/vscode-viva",
Expand All @@ -24,11 +24,14 @@
},
"keywords": [
"SPFx",
"SharePoint Framework",
"Viva",
"Viva-Connections",
"Viva Connections",
"Microsoft 365",
"SharePoint",
"Microsoft Teams"
"Microsoft Teams",
"Outlook",
"Office"
],
"activationEvents": [
"workspaceContains:**/project.pnp",
Expand Down
4 changes: 2 additions & 2 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { PROJECT_FILE, Scaffolder } from './services/Scaffolder';
import { Extension } from './services/Extension';
import { Dependencies } from './services/Dependencies';
import { unlinkSync, readFileSync } from 'fs';
import { Terminal } from './services/Terminal';
import { TerminalCommandExecuter } from './services/TerminalCommandExecuter';
import { AuthProvider } from './providers/AuthProvider';
import { CliActions } from './services/CliActions';
import { ProjectFileContent } from './constants';
Expand All @@ -14,7 +14,7 @@ import { ProjectFileContent } from './constants';
export async function activate(context: ExtensionContext) {
Extension.getInstance(context);

Terminal.register();
TerminalCommandExecuter.register();

AuthProvider.register();

Expand Down
7 changes: 7 additions & 0 deletions src/models/YoRc.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export interface YoRc {
'@microsoft/generator-sharepoint': GeneratorSharePoint;
}

export interface GeneratorSharePoint {
aceTemplateType?: string;
}
1 change: 1 addition & 0 deletions src/models/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export * from './SiteAppCatalog';
export * from './solution-add-result';
export * from './subscription';
export * from './vscode-launch';
export * from './YoRc';
Loading

0 comments on commit 4fcb730

Please sign in to comment.