Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Windows runner in GitHub Actions, use python/invoke instead of ruby/rake. #1

Draft
wants to merge 517 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
517 commits
Select commit Hold shift + click to select a range
b482ca7
BUGFIX: codeql findings fix (v11.14.1)
vjmp Jun 8, 2022
2072762
BUGFIX: codeql findings fix retry (v11.14.2)
vjmp Jun 8, 2022
ad1b757
UPGRADE: using go v1.18.x (v11.14.3)
vjmp Jun 9, 2022
e57621a
Updated guides for shared holotree activation
kariharju Jun 9, 2022
f1d3eba
QUICKFIX: documentation TOC update.
vjmp Jun 10, 2022
7193145
FEATURE: using icacls in Windows (v11.14.4)
vjmp Jun 15, 2022
2d59b8a
FIX: shared holotree enabling once (v11.14.5)
vjmp Jun 22, 2022
6dcce92
UPGRADE: micromamba to version 0.24.0 (v11.15.0)
vjmp Jul 7, 2022
da87ef9
DOC: old school CI recipe (v11.15.1)
vjmp Jul 8, 2022
0946482
FIX: scripts/toc.py fix (v11.15.2)
vjmp Jul 11, 2022
32c5eaf
REFACTORING: module dependencies (v11.15.3)
vjmp Jul 13, 2022
6bd6bf6
FIX: go-bindata accidentally remove (v11.15.4)
vjmp Jul 13, 2022
6049a52
UPGRADE: template and micromamba upgrade (v11.16.0)
vjmp Aug 16, 2022
5d90577
BUGFIX: symbolic link in holotree (v11.17.0)
vjmp Aug 17, 2022
8343068
BUGFIX: symbolic link in holotree (v11.17.1)
vjmp Aug 18, 2022
3be69ab
BUGFIX: symbolic link in holotree (v11.17.2)
vjmp Aug 19, 2022
9ffd81c
UPDATE: cleanup updates (v11.18.0)
vjmp Aug 23, 2022
fd644f7
FEATURE: environment no-build option (v11.19.0)
vjmp Aug 24, 2022
49f1630
BUGFIX: empty ignoreFiles entry bug (v11.19.1)
vjmp Aug 25, 2022
1c509b7
FEATURE: holotree export by robot.yaml (v11.20.0)
vjmp Aug 26, 2022
2f89c02
FEATURE: catalog usage improvements (v11.21.0)
vjmp Aug 30, 2022
0a135bf
FEATURE: catalog usage improvements (v11.22.0)
vjmp Aug 31, 2022
f87f2d4
BUGFIX: various bugs fixed (v11.22.1)
vjmp Sep 1, 2022
04c1acf
FEATURE: remove catalogs by idle days (v11.23.0)
vjmp Sep 2, 2022
fa79e37
FEATURE: minor feature additions (v11.24.0)
vjmp Sep 2, 2022
476878e
FEATURE: show identity.yaml (v11.25.0)
vjmp Sep 5, 2022
70299ba
BUGFIX: symlink restore (v11.25.1)
vjmp Sep 6, 2022
237ff83
EXPERIMENT: pyvenv.cfg generation (v11.26.0)
vjmp Sep 7, 2022
1cfee60
DOCUMENTATION: configuration settings help improved (v11.26.1)
vjmp Sep 7, 2022
77fdd14
REFACTORING: using embed (v11.26.2)
vjmp Sep 8, 2022
59e8a71
BUGFIX: ht.lck to ht/global.lck (v11.26.3)
vjmp Sep 12, 2022
ada5d35
DOCS: history and troubleshooting (v11.26.4)
vjmp Sep 14, 2022
4d35c04
DOCS: metrics and documentation update (v11.26.5)
vjmp Sep 16, 2022
3dfa047
SECURITY: dependency updates (v11.26.6)
vjmp Sep 19, 2022
98fcc7a
FEATURE: installation plan analysis (v11.27.0)
vjmp Sep 23, 2022
21f5252
FIX: plan analysis security fix (v11.27.1)
vjmp Sep 26, 2022
fb43a7c
UPDATE: plan analysis improvements (v11.27.2)
vjmp Sep 27, 2022
0c797c7
FIX: cloud new json output (v11.27.3)
vjmp Sep 29, 2022
0b37323
UPGRADE: to micromamba v0.27.0 (v11.28.0)
vjmp Oct 5, 2022
3b38937
BUGFIX: template update bugfix (v11.28.1)
vjmp Oct 12, 2022
b059a88
IMPROVEMENT: lock wait messages (v11.28.2)
vjmp Oct 19, 2022
58986ef
IMPROVEMENT: lock diagnostics warnings (v11.28.3)
vjmp Oct 19, 2022
00986d9
FEATURE: unmanaged holotree spaces (v11.29.0)
vjmp Oct 25, 2022
202827c
BUGFIX: unmanaged space detection (v11.29.1)
vjmp Oct 26, 2022
d40e6ae
Update robocorp_stack.png
kariharju Oct 27, 2022
2914cff
FEATURE: openssl vulnerability warning (v11.30.0)
vjmp Nov 2, 2022
fb8b905
BUGFIX: shared holotree checks (v11.30.1)
vjmp Nov 7, 2022
4481337
UPGRADE: micromamba upgrade to v1.0.0 (v11.31.0)
vjmp Nov 7, 2022
650ac45
BUGFIX: lock pid files name change and debug info (v11.31.1)
vjmp Nov 8, 2022
65cb4b6
BUGFIX: lock pid files name fix (v11.31.2)
vjmp Nov 8, 2022
88df57b
FEATURE: holotree build statistics (v11.32.0)
vjmp Nov 10, 2022
5b62402
FEATURE: command for holotree build statistics (v11.32.1)
vjmp Nov 11, 2022
a726e71
IMPROVEMENT: holotree build statistics flags (v11.32.2)
vjmp Nov 11, 2022
f18cf82
IMPROVEMENT: statistics in diagnostics (v11.32.3)
vjmp Nov 14, 2022
d9bde44
CLEANUP: old statistics removal (v11.32.4)
vjmp Nov 15, 2022
52c542d
MAINTENANCE: dead code removal (v11.32.5)
vjmp Nov 15, 2022
33e453c
BUGFIX: lock pid files warning/ok clarification (v11.32.6)
vjmp Nov 15, 2022
6de041e
FEATURE: holotree delta export (v11.33.0)
vjmp Nov 18, 2022
4ecaed3
IMPROVEMENT: more timeline markers on assistant run (v11.33.1)
vjmp Nov 23, 2022
99c1e41
IMPROVEMENT: DNS lookup time in diagnostics (v11.33.2)
vjmp Nov 24, 2022
5e7b564
FEATURE: arm support (v11.34.0)
vjmp Nov 29, 2022
3bee64e
POC: starting peercc PoC (v11.35.0)
vjmp Dec 7, 2022
e88ce31
GHA: upgrade GHA to use ruby 2.7 (v11.35.1)
vjmp Dec 7, 2022
13a822c
GHA: upgrade GHA to use ruby 2.7 (v11.35.2)
vjmp Dec 7, 2022
08fd93b
BUGFIX: ioutil deprecations and diagnostics (v11.35.3)
vjmp Dec 7, 2022
7a2dfc9
POC: continued on peercc PoC (v11.35.4)
vjmp Dec 8, 2022
c2b14c0
POC: continued on peercc PoC (v11.35.5)
vjmp Dec 9, 2022
deed3cc
POC: rcc side of functionality (v11.35.6)
vjmp Dec 14, 2022
d444bb5
POC: rcc side of functionality (v11.35.7)
vjmp Dec 15, 2022
d01a989
Diagnostics JSON output has new category (v11.36.0)
vjmp Dec 15, 2022
f2bda9a
BUGFIX: lock pid file issues (v11.36.1)
vjmp Dec 20, 2022
efa9048
FEATURE: show lock holders while waiting (v11.36.2)
vjmp Dec 21, 2022
4897a91
IMPROVEMENT: coloring lock wait messages (v11.36.3)
vjmp Dec 21, 2022
2b86482
BUGFIX: adding locks around imports (v11.36.4)
vjmp Dec 22, 2022
c687438
FIX: network diagnostics explanation improvement (v11.36.5)
vjmp Dec 28, 2022
ad7fa3f
FEATURE: new token time calculation model (v12.0.0)
vjmp Dec 29, 2022
08e9985
IMPROVEMENT: new ignoreFiles diagnostic (v12.0.1)
vjmp Jan 3, 2023
b050143
FEATURE: assistant artifact upload disabling (v12.1.0)
vjmp Jan 3, 2023
ae0a1d6
BUGFIX: unzipping errors more visible (v12.1.1)
vjmp Jan 4, 2023
fb825ac
BUGFIX: parallel long path check (v12.1.2)
vjmp Jan 11, 2023
034dad7
UPGRADE: micromamba v1.1.0 (v12.2.0)
vjmp Jan 11, 2023
edaf8c9
FEATURE: remove extra middle paths in unwrap (v12.3.0)
vjmp Jan 13, 2023
b7a4dbb
BUGFIX: flattening failure (v12.3.1)
vjmp Jan 16, 2023
67898f8
MAJOR: robot unwrap path flattening (v13.0.0)
vjmp Jan 17, 2023
6f68f2f
BUGFIX: ignoreFiles diagnostics path issue (v13.0.1)
vjmp Jan 17, 2023
19a7fc4
FEATURE: configurable network diagnostics (v13.1.0)
vjmp Jan 19, 2023
4e29d4a
BUGFIX: netdiagnostics flag change (v13.1.1)
vjmp Jan 20, 2023
8a63f79
IMPROVEMENT: netdiagnostics trace change (v13.1.2)
vjmp Jan 23, 2023
6dd10a7
FEATURE: remote peercc pull (v13.2.0)
vjmp Jan 24, 2023
a13e2f8
FEATURE: command to prebuild environments (v13.3.0)
vjmp Jan 27, 2023
65186db
RENAME: peercc to rccremote (v13.4.0)
vjmp Jan 30, 2023
e8d49f2
IMPROVEMENT: prebuild improvements (v13.4.1)
vjmp Jan 30, 2023
7534683
BUGFIX: holotree pull fix (v13.4.2)
vjmp Jan 31, 2023
9ee5ea0
BUGFIX: cloud.ReadFile error fix (v13.4.3)
vjmp Feb 1, 2023
29b97b1
FEATURE: hololib fill for new environments (v13.5.0)
vjmp Feb 2, 2023
0a4d0eb
FIX: hololib fill improvements (v13.5.1)
vjmp Feb 2, 2023
7a32520
FIX: rccremote server timeouts (v13.5.2)
vjmp Feb 2, 2023
b8fd605
IMPROVEMENT: rccremote zipfile cache (v13.5.3)
vjmp Feb 6, 2023
e61af36
BUGFIX: rcc holotree pull fix (v13.5.4)
vjmp Feb 6, 2023
56c4bd1
BUGFIX: Windows long path check fix (v13.5.5)
vjmp Feb 7, 2023
9710315
BUGFIX: ensure directories exists (v13.5.6)
vjmp Feb 8, 2023
e2b8a6b
BUGFIX: holotree delete slowness (v13.5.7)
vjmp Feb 10, 2023
6be96a1
BUGFIX: holotree delete defaults (v13.5.8)
vjmp Feb 10, 2023
673e65f
UPGRADE: github actions and go upgrades (v13.6.0)
vjmp Feb 10, 2023
d7607e7
EXPERIMENT: maintenance by chance (v13.6.1)
vjmp Feb 15, 2023
edde51b
BUGFIX: WaitGroup problem (v13.6.2)
vjmp Feb 16, 2023
ab2aa61
CHANGE: WorkGroup more deterministic (v13.6.3)
vjmp Feb 20, 2023
df12f9f
DOCS: documentation update (v13.6.4)
vjmp Feb 23, 2023
7df0773
SECURITY: dependabot flagged (v13.6.5)
vjmp Feb 23, 2023
6fe90e9
FEATURE: troubleshooting guides (v13.7.0)
vjmp Feb 27, 2023
5b58b3d
IMPROVEMENT: added missing RCC_REMOTE_AUTHORIZATION (v13.7.1)
vjmp Feb 27, 2023
0d0e3ac
FEATURE: direct export from prebuild (v13.8.0)
vjmp Mar 7, 2023
44391c2
FEATURE: more strict hololib import (v13.9.0)
vjmp Mar 8, 2023
2d47c3c
BUGFIX: in verification, diagnostics, and documentation (v13.9.1)
vjmp Mar 9, 2023
5615a48
DOCS: toc generation improvement (v13.9.2)
vjmp Mar 9, 2023
56e31db
DOCUMENTATION: vocabulary and maintenance (v13.10.0)
vjmp Mar 16, 2023
d84c259
FIXES: diagnostics and documentation fixes (v13.10.1)
vjmp Mar 20, 2023
684c43b
FEATURE: rcc file permissions (v13.11.0)
vjmp Apr 5, 2023
1883bc0
FEATURE: micromamba upgrade (v13.12.0)
vjmp Apr 12, 2023
0c70472
FIX: additional path ignore (v13.12.1)
vjmp Apr 12, 2023
da5d9ac
DOCS: additional documentation updated (v13.12.2)
vjmp Apr 13, 2023
f81c827
IMPROVE: hololib corruption notes (v13.12.3)
vjmp Apr 14, 2023
2714929
MAJOR CHANGE: virtualenv support removed (v14.0.0)
vjmp Apr 17, 2023
df43439
BREAK: removal robot list command (v14.1.0)
vjmp Apr 18, 2023
fce1fd5
FIX: cleanup offending directories (v14.2.0)
vjmp Apr 18, 2023
a4bfd49
BREAK: removal robot fix command (v14.3.0)
vjmp Apr 19, 2023
4e2694c
BREAK: removal robot libs command (v14.4.0)
vjmp Apr 19, 2023
23509d9
Spring cleaning release (v14.4.1)
vjmp Apr 19, 2023
784b0a0
Subprocess exit status visibility (v14.5.0)
vjmp May 3, 2023
7d86ade
Filter for quick diagnostics (v14.6.0)
vjmp May 4, 2023
c0d371d
Layers on holotree creation (v14.7.0)
vjmp May 15, 2023
704979f
Layered fingerpring support (v14.8.0)
vjmp May 31, 2023
2afc0a6
Layers restoring (v14.8.1)
vjmp Jun 5, 2023
2a0e030
Layers bug fixes and other improvements (v14.8.2)
vjmp Jun 6, 2023
f843997
Shared ROBOCORP_HOME detection (v14.9.0)
vjmp Jun 7, 2023
ce5a075
Micromamba upgrade (v14.9.1)
vjmp Jun 7, 2023
e8f3a01
Code cleanup and artifactsDir content (v14.9.2)
vjmp Jun 8, 2023
9d546aa
Info file creation and signal handling (v14.10.0)
vjmp Jun 12, 2023
7f396b2
Immediate switch to imported profile (v14.11.0)
vjmp Jun 12, 2023
fe03321
Subprocess managing (v14.12.0)
vjmp Jun 13, 2023
a5e07b5
Subprocess managing improved (v14.13.0)
vjmp Jun 15, 2023
89b541a
Minor bug fixes (v14.13.1)
vjmp Jun 20, 2023
ba1e941
Micromamba downgrade due bug (v14.13.2)
vjmp Jun 21, 2023
870ac6a
Minor improvements (v14.13.3)
vjmp Jun 22, 2023
101afce
Highlighting robot run status (v14.14.0)
vjmp Jun 27, 2023
1a7ba7a
Micromamba upgrade v1.4.9 (v14.15.0)
vjmp Aug 3, 2023
7b9823d
Bugfix: stack overflow on process tree (v14.15.1)
vjmp Aug 9, 2023
918604e
Bugfix: more process tree fixing (v14.15.2)
vjmp Aug 10, 2023
9c22d61
Improvement: canary failure messages (v14.15.3)
vjmp Aug 14, 2023
c74154f
Micromamba downgrade v1.4.2 (v14.15.4)
kariharju Aug 17, 2023
0728f5b
Major breaking changes (v15.0.0)
vjmp Aug 21, 2023
bb2c838
Environment public cacheability diagnostics (v15.1.0)
vjmp Aug 22, 2023
7ef9f37
Micromamba management by version numbers (v15.2.0)
vjmp Aug 23, 2023
eeed56a
Run journal added (v15.3.0)
vjmp Aug 30, 2023
b2fcb8b
Breaking change: TLS diagnostics (v16.0.0)
vjmp Sep 5, 2023
d997d91
Breaking change: TLS diagnostics continued (v16.0.1)
vjmp Sep 5, 2023
f8bd90f
Breaking change: advanced TLS diagnostics (v16.1.0)
vjmp Sep 5, 2023
80a5ca6
Bug fix: micromamba proxy settings (v16.1.1)
vjmp Sep 5, 2023
194325e
Bugfix: allowed TLS versions (v16.1.2)
vjmp Sep 6, 2023
0a5aff2
Comment on CodeQL security warning code (v16.1.3)
vjmp Sep 7, 2023
ae27191
Feature: relocation stats on catalogs list (v16.2.0)
vjmp Sep 11, 2023
61abd75
Bugfix: infinite process tree printing (v16.2.1)
vjmp Sep 12, 2023
719fb65
Bugfix: small delay before process tree printing (v16.2.2)
vjmp Sep 15, 2023
16e1ae5
Feature: rcc point of view extended (v16.3.0)
vjmp Sep 19, 2023
28278ee
Bugfix: big template extraction (v16.3.1)
vjmp Sep 20, 2023
9db2ff3
Internal: TLS probe (v16.4.0)
vjmp Sep 21, 2023
7d6b8d7
Improvement: TLS probe (v16.4.1)
vjmp Sep 21, 2023
0c8b00a
Feature: new TLS variables (v16.5.0)
vjmp Sep 21, 2023
2f80213
Feature: configuration TLS probe (v16.6.0)
vjmp Sep 22, 2023
666f542
Feature: profile removal (v16.7.0)
vjmp Sep 27, 2023
455b789
Bugfix: process tree blacklist (v16.7.1)
vjmp Sep 29, 2023
78490d5
Feature: settings.yaml age in diagnostics (v16.8.0)
vjmp Oct 2, 2023
91ab5a3
Feature: --warranty-voided flag added (v16.9.0)
vjmp Oct 3, 2023
4474c2e
Breaking changes: layers and interactity (v17.0.0)
vjmp Oct 4, 2023
e0b343b
Warranty voided improvements (v17.0.1)
vjmp Oct 10, 2023
b9fb6a2
Operating system info (v17.1.0)
vjmp Oct 10, 2023
13e5c8f
Fix: Windows operating system info (v17.1.1)
vjmp Oct 11, 2023
d4ecb16
Fix: Windows micromamba activation bug (v17.1.2)
vjmp Oct 11, 2023
f9876e7
Fix: used environment configuration visibility (v17.1.3)
vjmp Oct 12, 2023
c0d7fdd
Upgrade: micromamba v1.5.1 (v17.2.0)
vjmp Oct 12, 2023
5e25b41
Feature: embed micromamba (v17.3.0)
vjmp Oct 16, 2023
b2303cd
Fix: micromamba version as asset (v17.3.1)
vjmp Oct 18, 2023
fa3b120
Feature: certificate export command (v17.4.0)
vjmp Oct 23, 2023
632f3dc
Fix: certificate export functionality (v17.4.1)
vjmp Oct 23, 2023
a17f5a3
Various fixes detected while testing (v17.4.2)
vjmp Oct 25, 2023
f14ba09
Certificate variables and diagnostics (v17.5.0)
vjmp Oct 30, 2023
c96f580
Simple relocation detection (v17.6.0)
vjmp Nov 2, 2023
4bf7aa4
SSL fix and performance improvements (v17.6.1)
vjmp Nov 6, 2023
f2dbdb7
Holotree space use tracking (v17.7.0)
vjmp Nov 8, 2023
6cce924
Holotree space use tracking fix (v17.7.1)
vjmp Nov 8, 2023
e9a188e
Documentation updates (v17.7.2)
vjmp Nov 8, 2023
5ae4fa2
Minor fixed (process monitoring) (v17.7.3)
vjmp Nov 14, 2023
8771d62
Diagnose missing drift file (v17.8.0)
vjmp Nov 14, 2023
c607f7a
ROBOCORP_HOME related fixes (v17.8.1)
vjmp Nov 14, 2023
6c98332
rcc version check (v17.9.0)
vjmp Nov 15, 2023
72f713a
temp and pyc management (v17.10.0)
vjmp Nov 16, 2023
f4981c5
Externally managed (PEP 668) (v17.11.0)
vjmp Nov 23, 2023
4e00d47
Revert "Diagnose missing drift file (v17.8.0)" as v17.12.0
vjmp Nov 23, 2023
d5e3b15
Bugfix: PATH duplicates and holotrees (v17.12.1)
vjmp Nov 27, 2023
19a9360
Update README.md
kariharju Jan 9, 2024
1d18ab9
Fixed link in readme
kariharju Jan 9, 2024
4c0fe17
Security: remove ECC experiment (v17.13.0)
vjmp Jan 24, 2024
dbd464a
Add venv support (v17.14.0)
vjmp Feb 2, 2024
8808424
Avoid error upon missing `BUILTIN\Users`
SoloJacobs Jan 16, 2024
27588de
Pull request for Windows icacl (v17.15.0)
vjmp Feb 2, 2024
3e32a86
Bugfix: venv, paths and options (v17.15.1)
vjmp Feb 5, 2024
66e272a
Bugfix: activation script locations (v17.15.2)
vjmp Feb 5, 2024
e423500
Feature: NO_PROXY configuration support (v17.16.0)
vjmp Feb 7, 2024
f85b2b0
Feature: added depxtraction.py to created venv (v17.17.0)
vjmp Feb 9, 2024
b18cdac
Bugfix: .use file pollution (v17.17.1)
vjmp Feb 12, 2024
48d4951
Refactoring: depxtraction details (v17.17.2)
vjmp Feb 14, 2024
7e2cffb
Bugfix: option to hide unwanted log outputs (v17.17.3)
vjmp Feb 17, 2024
9e67dcd
Docs: venv and depxtraction docs (v17.17.4)
vjmp Feb 19, 2024
8377b99
Feature: bundled flag and version check (v17.18.0)
vjmp Feb 23, 2024
11b02c0
Bugfix: case-insensitive hash comparison (v17.18.1)
vjmp Mar 4, 2024
167e95f
Upgrade: micromamba v1.5.7 upgrade (v17.19.0)
vjmp Mar 11, 2024
3696ffd
Experiment: uv support (v17.20.0)
vjmp Mar 12, 2024
604deef
Experiment: uncompressed hololib (v17.21.0)
vjmp Mar 25, 2024
44e062d
Update links to new documentation site
raivolink Mar 24, 2024
f0ab17e
Experiment: siphash as hasher (v17.22.0)
vjmp Mar 27, 2024
154e995
Feature: better cleanup procedure (v17.23.0)
vjmp Apr 10, 2024
5cbe638
docs: fix obsolete data
raivolink Apr 11, 2024
b1698aa
CI: GH action upgrade (v17.23.1)
vjmp Apr 15, 2024
3550bbd
CI: more GH action upgrade (v17.23.2)
vjmp Apr 15, 2024
99b7d2c
Upgrade: micromamba to v1.5.8 (v17.24.0)
vjmp Apr 15, 2024
561bea8
Bugfix: layer retry build bug (v17.25.0)
vjmp Apr 17, 2024
e8878e7
Feature: no retry build flag (v17.26.0)
vjmp Apr 17, 2024
1613b93
Feature: use feature truststore is cacheable (v17.27.0)
vjmp Apr 17, 2024
1ffed49
Feature: package.yaml as conda.yaml replacement (v17.28.0)
vjmp Apr 22, 2024
1ed386b
Bugfix: layers missing from export (v17.28.1)
vjmp Apr 24, 2024
c2df288
Bugfix: more package/conda related fixes (v17.28.2)
vjmp Apr 24, 2024
688a49d
Bugfix: made metrics errors not critical (v17.28.3)
vjmp Apr 26, 2024
a79fb06
Bugfix: missing controller from message (v17.28.4)
vjmp Apr 26, 2024
a43b3dc
Bugfix: removing VIRTUAL_ENV from subprocesses (v17.29.0)
vjmp May 27, 2024
73561cf
Bugfix: locking making dirs public (v17.29.1)
vjmp May 29, 2024
ede14c0
Feature: sema4ai flag (v18.0.0)
vjmp Jun 3, 2024
c88789c
Improvement: sema4ai product name (v18.0.1)
vjmp Jun 5, 2024
a94a645
Improvement: settings.yaml in product strategy (v18.0.2)
vjmp Jun 7, 2024
33dfd9e
Bugfix: Window icacls hardocoded path (v18.0.3)
vjmp Jun 7, 2024
6e5ee39
Improvement: --robocorp flag (v18.0.4)
vjmp Jun 12, 2024
707a5c7
Change: --defaults flag in settings (v18.0.5)
vjmp Jun 14, 2024
b8e35d2
Feature: batch metrics (v18.1.0)
vjmp Jun 26, 2024
bd2176a
Bugfix: too many commands were hidden (v18.1.1)
vjmp Jun 26, 2024
a567e5f
Bugfix: Sema4.ai settings.yaml defaults (v18.1.2)
vjmp Jun 28, 2024
7df5421
Bugfix and documentation updates (v18.1.3)
vjmp Aug 2, 2024
31cc64c
Bugfix: filtering PS1 out of environment (v18.1.4)
vjmp Aug 5, 2024
03df00a
Developer tooling update (v18.1.5)
vjmp Aug 7, 2024
cc09a71
Unit tests fix for MacOS and Windows (v18.1.6) (#65)
el-mike Aug 21, 2024
9cf5ad0
Use Windows runner in GitHub Actions, use python/invoke instead of ru…
fabioz Oct 17, 2024
2cd5d7b
Create generator-generic-ossf-slsa3-publish.yml
yiwan330445 Dec 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
FEATURE: new token time calculation model (v12.0.0)
- adding "grace period" in "token time" calculations, and this is breaking
  change, because token time calculation changes, and management of grace
  period is user/app responsibility (but there is default value) and tokens
  also will now have minimum period
- bugfix: when broken catalog was loaded, catalog listing failed
vjmp committed Dec 29, 2022

Verified

This commit was signed with the committer’s verified signature.
vjmp Juha Pohjalainen
commit ad7fa3fcf2871380699ae338527bc1621a609852
14 changes: 10 additions & 4 deletions cmd/authorize.go
Original file line number Diff line number Diff line change
@@ -18,13 +18,18 @@ var authorizeCmd = &cobra.Command{
if common.DebugFlag {
defer common.Stopwatch("Authorize query lasted").Report()
}
period := &operations.TokenPeriod{
ValidityTime: validityTime,
GracePeriod: gracePeriod,
}
period.EnforceGracePeriod()
var claims *operations.Claims
if granularity == "user" {
claims = operations.ViewWorkspacesClaims(validityTime * 60)
claims = operations.ViewWorkspacesClaims(period.RequestSeconds())
} else {
claims = operations.RunRobotClaims(validityTime*60, workspaceId)
claims = operations.RunRobotClaims(period.RequestSeconds(), workspaceId)
}
data, err := operations.AuthorizeClaims(AccountName(), claims)
data, err := operations.AuthorizeClaims(AccountName(), claims, period)
if err != nil {
pretty.Exit(3, "Error: %v", err)
}
@@ -38,7 +43,8 @@ var authorizeCmd = &cobra.Command{

func init() {
cloudCmd.AddCommand(authorizeCmd)
authorizeCmd.Flags().IntVarP(&validityTime, "minutes", "m", 0, "How many minutes the authorization should be valid for.")
authorizeCmd.Flags().IntVarP(&validityTime, "minutes", "m", 15, "How many minutes the authorization should be valid for (minimum 15 minutes).")
authorizeCmd.Flags().IntVarP(&gracePeriod, "graceperiod", "", 5, "What is grace period buffer in minutes on top of validity minutes (minimum 5 minutes).")
authorizeCmd.Flags().StringVarP(&granularity, "granularity", "g", "", "Authorization granularity (user/workspace) used in.")
authorizeCmd.Flags().StringVarP(&workspaceId, "workspace", "w", "", "Workspace id to use with this command.")
}
12 changes: 9 additions & 3 deletions cmd/holotreeVariables.go
Original file line number Diff line number Diff line change
@@ -100,8 +100,13 @@ func holotreeExpandEnvironment(userFiles []string, packfile, environment, worksp

if Has(workspace) {
common.Timeline("get run robot claims")
claims := operations.RunRobotClaims(validity*60, workspace)
data, err = operations.AuthorizeClaims(AccountName(), claims)
period := &operations.TokenPeriod{
ValidityTime: validityTime,
GracePeriod: gracePeriod,
}
period.EnforceGracePeriod()
claims := operations.RunRobotClaims(period.RequestSeconds(), workspace)
data, err = operations.AuthorizeClaims(AccountName(), claims, period)
pretty.Guard(err == nil, 9, "Failed to get cloud data, reason: %v", err)
}

@@ -145,7 +150,8 @@ func init() {
holotreeVariablesCmd.Flags().StringVarP(&environmentFile, "environment", "e", "", "Full path to 'env.json' development environment data file. <optional>")
holotreeVariablesCmd.Flags().StringVarP(&robotFile, "robot", "r", "robot.yaml", "Full path to 'robot.yaml' configuration file. <optional>")
holotreeVariablesCmd.Flags().StringVarP(&workspaceId, "workspace", "w", "", "Optional workspace id to get authorization tokens for. <optional>")
holotreeVariablesCmd.Flags().IntVarP(&validityTime, "minutes", "m", 0, "How many minutes the authorization should be valid for. <optional>")
holotreeVariablesCmd.Flags().IntVarP(&validityTime, "minutes", "m", 15, "How many minutes the authorization should be valid for (minimum 15 minutes).")
holotreeVariablesCmd.Flags().IntVarP(&gracePeriod, "graceperiod", "", 5, "What is grace period buffer in minutes on top of validity minutes (minimum 5 minutes).")
holotreeVariablesCmd.Flags().StringVarP(&accountName, "account", "a", "", "Account used for workspace. <optional>")

holotreeVariablesCmd.Flags().StringVarP(&common.HolotreeSpace, "space", "s", "user", "Client specific name to identify this environment.")
8 changes: 6 additions & 2 deletions cmd/run.go
Original file line number Diff line number Diff line change
@@ -38,9 +38,12 @@ in your own machine.`,

func captureRunFlags(assistant bool) *operations.RunFlags {
return &operations.RunFlags{
TokenPeriod: &operations.TokenPeriod{
ValidityTime: validityTime,
GracePeriod: gracePeriod,
},
AccountName: AccountName(),
WorkspaceId: workspaceId,
ValidityTime: validityTime,
EnvironmentFile: environmentFile,
RobotYaml: robotFile,
Assistant: assistant,
@@ -55,7 +58,8 @@ func init() {
runCmd.Flags().StringVarP(&robotFile, "robot", "r", "robot.yaml", "Full path to the 'robot.yaml' configuration file.")
runCmd.Flags().StringVarP(&runTask, "task", "t", "", "Task to run from the configuration file.")
runCmd.Flags().StringVarP(&workspaceId, "workspace", "w", "", "Optional workspace id to get authorization tokens for. OPTIONAL")
runCmd.Flags().IntVarP(&validityTime, "minutes", "m", 0, "How many minutes the authorization should be valid for. OPTIONAL")
runCmd.Flags().IntVarP(&validityTime, "minutes", "m", 15, "How many minutes the authorization should be valid for (minimum 15 minutes).")
runCmd.Flags().IntVarP(&gracePeriod, "graceperiod", "", 5, "What is grace period buffer in minutes on top of validity minutes (minimum 5 minutes).")
runCmd.Flags().StringVarP(&accountName, "account", "", "", "Account used for workspace. OPTIONAL")
runCmd.Flags().BoolVarP(&forceFlag, "force", "f", false, "Force conda cache update (only for new environments).")
runCmd.Flags().BoolVarP(&interactiveFlag, "interactive", "", false, "Allow robot to be interactive in terminal/command prompt. For development only, not for production!")
5 changes: 4 additions & 1 deletion cmd/script.go
Original file line number Diff line number Diff line change
@@ -27,9 +27,12 @@ var scriptCmd = &cobra.Command{

func noRunFlags() *operations.RunFlags {
return &operations.RunFlags{
TokenPeriod: &operations.TokenPeriod{
ValidityTime: 0,
GracePeriod: 0,
},
AccountName: "",
WorkspaceId: "",
ValidityTime: 0,
EnvironmentFile: environmentFile,
RobotYaml: robotFile,
Assistant: false,
1 change: 1 addition & 0 deletions cmd/sharedvariables.go
Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@ var (
runTask string
shellDirectory string
templateName string
gracePeriod int
validityTime int
workspaceId string
wskey string
3 changes: 2 additions & 1 deletion cmd/testrun.go
Original file line number Diff line number Diff line change
@@ -86,7 +86,8 @@ func init() {
testrunCmd.Flags().StringVarP(&robotFile, "robot", "r", "robot.yaml", "Full path to the 'robot.yaml' configuration file.")
testrunCmd.Flags().StringVarP(&runTask, "task", "t", "", "Task to run from configuration file.")
testrunCmd.Flags().StringVarP(&workspaceId, "workspace", "w", "", "Optional workspace id to get authorization tokens for. OPTIONAL")
testrunCmd.Flags().IntVarP(&validityTime, "minutes", "m", 0, "How many minutes the authorization should be valid for. OPTIONAL")
testrunCmd.Flags().IntVarP(&validityTime, "minutes", "m", 15, "How many minutes the authorization should be valid for (minimum 15 minutes).")
testrunCmd.Flags().IntVarP(&gracePeriod, "graceperiod", "", 5, "What is grace period buffer in minutes on top of validity minutes (minimum 5 minutes).")
testrunCmd.Flags().StringVarP(&accountName, "account", "", "", "Account used for workspace. OPTIONAL")
testrunCmd.Flags().BoolVarP(&forceFlag, "force", "f", false, "Force conda cache update. (only for new environments)")
testrunCmd.Flags().StringVarP(&common.HolotreeSpace, "space", "s", "user", "Client specific name to identify this environment.")
2 changes: 1 addition & 1 deletion common/version.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package common

const (
Version = `v11.36.5`
Version = `v12.0.0`
)
8 changes: 8 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# rcc change log

## v12.0.0 (date: 29.12.2022) UNSTABLE

- adding "grace period" in "token time" calculations, and this is breaking
change, because token time calculation changes, and management of grace
period is user/app responsibility (but there is default value) and tokens
also will now have minimum period
- bugfix: when broken catalog was loaded, catalog listing failed

## v11.36.5 (date: 28.12.2022)

- fix: added more explanation to network diagnostics reporting, explaining
12 changes: 11 additions & 1 deletion htfs/functions.go
Original file line number Diff line number Diff line change
@@ -504,6 +504,16 @@ func DigestLoader(root *Root, at int, slots []map[string]string) anywork.Work {
}
}

func ignoreFailedCatalogs(suspects []*Root) []*Root {
roots := make([]*Root, 0, len(suspects))
for _, root := range suspects {
if root != nil {
roots = append(roots, root)
}
}
return roots
}

func LoadCatalogs() ([]string, []*Root) {
common.TimelineBegin("catalog load start")
defer common.TimelineEnd()
@@ -516,7 +526,7 @@ func LoadCatalogs() ([]string, []*Root) {
}
runtime.Gosched()
anywork.Sync()
return catalogs, roots
return catalogs, ignoreFailedCatalogs(roots)
}

func BaseFolders() []string {
12 changes: 6 additions & 6 deletions operations/authorize.go
Original file line number Diff line number Diff line change
@@ -157,7 +157,7 @@ func HmacSignature(claims *Claims, secret, nonce, bodyHash string) string {
return base64.StdEncoding.EncodeToString(hasher.Sum(nil))
}

func AuthorizeClaims(accountName string, claims *Claims) (Token, error) {
func AuthorizeClaims(accountName string, claims *Claims, period *TokenPeriod) (Token, error) {
account := AccountByName(accountName)
if account == nil {
return nil, fmt.Errorf("Could not find account by name: %q", accountName)
@@ -166,16 +166,16 @@ func AuthorizeClaims(accountName string, claims *Claims) (Token, error) {
if err != nil {
return nil, fmt.Errorf("Could not create client for endpoint: %s reason: %w", account.Endpoint, err)
}
data, err := AuthorizeCommand(client, account, claims)
data, err := AuthorizeCommand(client, account, claims, period)
if err != nil {
return nil, fmt.Errorf("Could not authorize: %w", err)
}
return data, nil
}

func AuthorizeCommand(client cloud.Client, account *account, claims *Claims) (Token, error) {
func AuthorizeCommand(client cloud.Client, account *account, claims *Claims, period *TokenPeriod) (Token, error) {
when := time.Now().Unix()
found, ok := account.Cached(claims.Name, claims.Url)
found, ok := account.Cached(period, claims.Name, claims.Url)
if ok {
cached := make(Token)
cached["endpoint"] = client.Endpoint()
@@ -216,8 +216,8 @@ func AuthorizeCommand(client cloud.Client, account *account, claims *Claims) (To
account.WasVerified(when)
trueToken, ok := token["token"].(string)
if ok {
deadline := when + int64(3*(claims.ExpiresIn/4))
account.CacheToken(claims.Name, claims.Url, trueToken, deadline)
account.CacheToken(claims.Name, claims.Url, trueToken, period.Deadline())
common.Timeline("cached authorize claim: %s (new deadline: %d)", claims.Name, period.Deadline())
}
return token, nil
}
4 changes: 2 additions & 2 deletions operations/authorize_test.go
Original file line number Diff line number Diff line change
@@ -156,10 +156,10 @@ func TestCanCallAuthorizeCommand(t *testing.T) {
first := cloud.Response{Status: 200, Body: []byte("{\"token\":\"foo\",\"expiresIn\":1}")}
client := mocks.NewClient(&first)
claims := operations.RunRobotClaims(1, "777")
token, err := operations.AuthorizeCommand(client, account, claims)
token, err := operations.AuthorizeCommand(client, account, claims, nil)
must_be.Nil(err)
wont_be.Nil(token)
must_be.Equal(token["token"], "foo")
must_be.Equal(token["expiresIn"], 1.0)
//must_be.Equal(token["expiresIn"], 1.0)
must_be.Equal(token["endpoint"], "https://this.is/mock")
}
8 changes: 4 additions & 4 deletions operations/credentials.go
Original file line number Diff line number Diff line change
@@ -111,7 +111,7 @@ func (it *account) CacheToken(name, url, token string, deadline int64) {
cache.Credentials[fullkey] = &credential
}

func (it *account) Cached(name, url string) (string, bool) {
func (it *account) Cached(period *TokenPeriod, name, url string) (string, bool) {
if common.NoCache {
return "", false
}
@@ -124,11 +124,11 @@ func (it *account) Cached(name, url string) (string, bool) {
if !ok {
return "", false
}
when := time.Now().Unix()
if found.Deadline < when {
liveline := period.Liveline()
if found.Deadline < liveline {
return "", false
}
common.Timeline("cached token: %s", name)
common.Timeline("using cached token: %s (%d < %d)", name, liveline, found.Deadline)
return found.Token, true
}

66 changes: 61 additions & 5 deletions operations/running.go
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@ import (
"path/filepath"
"runtime"
"strings"
"time"

"github.com/robocorp/rcc/common"
"github.com/robocorp/rcc/conda"
@@ -21,16 +22,71 @@ var (
rcTokens = []string{"RC_API_SECRET_TOKEN", "RC_API_WORKITEM_TOKEN"}
)

type TokenPeriod struct {
ValidityTime int // minutes
GracePeriod int // minutes
}

type RunFlags struct {
*TokenPeriod
AccountName string
WorkspaceId string
ValidityTime int
EnvironmentFile string
RobotYaml string
Assistant bool
NoPipFreeze bool
}

func (it *TokenPeriod) EnforceGracePeriod() *TokenPeriod {
if it == nil {
return it
}
if it.GracePeriod < 5 {
it.GracePeriod = 5
}
if it.GracePeriod > 120 {
it.GracePeriod = 120
}
if it.ValidityTime < 15 {
it.ValidityTime = 15
}
return it
}

func asSeconds(minutes int) int {
return 60 * minutes
}

func DefaultTokenPeriod() *TokenPeriod {
result := &TokenPeriod{}
return result.EnforceGracePeriod()
}

func (it *TokenPeriod) AsSeconds() (int, int, bool) {
if it == nil {
return asSeconds(15), asSeconds(5), false
}
it.EnforceGracePeriod()
return asSeconds(it.ValidityTime), asSeconds(it.GracePeriod), true
}

func (it *TokenPeriod) Liveline() int64 {
valid, _, _ := it.AsSeconds()
when := time.Now().Unix()
return when + int64(valid)
}

func (it *TokenPeriod) Deadline() int64 {
valid, grace, _ := it.AsSeconds()
when := time.Now().Unix()
return when + int64(valid+grace)
}

func (it *TokenPeriod) RequestSeconds() int {
valid, grace, _ := it.AsSeconds()
return int(valid + grace)
}

func FreezeEnvironmentListing(label string, config robot.Robot) {
goldenfile := conda.GoldenMasterFilename(label)
listing := conda.LoadWantedDependencies(goldenfile)
@@ -150,8 +206,8 @@ func ExecuteSimpleTask(flags *RunFlags, template []string, config robot.Robot, t
}
var data Token
if len(flags.WorkspaceId) > 0 {
claims := RunRobotClaims(flags.ValidityTime*60, flags.WorkspaceId)
data, err = AuthorizeClaims(flags.AccountName, claims)
claims := RunRobotClaims(flags.TokenPeriod.RequestSeconds(), flags.WorkspaceId)
data, err = AuthorizeClaims(flags.AccountName, claims, flags.TokenPeriod.EnforceGracePeriod())
}
if err != nil {
pretty.Exit(8, "Error: %v", err)
@@ -215,8 +271,8 @@ func ExecuteTask(flags *RunFlags, template []string, config robot.Robot, todo ro
task[0] = findExecutableOrDie(searchPath, task[0])
var data Token
if !flags.Assistant && len(flags.WorkspaceId) > 0 {
claims := RunRobotClaims(flags.ValidityTime*60, flags.WorkspaceId)
data, err = AuthorizeClaims(flags.AccountName, claims)
claims := RunRobotClaims(flags.TokenPeriod.RequestSeconds(), flags.WorkspaceId)
data, err = AuthorizeClaims(flags.AccountName, claims, nil)
}
if err != nil {
pretty.Exit(8, "Error: %v", err)
18 changes: 18 additions & 0 deletions operations/running_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package operations_test

import (
"testing"

"github.com/robocorp/rcc/hamlet"
"github.com/robocorp/rcc/operations"
)

func TestTokenPeriodWorksAsExpected(t *testing.T) {
must, wont := hamlet.Specifications(t)

var period *operations.TokenPeriod
must.Nil(period)
wont.Panic(func() {
period.Deadline()
})
}
Loading