This multilanguage component is used to manage various stack settings when launching stacks in the pequod organization via new project wizard.
Whenever the component code (under provider/cmd/pulumi-resource...) or schema.json, etc has been udated, follow the process below to make the updated version available:
- Build the SDKs and plugins
- Publish the plugins
- Publish the SDKs
If moving to a new major version, e.g. moving from v3.x.x
to v4.x.x
then update the module name in sdk/go/go.mod
to match the major version.
From the main directory (where the Makefile is located), do the following:
- Update
VERSION
in the Makefile to the next release. - Execute these steps on the command line:
# Regen the SDKs
make generate
make build
make install
# Rebuild the plugins
make dist
- Push/merge the code to the repo.
- Create a new github release of this repo using the same version number in the Makefile.
- Upload the files in the
dist
folder as attachments to the release.
Pequod uses AWS CodeArtifact repo for TS SDKs.
To publish to the codeartifact repo:
- cd to the
sdk/nodejs/bin
folder - run
aws codeartifact login --tool npm --region us-east-2 --repository pequod-codeartifact-repo --domain pequod-codeartifact-domain
- Run
npm publish
to push the module to the artifactory.`
Refer to the pequod-templates
repo for package.json
and code examples of how to use this package.
Pequod currently uses github versioning to distribute python packages.
The build process above sets things up for this.
Refer to the pequod-templates
repo for requirements.txt
and code examples of how to use this package.
.NET packages are managed in a github package in the Pequod org. For details of using Github for nuget packages, see https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry
To publish a new package:
- Generate a github (classic) personal access token since that is required at this time.
- It must have
write:packages
(andread:packages
andrepo
permissions which will be automatically set).
- It must have
- Set the following environment variables:
GITHUB_PACKAGE_TOKEN_USERNAME
- Github username for which the access token was generatedGITHUB_PACKAGE_TOKEN
- access token- NOTE: Pulumi environment can be used to set these env variables and make life easier.
- Use the provided helper function:
./publish_nuget.sh PACKAGE_NAME VERSION
- Where
PACKAGE_NAME
is the name of the package (e.g.Pequod.Stackmgmt
) - Where
VERSION
is the version for the given package as specified in the Makefile (e.g.3.1.4
).
- Where
Just need to create a tag of the form sdk/v0.0.0
.
git tag sdk/vVERSION
- E.g.
git tag sdk/v3.1.4
- E.g.
git push origin sdk/vVERSION
- E.g.
git push origin sdk/v3.1.4
- E.g.
Easiest way to test is with a Python program.
- Do all the
make
steps above. - Create a release as described above except:
- Point it at the branch you are developing on.
- Create it as a pre-release.
- Git Clone a python project from pequod and modify the
requirements.txt
to include the tag for the pre-release you created above.- e.g.
pequod_stackmgmt @ git+https://github.com/pulumi-pequod/[email protected]#subdirectory=sdk/python/bin
- NOTE the
@v3.1.1
- this would be whatever tag used for the given pre-release.
- NOTE the
- e.g.
- Add an example or two.
- Add some documentation.
-
Publishing .net package errors
- If the add source throws an error you may already have the
github
source added.- helpful commands:
dotnet nuget list source
dotnet nuget remove source github
- helpful commands:
- If unauthorized error, the personal access token my need to be accepted in the pulumi-pequod github org.
- Go to the github org settings and look at personal access tokens
- If the add source throws an error you may already have the
-
Get netcoreapp3.1 compatibility error message
- cd to provider
- modify go.mod with latest pulumi version
go mod tidy
- cd .. and run
make generate
- If you get an error about something just run the
go ...
command that is suggested
- If you get an error about something just run the