https://github.com/epam/ado-delivery-gantt
https://github.com/epam/ado-delivery-gantt
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/epam/ado-delivery-gantt
- Owner: epam
- License: mit
- Created: 2023-04-11T17:11:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-27T15:12:45.000Z (almost 2 years ago)
- Last Synced: 2025-06-09T17:11:28.635Z (about 1 year ago)
- Language: TypeScript
- Size: 3.91 MB
- Stars: 7
- Watchers: 8
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Azure DevOps Plugin for enhance Delivery plan capabilities
## Prerequisites
Download and install the following tools
1. [Visual Studio Code](https://code.visualstudio.com/download)
2. node version 19.6.0 or greater
3. The [tfx-cli](https://www.npmjs.com/package/tfx-cli) npm package
4. The [webpack](https://www.npmjs.com/package/webpack) npm package
5. The [webpack-dev-server](https://www.npmjs.com/package/webpack-dev-server) npm package
## Dependencies
The repository depends on a few Azure DevOps packages:
- [azure-devops-extension-sdk](https://github.com/Microsoft/azure-devops-extension-sdk): Required module for Azure DevOps extensions which allows communication between the host page and the extension iframe.
- [azure-devops-extension-api](https://github.com/Microsoft/azure-devops-extension-api): Contains REST client libraries for the various Azure DevOps feature areas.
- [azure-devops-ui](https://developer.microsoft.com/azure-devops): UI library containing the React components used in the Azure DevOps web UI.
# Project notes on `azure-devops-ui` usage pattern:
In terms of current repo above library will be installed from local/customized zipped tarball containing changes which are necessary to being adapted to the 18th version of React upstream library and prevent peer dependencies conflicts with the latest `gantt-task-react` version.
Zipped archive was added to reduce overall amount of `azure-devops-ui` library files.
For example, if you got exception like this:
```
TS2769: No overload matches this call. Overload 1 of 2, '(props: I*Props | Readonly): *', gave the following error.
Type '{ children: (Element | undefined)[]; className: string; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<*> & Readonly'.
```
You have to
- unzip archive;
- provide required updates (for example - find I*Props file add field `children?: React.ReactNode;`);
- create fresh tarball from local unzipped folder with the latest updates - `tar zcvf azure-devops-ui.tar.gz azure-devops-ui`.
Some external dependencies:
- `React` - Is used to render the UI.
- `TypeScript` - It written in TypeScript and compiled to JavaScript
- `SASS` - Extension samples are styled using SASS (which is compiled to CSS and delivered in webpack js bundles).
- `webpack` - Is used to gather dependencies into a single javascript bundle for each sample.
## Building the project
Just run:
`npm install`
### Launch project to debug against Azure DevOps
1. `npm run start:dev`
2. `java LocalHTTPServer` (env X_COOKIE="", copy from browser for dev.azure.com)
3. In VS Code, press **F5** to start debugging (making sure the webpack-dev-server is still running).
Once it starts up, you will have to go through the steps of allowing the `localhost:3000` certificate again and log into your Azure DevOps account. From now on, if you leave this window open, the debugger will reattach instead of starting a clean instance each time.
Once you are logged in to Azure DevOps, your extension should be running. Set a breakpoint in a method in VS Code and you should see that breakpoint hit when that method executes.
## Release
All build/package/publish commands explicitly depend on below environment variables:
- NODE_ENV - stands for setting mode type default to `development`;
- PUBLISHER_NAME - contains actual extension publisher name;
- EXTENSION_NAME - specifies extension name to being displayed upon;
- EXTENSION_VERSION - stands for extension version.
### Development/Production release notes
1. Set appropriate/relevant values mentioned above env variables
- Take into account for NODE_ENV variable only two supported modes are available - production/development
2. npm run package
3. npm run publish -- {YOUR_TOKEN}
## Icons
[Material design icon](https://github.com/google/material-design-icons) was used, which is redistributed under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html). The color of the icon for dark theme was modified.
## License
[MIT](./LICENSE)