Skip to content

Commit

Permalink
chore(ourstage): techdocs python dependencies
Browse files Browse the repository at this point in the history
Signed-off-by: OurchitectureIO <97544811+ourchitectureio@users.noreply.github.com>
  • Loading branch information
ourchitectureio committed Mar 17, 2024
1 parent 5a4713a commit e192a0b
Show file tree
Hide file tree
Showing 7 changed files with 190 additions and 6 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ $RECYCLE.BIN/
###############################################################################
###############################################################################

# Python virtual environments
.venv

# Yarn directories *not using Zero-installs*
.pnp.*
.yarn/*
Expand Down
2 changes: 1 addition & 1 deletion src/systems/dev/backstage/ourstage/app-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ proxy:
techdocs:
builder: 'local' # Alternatives - 'external'
generator:
runIn: 'docker' # Alternatives - 'local'
runIn: 'local' # Alternatives - 'local'
publisher:
type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives.

Expand Down
67 changes: 67 additions & 0 deletions src/systems/dev/backstage/ourstage/install-dependencies-python.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
const main = async () => {
require('dotenv').config();

const glob = (await import('glob')).glob;
const execa = (await import('execa')).execa;

console.log('Installing ourstage python dependencies...');

const pythonCommand = process.env.PYTHON3;
const pipIndexUrl = process.env.PIP_INDEX_URL;

const upgradePipArgv = [
'-m',
'pip',
'install',
'--index-url',
pipIndexUrl,
'--upgrade',
'pip',
];

const upgradePipResult = await execa(pythonCommand, upgradePipArgv, {
cleanup: true,
env: process.env,
shell: false,
stderr: process.stderr,
stdout: process.stdout,
stripFinalNewline: true,
});

if (upgradePipResult.failed) {
throw new Error('Failed to upgrade pip.');
}

const pipInstallDependenciesArgv = [
'-m',
'pip',
'install',
'--index-url',
`"${pipIndexUrl}"`,
'--requirement',
'./techdocs.requirements.txt',
];

const pipInstallDependenciesResult = await execa(
pythonCommand,
pipInstallDependenciesArgv,
{
cleanup: true,
env: process.env,
shell: false,
stderr: process.stderr,
stdout: process.stdout,
stripFinalNewline: true,
},
);

if (pipInstallDependenciesResult.failed) {
throw new Error('Failed to install python dependencies.');
}

console.log('Successfully installed ourstage python dependencies.');
};

(async () => {
await main();
})();
25 changes: 21 additions & 4 deletions src/systems/dev/backstage/ourstage/makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
python3 := python3

ourstage_backend_port := 7007
ourstage_backend_container_port := 7007
ourstage_backend_env := dev
Expand All @@ -8,12 +10,25 @@ ourstage_backend_container_name := ourstage-backend-$(ourstage_backend_env)

all: install-dependencies install check

.PHONY: install-dependencies
install-dependencies:
@echo "Installing ourstage dependencies..."
.PHONY: install-dependencies-node
install-dependencies-node:
@echo "Installing ourstage node dependencies..."
@npm_config_loglevel=error yarn install --immutable
@yarn workspaces foreach --all --interlaced run install --immutable
@echo "Successfully installed ourstage dependencies."
@echo "Successfully installed ourstage node dependencies."

.PHONY: install-python-venv
install-python-venv:
@$(python3) -m venv ./.venv

.PHONY: install-dependencies-python
install-dependencies-python: install-python-venv
@activate_file_path="$(shell find ./.venv -name activate -type f)" \
&& . "$$activate_file_path" \
&& node ./install-dependencies-python.js

.PHONY: install-dependencies
install-dependencies: install-dependencies-node install-dependencies-python
.PHONY: init
init: install-dependencies

Expand Down Expand Up @@ -131,6 +146,8 @@ shutdown: down
.PHONY: upgrade
upgrade:
@echo "Upgrading ourstage..."
@python -m venv ./.venv
@. $(python_venv_activate_file_path) && python3 -m pip install --upgrade pip
@yarn upgrade-interactive
@echo "Successfully upgraded ourstage."

Expand Down
3 changes: 3 additions & 0 deletions src/systems/dev/backstage/ourstage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
"@playwright/test": "^1.42.1",
"@spotify/prettier-config": "^12.0.0",
"concurrently": "^8.2.2",
"dotenv": "^16.4.5",
"execa": "^8.0.1",
"glob": "^10.3.10",
"lerna": "^7.4.2",
"node-gyp": "^9.4.1",
"prettier": "^2.8.8",
Expand Down
7 changes: 7 additions & 0 deletions src/systems/dev/backstage/ourstage/techdocs.requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
mkdocs==1.5.3

# Caveat: Please install the mkdocs-techdocs-core package after all other
# Python packages. The order is important to make sure we get correct
# version of some of the dependencies.
# Source: https://backstage.io/docs/features/techdocs/getting-started#disabling-docker-in-docker-situation-optional
mkdocs-techdocs-core==1.3.5
89 changes: 88 additions & 1 deletion src/systems/dev/backstage/ourstage/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8210,6 +8210,9 @@ __metadata:
"@playwright/test": "npm:^1.42.1"
"@spotify/prettier-config": "npm:^12.0.0"
concurrently: "npm:^8.2.2"
dotenv: "npm:^16.4.5"
execa: "npm:^8.0.1"
glob: "npm:^10.3.10"
lerna: "npm:^7.4.2"
node-gyp: "npm:^9.4.1"
prettier: "npm:^2.8.8"
Expand Down Expand Up @@ -16582,6 +16585,13 @@ __metadata:
languageName: node
linkType: hard

"dotenv@npm:^16.4.5":
version: 16.4.5
resolution: "dotenv@npm:16.4.5"
checksum: 10/55a3134601115194ae0f924e54473459ed0d9fc340ae610b676e248cca45aa7c680d86365318ea964e6da4e2ea80c4514c1adab5adb43d6867fb57ff068f95c8
languageName: node
linkType: hard

"dotenv@npm:~16.3.1":
version: 16.3.2
resolution: "dotenv@npm:16.3.2"
Expand Down Expand Up @@ -17754,6 +17764,23 @@ __metadata:
languageName: node
linkType: hard

"execa@npm:^8.0.1":
version: 8.0.1
resolution: "execa@npm:8.0.1"
dependencies:
cross-spawn: "npm:^7.0.3"
get-stream: "npm:^8.0.1"
human-signals: "npm:^5.0.0"
is-stream: "npm:^3.0.0"
merge-stream: "npm:^2.0.0"
npm-run-path: "npm:^5.1.0"
onetime: "npm:^6.0.0"
signal-exit: "npm:^4.1.0"
strip-final-newline: "npm:^3.0.0"
checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d
languageName: node
linkType: hard

"exit@npm:^0.1.2":
version: 0.1.2
resolution: "exit@npm:0.1.2"
Expand Down Expand Up @@ -18836,6 +18863,13 @@ __metadata:
languageName: node
linkType: hard

"get-stream@npm:^8.0.1":
version: 8.0.1
resolution: "get-stream@npm:8.0.1"
checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e
languageName: node
linkType: hard

"get-symbol-description@npm:^1.0.2":
version: 1.0.2
resolution: "get-symbol-description@npm:1.0.2"
Expand Down Expand Up @@ -19888,6 +19922,13 @@ __metadata:
languageName: node
linkType: hard

"human-signals@npm:^5.0.0":
version: 5.0.0
resolution: "human-signals@npm:5.0.0"
checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0
languageName: node
linkType: hard

"humanize-duration@npm:^3.25.1":
version: 3.31.0
resolution: "humanize-duration@npm:3.31.0"
Expand Down Expand Up @@ -20660,6 +20701,13 @@ __metadata:
languageName: node
linkType: hard

"is-stream@npm:^3.0.0":
version: 3.0.0
resolution: "is-stream@npm:3.0.0"
checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16
languageName: node
linkType: hard

"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
version: 1.0.7
resolution: "is-string@npm:1.0.7"
Expand Down Expand Up @@ -23732,6 +23780,13 @@ __metadata:
languageName: node
linkType: hard

"mimic-fn@npm:^4.0.0":
version: 4.0.0
resolution: "mimic-fn@npm:4.0.0"
checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56
languageName: node
linkType: hard

"mimic-response@npm:^1.0.0":
version: 1.0.1
resolution: "mimic-response@npm:1.0.1"
Expand Down Expand Up @@ -24734,6 +24789,15 @@ __metadata:
languageName: node
linkType: hard

"npm-run-path@npm:^5.1.0":
version: 5.3.0
resolution: "npm-run-path@npm:5.3.0"
dependencies:
path-key: "npm:^4.0.0"
checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25
languageName: node
linkType: hard

"npmlog@npm:^6.0.0, npmlog@npm:^6.0.2":
version: 6.0.2
resolution: "npmlog@npm:6.0.2"
Expand Down Expand Up @@ -25099,6 +25163,15 @@ __metadata:
languageName: node
linkType: hard

"onetime@npm:^6.0.0":
version: 6.0.0
resolution: "onetime@npm:6.0.0"
dependencies:
mimic-fn: "npm:^4.0.0"
checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788
languageName: node
linkType: hard

"ono@npm:^7.1.3":
version: 7.1.3
resolution: "ono@npm:7.1.3"
Expand Down Expand Up @@ -25788,6 +25861,13 @@ __metadata:
languageName: node
linkType: hard

"path-key@npm:^4.0.0":
version: 4.0.0
resolution: "path-key@npm:4.0.0"
checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7
languageName: node
linkType: hard

"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7":
version: 1.0.7
resolution: "path-parse@npm:1.0.7"
Expand Down Expand Up @@ -28936,7 +29016,7 @@ __metadata:
languageName: node
linkType: hard

"signal-exit@npm:^4.0.1":
"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0":
version: 4.1.0
resolution: "signal-exit@npm:4.1.0"
checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f
Expand Down Expand Up @@ -29717,6 +29797,13 @@ __metadata:
languageName: node
linkType: hard

"strip-final-newline@npm:^3.0.0":
version: 3.0.0
resolution: "strip-final-newline@npm:3.0.0"
checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050
languageName: node
linkType: hard

"strip-indent@npm:^3.0.0":
version: 3.0.0
resolution: "strip-indent@npm:3.0.0"
Expand Down

0 comments on commit e192a0b

Please sign in to comment.