Coder Social home page Coder Social logo

robocorp / rcc Goto Github PK

View Code? Open in Web Editor NEW
451.0 33.0 91.0 2.97 MB

Repeatable, movable and isolated Python environments for your automation. ๐Ÿš€

Home Page: https://robocorp.com/docs/

License: Apache License 2.0

Ruby 0.52% Go 92.62% RobotFramework 5.66% Python 1.20%
rpa robocorp rcc robots robotframework automation python robot robot-framework yaml

rcc's Introduction

RCC

RCC allows you to create, manage, and distribute Python-based self-contained automation packages. RCC also allows you to run your automations in isolated Python environments so they can still access the rest of your machine.

๐Ÿš€ "Repeatable, movable and isolated Python environments for your automation."

Together with robot.yaml configuration file, rcc is a foundation that allows anyone to build and share automation easily.

RCC is actively maintained by Sema4.ai.

Why use rcc?

  • You do not need to install Python on the target machine
  • You can control exactly which version of Python your automation will run on (..and which pip version is used to resolve dependencies)
  • You can avoid Works on my machine
  • No need for venv, pyenv, ... tooling and knowledge sharing inside your team.
  • Define dependencies in conda.yaml and automation config in robot.yaml and let RCC do the heavy lifting.
  • If you have run into "dependency drifts", where once working runtime environment dependencies get updated and break your production system?, RCC can freeze ALL dependencies, pre-build environments, and more.
  • RCC will give you a heads-up if your automations have been leaving behind processes after running.

...and much much more.

๐Ÿ‘‰ If the command line seems scary, just pick up Robocorp Code -extension for VS Code, and you'll get the power of RCC directly in VS Code without worrying about the commands.

Getting Started

โฌ Install rcc

Installation guide

:octocat: Pull robot from GitHub:

rcc pull github.com/robocorp/template-python-browser

๐Ÿƒ Run robot

rcc run

๐Ÿฃ Create your own robot from templates

rcc create

For detailed instructions, visit Robocorp RCC documentation to get started. To build rcc from this repository, see the Setup Guide

Installing RCC from the command line

Links to changelog and different versions available here

Windows

  1. Open the command prompt
  2. Download: curl -o rcc.exe https://downloads.robocorp.com/rcc/releases/latest/windows64/rcc.exe
  3. Add to system path: Open Start -> Edit the system environment variables
  4. Test: rcc

macOS

Brew cask from Robocorp tap

  1. Update brew: brew update
  2. Install: brew install robocorp/tools/rcc
  3. Test: rcc

Upgrading: brew upgrade rcc

Linux

  1. Open the terminal
  2. Download: curl -o rcc https://downloads.robocorp.com/rcc/releases/latest/linux64/rcc
  3. Make the downloaded file executable: chmod a+x rcc
  4. Add to path: sudo mv rcc /usr/local/bin/
  5. Test: rcc

Documentation

Visit https://robocorp.com/docs to view the full documentation on the full Robocorp stack.

The changelog can be seen here. It is also visible inside RCC using the command rcc docs changelog.

EULA for pre-built distribution.

Some tips, tricks, and recipes can be found here. These are also visible inside RCC using the command: rcc docs recipes.

Community and Support

The Robocorp community can be found on Developer Slack, where you can ask questions, voice ideas, and share your projects.

License

Apache 2.0

rcc's People

Contributors

aikarjal avatar cmin764 avatar el-mike avatar jaukia avatar kariharju avatar machafulla avatar mchece avatar orlof avatar raivolink avatar sahokas avatar solojacobs avatar vjmp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rcc's Issues

rcc task script command is not working

I tried to run rcc task script -- pip list as suggested in the command prompt, but it is not working. I get the following, when I try to run within image search sample robot:

Error: Could not resolve what task to run. Select one using --task option.
Available task names are: "Image search".

Using both latest Rcc as well as the stable one 11.9.10.

image

Test failure with latest master on macOS

iTerm2 Build 3.3.12, fish 3.1.2, go version go1.15.5 darwin/amd64

 ~/C/r/rcc (master) [1]> rake build
PATH is /Users/kerkko/miniconda3/condabin:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/kerkko/neovim/bin:/Users/kerkko/.poetry/bin:/Users/kerkko/.cargo/bin:/Users/kerkko/.local/bin:/Users/kerkko/local-brew/brew/bin:/Users/kerkko/dotfiles/scripts:/Users/kerkko/.config/nvm/14.15.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin
GOPATH is
GOROOT is
go get -u github.com/go-bindata/go-bindata/...
which -a zip || echo NA
/usr/bin/zip
which -a go-bindata || echo NA
NA
ls -l $HOME/go/bin
total 5616
-rwxr-xr-x  1 kerkko  staff  2872024 Nov 20 11:31 go-bindata
mkdir -p tmp build/linux64 build/linux32 build/macos64 build/windows64 build/windows32
sed: 1: "/Version/{s/^.*`v//;s/` ...": bad flag in substitute command: '}'
go version
go version go1.15.5 darwin/amd64
git --no-pager log -2 --stat HEAD
commit 5df2dd73c2f5e3cfe4b1cbe2c02a4aec038d6d6b (HEAD -> master, origin/master, origin/HEAD)
Author: Juha Pohjalainen <[email protected]>
Date:   Fri Nov 20 05:47:40 2020 +0200

    RCC-110: interactive rcc create (v6.0.6)

    - fixed some common.Stdout usage (missing newlines)
    - added alternative create (for comparison purposes)

 cmd/assistantList.go      |   2 +-
 cmd/authorize.go          |   2 +-
 cmd/envNew.go             |   2 +-
 cmd/finder.go             |   2 +-
 cmd/identity.go           |   6 +++---
 cmd/initialize.go         |   4 ++--
 cmd/libs.go               |   2 +-
 cmd/license.go            |   2 +-
 cmd/merge.go              |   4 ++--
 cmd/tutorial.go           |   2 +-
 cmd/userinfo.go           |   2 +-
 cmd/variables.go          |   4 ++--
 cmd/version.go            |   2 +-
 cmd/wizardcreate.go       |  16 +++++++++++++---
 cmd/workspace.go          |   2 +-
 common/version.go         |   2 +-
 operations/credentials.go |   2 +-
 wizard/altcreate.go       | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 18 files changed, 151 insertions(+), 24 deletions(-)

commit 1d556b3450fef433b438da13c46e3ee6765dd415
Author: Juha Pohjalainen <[email protected]>
Date:   Thu Nov 19 17:00:30 2020 +0200

    RCC-110: interactive rcc create (v6.0.5)

    - added Iconic selection
    - added two icons, sparkles and rocket, for Mac only for now

 common/version.go                           | 2 +-
 pretty/{setup_others.go => setup_darwin.go} | 3 +--
 pretty/setup_linux.go                       | 6 ++++++
 pretty/setup_windows.go                     | 1 +
 pretty/variables.go                         | 9 ++++++++-
 wizard/create.go                            | 4 ++--
 6 files changed, 19 insertions(+), 6 deletions(-)
rm -rf /Users/kerkko/Code/robocorp/rcc/assets/extended.zip
Directory templates/extended/ => /Users/kerkko/Code/robocorp/rcc/assets/extended.zip
cd templates/extended/ && zip -ryqD9 /Users/kerkko/Code/robocorp/rcc/assets/extended.zip .
rm -rf /Users/kerkko/Code/robocorp/rcc/assets/python.zip
Directory templates/python/ => /Users/kerkko/Code/robocorp/rcc/assets/python.zip
cd templates/python/ && zip -ryqD9 /Users/kerkko/Code/robocorp/rcc/assets/python.zip .
rm -rf /Users/kerkko/Code/robocorp/rcc/assets/standard.zip
Directory templates/standard/ => /Users/kerkko/Code/robocorp/rcc/assets/standard.zip
cd templates/standard/ && zip -ryqD9 /Users/kerkko/Code/robocorp/rcc/assets/standard.zip .
$HOME/go/bin/go-bindata -o blobs/assets.go -pkg blobs assets/*.zip assets/man/*
go test -cover -coverprofile=tmp/cover.out ./...
ok  	github.com/robocorp/rcc/blobs	0.517s	coverage: 29.8% of statements
ok  	github.com/robocorp/rcc/cloud	0.377s	coverage: 18.0% of statements
ok  	github.com/robocorp/rcc/cmd	0.438s	coverage: 21.4% of statements [no tests to run]
ok  	github.com/robocorp/rcc/cmd/rcc	0.738s	coverage: 50.0% of statements
ok  	github.com/robocorp/rcc/common	0.086s	coverage: 54.7% of statements
ok  	github.com/robocorp/rcc/conda	0.160s	coverage: 30.9% of statements
ok  	github.com/robocorp/rcc/hamlet	0.150s	coverage: 100.0% of statements
ok  	github.com/robocorp/rcc/mocks	0.106s	coverage: 100.0% of statements
ok  	github.com/robocorp/rcc/operations	2.354s	coverage: 17.6% of statements
ok  	github.com/robocorp/rcc/pathlib	0.202s	coverage: 44.3% of statements
?   	github.com/robocorp/rcc/pretty	[no test files]
ok  	github.com/robocorp/rcc/robot	0.212s	coverage: 62.5% of statements
hello
ls: crapiti.crap: No such file or directory
--- FAIL: TestCanExecuteSimpleEcho (0.01s)
    transparent_test.go:28: Expected 1 to be 2!!!
FAIL
coverage: 50.0% of statements
FAIL	github.com/robocorp/rcc/shell	0.275s
?   	github.com/robocorp/rcc/wizard	[no test files]
ok  	github.com/robocorp/rcc/xviper	0.414s	coverage: 44.5% of statements
FAIL
rake aborted!
Command failed with status (1): [go test -cover -coverprofile=tmp/cover.out...]
/Users/kerkko/Code/robocorp/rcc/Rakefile:42:in `block in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
Tasks: TOP => build => linux64 => test
(See full trace by running task with --trace)

Why holotree export is imported into default location instead of ROBOCORP_HOME?

From https://robocorp.com/docs/troubleshooting/rcc-clear-cache I've understood that ROBOCORP_HOME environment variable could be used to override the default RCC cache location.

But in the following log, even ROBOCORP_HOME is set to C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\, holotree export is still being imported into C:\\Users\\IEUser\\AppData\\Local\\robocorp\.

(Diagnostics output after the log.)

08.103306.999 [T] Interactive mode enabled: false; colors enabled: false; icons enabled: false
08.103307.000 [T] LOCKER: Want lock on: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\rcc.yaml.lck
08.103307.000 [T] CLI command was: []string{"C:\\Users\\IEUser\\rcc.exe", "run", "--robot=local/robot.yaml", "--no-build", "--trace"}
08.103307.000 [N] LOCKER: Leaving lock on C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\rcc.yaml.lck with 123 retries left in 0.000
08.103307.001 [T] LOCKER: release C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\rcc.yaml.lck success: true with err: <nil>
08.103307.001 [D] Using config file: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\rcc.yaml
08.103307.001 [D] Making file executable: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\hololib.zip
08.103307.001 [D] Making file executable: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\LICENSE
08.103307.001 [D] Making file executable: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\main.py
08.103307.001 [D] Making file executable: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\task.py
08.103307.001 [D] Making file executable: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\weapp.hcl
08.103307.002 [N] "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\8b87a57f-077f-935f-0435-57a4ef7837c8\\serve\\local\\robot.yaml" as robot.yaml is:
tasks:
  Run Python:
    shell: uvicorn main:app

condaConfigFile: conda.yaml
artifactsDir: output
PATH:
  - .
PYTHONPATH:
  - .
ignoreFiles:
  - .gitignore

08.103307.002 [T] Available environment configurations:
08.103307.002 [T] - nothing
08.103307.002 [N] Note: 'no-build' setting is active. Only cached, prebuild, or imported environments are allowed!
08.103307.002 [D] New zipped environment from "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\8b87a57f-077f-935f-0435-57a4ef7837c8\\serve\\local\\hololib.zip"!
08.103307.002 [N] ####  Progress: 01/13  v11.22.1     0.009s  Fresh [private mode] holotree environment f214022d-43a8-1fc7-cf50-f414e8d63b4e.
08.103307.002 [T] LOCKER: Want lock on: C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\holotree.lck
08.103307.002 [N] LOCKER: Leaving lock on C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\holotree.lck with 29998 retries left in 0.000
08.103307.002 [N] ####  Progress: 02/13  v11.22.1     0.000s  Holotree blueprint is "96b62cb247323f1e" [windows_amd64].
08.103307.011 [N] ####  Progress: 12/13  v11.22.1     0.008s  Restore space from library [with 2 workers].
08.103307.071 [T] LOCKER: Want lock on: C:\Users\IEUser\AppData\Local\robocorp\holotree\8a41f99_5a1fac3_9fcd2534.lck
08.103307.071 [N] LOCKER: Leaving lock on C:\Users\IEUser\AppData\Local\robocorp\holotree\8a41f99_5a1fac3_9fcd2534.lck with 29998 retries left in 0.000
08.103307.171 [T] * Holotree: add missing file       "C:\\Users\\IEUser\\AppData\\Local\\robocorp\\holotree\\8a41f99_5a1fac3_9fcd2534\\Lib\\site-packages\\colorama-0.4.5.dist-info\\WHEEL"
...
08.103307.191 [T] * Holotree: update changed file    "C:\\Users\\IEUser\\AppData\\Local\\robocorp\\holotree\\8a41f99_5a1fac3_9fcd2534\\rcc_plan.log"
08.103310.502 [D] Holotree dirty workload: 613/4810

08.103310.562 [T] LOCKER: release C:\Users\IEUser\AppData\Local\robocorp\holotree\8a41f99_5a1fac3_9fcd2534.lck success: true with err: <nil>
08.103310.562 [D] Holotree restore took: 3.551
08.103310.562 [T] LOCKER: release C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\alloc\robocorp\holotree.lck success: true with err: <nil>
08.103310.562 [N] ####  Progress: 13/13  v11.22.1     3.551s  Fresh holotree done [with 2 workers].
08.103310.562 [N] Note: There is hololib.zip present at: "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\8b87a57f-077f-935f-0435-57a4ef7837c8\\serve\\local\\hololib.zip"
08.103310.562 [D] BackgroundMetric kind:rcc.user name:rcc.cli.run value:v11.22.1 send:false
08.103310.562 [D] Command line is: [uvicorn main:app]
08.103310.574 [T] Environment activation added 1 variables.
Wanted  Version  Origin  |  No.  |  Available          Version       Origin       |  Status
------  -------  ------  +  ---  +  ---------          -------       ------       +  ------
-       -        -       |    1  |  anyio              3.6.1         pypi         |  N/A
-       -        -       |    2  |  bzip2              1.0.8         conda-forge  |  N/A
-       -        -       |    3  |  ca-certificates    2022.6.15     conda-forge  |  N/A
-       -        -       |    4  |  click              8.1.3         pypi         |  N/A
-       -        -       |    5  |  colorama           0.4.5         pypi         |  N/A
-       -        -       |    6  |  fastapi            0.82.0        pypi         |  N/A
-       -        -       |    7  |  h11                0.13.0        pypi         |  N/A
-       -        -       |    8  |  idna               3.3           pypi         |  N/A
-       -        -       |    9  |  libffi             3.4.2         conda-forge  |  N/A
-       -        -       |   10  |  libsqlite          3.39.3        conda-forge  |  N/A
-       -        -       |   11  |  libzlib            1.2.12        conda-forge  |  N/A
-       -        -       |   12  |  openssl            3.0.5         conda-forge  |  N/A
-       -        -       |   13  |  pip                22.1.2        conda-forge  |  N/A
-       -        -       |   14  |  pydantic           1.10.2        pypi         |  N/A
-       -        -       |   15  |  python             3.9.13        conda-forge  |  N/A
-       -        -       |   16  |  setuptools         65.3.0        conda-forge  |  N/A
-       -        -       |   17  |  sniffio            1.3.0         pypi         |  N/A
-       -        -       |   18  |  sqlite             3.39.3        conda-forge  |  N/A
-       -        -       |   19  |  starlette          0.19.1        pypi         |  N/A
-       -        -       |   20  |  tk                 8.6.12        conda-forge  |  N/A
-       -        -       |   21  |  typing_extensions  4.3.0         pypi         |  N/A
-       -        -       |   22  |  tzdata             2022c         conda-forge  |  N/A
-       -        -       |   23  |  ucrt               10.0.20348.0  conda-forge  |  N/A
-       -        -       |   24  |  uvicorn            0.18.3        pypi         |  N/A
-       -        -       |   25  |  vc                 14.2          conda-forge  |  N/A
-       -        -       |   26  |  vs2015_runtime     14.29.30139   conda-forge  |  N/A
-       -        -       |   27  |  wheel              0.37.1        conda-forge  |  N/A
-       -        -       |   28  |  xz                 5.2.6         conda-forge  |  N/A
------  -------  ------  +  ---  +  ---------          -------       ------       +  ------
Wanted  Version  Origin  |  No.  |  Available          Version       Origin       |  Status

08.103310.592 [N] --
08.103310.592 [T] Available environment configurations:
08.103310.592 [T] - nothing
08.103310.592 [T] FINAL conda environment file as C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\8b87a57f-077f-935f-0435-57a4ef7837c8\serve\local\output\environment_windows_amd64_freeze.yaml:
---
channels:
- conda-forge
dependencies:
- bzip2=1.0.8
- ca-certificates=2022.6.15
- libffi=3.4.2
- libsqlite=3.39.3
- libzlib=1.2.12
- openssl=3.0.5
- pip=22.1.2
- python=3.9.13
- setuptools=65.3.0
- sqlite=3.39.3
- tk=8.6.12
- tzdata=2022c
- ucrt=10.0.20348.0
- vc=14.2
- vs2015_runtime=14.29.30139
- wheel=0.37.1
- xz=5.2.6
- pip:
  - anyio==3.6.1
  - click==8.1.3
  - colorama==0.4.5
  - fastapi==0.82.0
  - h11==0.13.0
  - idna==3.3
  - pydantic==1.10.2
  - sniffio==1.3.0
  - starlette==0.19.1
  - typing_extensions==4.3.0
  - uvicorn==0.18.3
---
08.103310.593 [D] about to run command - [C:\Users\IEUser\AppData\Local\robocorp\holotree\8a41f99_5a1fac3_9fcd2534\Scripts\uvicorn.exe main:app]
08.103310.593 [T] Execute "C:\\Users\\IEUser\\AppData\\Local\\robocorp\\holotree\\8a41f99_5a1fac3_9fcd2534\\Scripts\\uvicorn.exe" with arguments ["main:app"]
08.103310.655 [D] PID #1292 is "C:\\Users\\IEUser\\AppData\\Local\\robocorp\\holotree\\8a41f99_5a1fac3_9fcd2534\\Scripts\\uvicorn.exe main:app".
INFO:     Started server process [8364]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Diagnostics:
 - RCC_VERBOSE_ENVIRONMENT_BUILDING      ...  "false"
 - ROBOCORP_HOME                         ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\alloc\\robocorp"
 - ROBOCORP_OVERRIDE_SYSTEM_REQUIREMENTS ...  "false"
 - config-active-profile                 ...  "default"
 - config-http-proxy                     ...  ""
 - config-https-proxy                    ...  ""
 - config-micromambarc-used              ...  "false"
 - config-piprc-used                     ...  "false"
 - config-settings-yaml-used             ...  "false"
 - config-ssl-no-revoke                  ...  "false"
 - config-ssl-verify                     ...  "true"
 - controller                            ...  "rcc.user"
 - cpus                                  ...  "2"
 - executable                            ...  "C:\\Users\\IEUser\\rcc.exe"
 - hololib-catalog-location              ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\alloc\\robocorp\\hololib\\catalog"
 - hololib-library-location              ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\alloc\\robocorp\\hololib\\library"
 - hololib-location                      ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\alloc\\robocorp\\hololib"
 - holotree-location                     ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\alloc\\robocorp\\holotree"
 - holotree-shared                       ...  "false"
 - holotree-user-id                      ...  "8a41f99"
 - installationId                        ...  "b6a1f80a-0914-7946-f9ba-30fb9104bc76"
 - micromamba                            ...  "exec: \"C:\\\\Users\\\\IEUser\\\\AppData\\\\Local\\\\Temp\\\\NomadClient3557951346\\\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\\\alloc\\\\robocorp\\\\bin\\\\micromamba.exe\": file does not exist"
 - no-build                              ...  "false"
 - os                                    ...  "windows_amd64"
 - os-holo-location                      ...  "c:\\ProgramData\\robocorp\\ht"
 - rcc                                   ...  "v11.22.1"
 - stats                                 ...  "0 requests, 0 merges, 0 hits, 0 dirty, 0 misses, 0 failures | b6a1f80a-0914-7946-f9ba-30fb9104bc76"
 - telemetry-enabled                     ...  "true"
 - tempdir                               ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp"
 - uid:gid                               ...  "S-1-5-21-3461203602-4096304019-2269080069-1000:S-1-5-21-3461203602-4096304019-2269080069-513"
 - user-agent                            ...  "rcc/v11.22.1 (windows amd64) rcc.user"
 - user-cache-dir                        ...  "C:\\Users\\IEUser\\AppData\\Local"
 - user-config-dir                       ...  "C:\\Users\\IEUser\\AppData\\Roaming"
 - user-home-dir                         ...  "C:\\Users\\IEUser"
 - when                                  ...  "2022-09-08T10:49:39-07:00 (PDT)"
 - working-dir                           ...  "C:\\Users\\IEUser\\AppData\\Local\\Temp\\NomadClient3557951346\\6e807685-e51d-51a3-b15e-e5cd0a9b1746\\diagnostics"

Checks:
 - RPA      ok       ROBOCORP_HOME (C:\Users\IEUser\AppData\Local\Temp\NomadClient3557951346\6e807685-e51d-51a3-b15e-e5cd0a9b1746\alloc\robocorp) is good enough.
 - OS       ok       PYTHONPATH is not set, which is good.
 - OS       ok       PLAYWRIGHT_BROWSERS_PATH is not set, which is good.
 - OS       ok       NODE_OPTIONS is not set, which is good.
 - OS       ok       NODE_PATH is not set, which is good.
 - OS       ok       Supports long enough paths.
 - network  ok       api.eu1.robocorp.com found: [34.255.229.135 34.240.246.84 34.241.104.220]
 - network  ok       cloud.robocorp.com found: [99.80.113.73 34.254.80.145 34.249.245.73]
 - network  ok       conda.anaconda.org found: [104.17.93.24 104.17.92.24]
 - network  ok       downloads.robocorp.com found: [108.156.22.128 108.156.22.86 108.156.22.67 108.156.22.55]
 - network  ok       files.pythonhosted.org found: [151.101.245.63]
 - network  ok       github.com found: [140.82.121.3]
 - network  ok       id.robocorp.com found: [18.165.122.81 18.165.122.50 18.165.122.65 18.165.122.70]
 - network  ok       pypi.org found: [151.101.192.223 151.101.64.223 151.101.0.223 151.101.128.223]
 - network  ok       robocorp.com found: [172.67.7.153 104.22.40.65 104.22.41.65]
 - network  ok       telemetry.robocorp.com found: [52.48.131.148 108.128.168.116]
 - network  ok       Canary download successful: https://downloads.robocorp.com/canary.txt
 - network  ok       PyPI canary download successful: https://pypi.org/jupyterlab-pygments/
 - network  ok       Conda canary download successful: https://conda.anaconda.org/conda-forge/linux-64/repodata.json
 - Settings ok       Toplevel settings are ok.

How to use credentials for pip index?

Hi all,

I'm using Azure DevOps Artifacts to provide internal python packages. Artifacts is using keyring and artifacts-keyring package to authenticate or you need to set up extra-index-url with this format:

https://user:[email protected]/org/project/_packaging/feed/pypi/simple/

This is needed cause rcc is starting pip with option --isolated. It's ignoring environment variables and user configuration. The fact that keyring packages can't be used and pip is made dumb, I need to put index url parameter to conda.yaml. With credentials as clear text. Is there a possibility to make it more secure or more comfortable?

If rcc would use keyring packages to provide Active Directory data, this would be perfect. Otherwise rcc should support environment variables or something similar.

Error calling rcc env variables

RCC version: v9.3.10
OS: Windows 10

When calling:

rcc.exe env variables -r x:\vscode-robot\local_test\minimal\robot.yaml --controller RobocorpCode

I'm getting an error saying:

Variable exporting failed because: open c:\temp\robohome\temp\556dc980f940b574\require_602bb455.txt: The system cannot find the path specified.

Note that ROBOCORP_HOME is set to c:\temp\robohome in this case.

Empty environment variable being provided by rcc env variables

When running rcc.exe env variables -j -r <robot_path.yaml> an empty environment variable is being provided. i.e.:

C:=c:\\Users\\fabio\\Downloads\\robot

Full env being given in this case is below...

Note: This is the root case of the following issue in the language server: robocorp/robotframework-lsp#283

[
  {
    "key": "PYTHON_EXE",
    "value": "c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\python.exe"
  },
  {
    "key": "CONDA_DEFAULT_ENV",
    "value": "rcc"
  },
  {
    "key": "CONDA_PREFIX",
    "value": "c:\\temp\\robohome\\live\\23fb5ae66c7b3a60"
  },
  {
    "key": "CONDA_PROMPT_MODIFIER",
    "value": "(rcc)"
  },
  {
    "key": "CONDA_SHLVL",
    "value": "1"
  },
  {
    "key": "PYTHONHOME",
    "value": ""
  },
  {
    "key": "PYTHONSTARTUP",
    "value": ""
  },
  {
    "key": "PYTHONEXECUTABLE",
    "value": ""
  },
  {
    "key": "PYTHONNOUSERSITE",
    "value": "1"
  },
  {
    "key": "ROBOCORP_HOME",
    "value": "c:\\temp\\robohome"
  },
  {
    "key": "RCC_ENVIRONMENT_HASH",
    "value": "23fb5ae66c7b3a60"
  },
  {
    "key": "RCC_INSTALLATION_ID",
    "value": "e9f77bb7-4e54-6337-b1cf-0c2c5c1a3f02"
  },
  {
    "key": "RCC_TRACKING_ALLOWED",
    "value": "true"
  },
  {
    "key": "TEMP",
    "value": "c:\\temp\\robohome\\temp\\331efe235ddc5d5c"
  },
  {
    "key": "TMP",
    "value": "c:\\temp\\robohome\\temp\\331efe235ddc5d5c"
  },
  {
    "key": "PATH",
    "value": "c:\\Users\\fabio\\Downloads\\robot;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\mingw-w64\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\usr\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Scripts;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\bin;C:\\Program Files\\Common Files\\Oracle\\Java\\javapath;C:\\bin\\jdk-15.0.1.9-hotspot\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;
  },
  {
    "key": "PYTHONPATH",
    "value": "c:\\Users\\fabio\\Downloads\\robot\\libraries"
  },
  {
    "key": "ROBOT_ROOT",
    "value": "c:\\Users\\fabio\\Downloads\\robot"
  },
  {
    "key": "ROBOT_ARTIFACTS",
    "value": "c:\\Users\\fabio\\Downloads\\robot\\output"
  },
  {
    "key": "",
    "value": "C:=c:\\Users\\fabio\\Downloads\\robot"
  },
  {
    "key": "MAMBA_ROOT_PREFIX",
    "value": "\"c:\\temp\\robohome\""
  },
  {
    "key": "PATH",
    "value": "c:\\temp\\robohome\\live\\23fb5ae66c7b3a60;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\mingw-w64\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\usr\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Library\\bin;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\Scripts;c:\\temp\\robohome\\live\\23fb5ae66c7b3a60\\bin;C:\\Program Files\\Common Files\\Oracle\\Java\\javapath;C:\\bin\\jdk-15.0.1.9-hotspot\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;
  },
  {
    "key": "PROMPT",
    "value": "$P$G"
  }
]

Use requirements.txt inside conda.yaml file for enviroment config

Hello, currently I am using a conda.yaml file for my env dependecies when building with rcc. Having the following structure:

channels:
  - conda-forge
dependencies:
  - python=3.9.18
  - pip=23.2.1
  - pip:
    - cryptography

I would love to know from the maintainers if there is a way to also use requirements.txt inside the conda.yaml file, i have tried the following approach but it fails:

channels:
  - conda-forge
dependencies:
  - python=3.9.18
  - pip=23.2.1
  - pip:
    - -r file:requirements.txt

with the requirements.txt file being at the same level of the conda.yaml and robot.yaml file. This approach results in a fail while building with RCC since it does not find the requirements.txt file. I also tried to use a full path without any success.

My guess after reading a part of the RCC source code is that rcc takes the conda.yaml file and creates a requirements.txt file from it that it passes to pip.

I am asking this since i would preefer to have a requirements.txt file that other operators can use to build their enviroment without RCC, leaving the decisions to the operator itself if to use RCC or not.

Thank you.

Error building with uv `0.1.38`. RCC version: `v17.28.4`

conda.yaml:

channels:
- conda-forge
dependencies:
- python=3.11
- uv=0.1.38
- robocorp-truststore=0.8.0
- pip:
  - --use-feature=truststore
  - sema4ai-actions==0.3.1
  - pydantic==2.7.1
  - untangle==1.2.1

Error message:


Robocorp Code: Unable to create environment
=============================================

There was an error creating the environment for:

"C:\Users\fabio\AppData\Local\robocorp\.robocorp_code\pkg-to-conda\84f8ca17eff6\conda.yaml"

The full output to diagnose the issue is shown below.
The most common reasons and fixes for this failure are:

1. Dependencies specified are not resolvable.

    In this case, open "C:\Users\fabio\AppData\Local\robocorp\.robocorp_code\pkg-to-conda\84f8ca17eff6\conda.yaml"
    and update the dependencies accordingly (after saving
    the environment will be automatically updated).

2. There's some intermittent network failure or some active firewall.

    In this case, fix the network connectivity issue and chose one of the options below:

    - Retry restarting VSCode using the command:

      "Developer: Reload Window"

    - Clear all environments and restart Robocorp code (advised if you suspect
      that some environment was partially created and is corrupt):

      "Robocorp: Clear Robocorp (RCC) environments and restart Robocorp Code"

If you still can't get it to work, please submit an issue to Robocorp using the command:

  "Robocorp: Submit issue to Robocorp".


Full error message
====================

Error running: c:\Users\fabio\.vscode\extensions\robocorp.robocorp-code-1.22.0-win32-x64\bin\rcc.exe holotree variables --space vscode-01 C:\Users\fabio\AppData\Local\robocorp\.robocorp_code\pkg-to-conda\84f8ca17eff6\conda.yaml --json --no-retry-build --no-pyc-management --controller RobocorpCode.
ROBOCORP_HOME: 

Stdout: 
Stderr: Note! For now, resolved effective environment configuration file is "C:\\Users\\fabio\\AppData\\Local\\robocorp\\.robocorp_code\\pkg-to-conda\\84f8ca17eff6\\conda.yaml".
####  Progress: 00/15  v17.28.4     0.126s  Context: "Fabio Zadrozny" <THINK_RYZEN\fabio@think_ryzen> [windows_amd64/Microsoft Windows [Version 10.0.22631.3447]].
####  Progress: 01/15  v17.28.4     0.014s  Fresh [shared mode] holotree environment 70401c93-6643-fbe3-9e72-25b2bcc73269. (parent/pid: 23088/14296)
####  Progress: 02/15  v17.28.4     0.014s  Holotree blueprint is "144453f712ab2674" [windows_amd64 with 11 workers on 12 CPUs from "144453f712ab2674"].
FINAL unified conda environment descriptor:
---
channels:
- conda-forge
dependencies:
- python=3.11
- uv=0.1.38
- robocorp-truststore=0.8.0
- pip:
  - --use-feature=truststore
  - sema4ai-actions==0.3.1
  - pydantic==2.7.1
  - untangle==1.2.1
  - --use-feature=truststore
---
####  Progress: 03/15  v17.28.4     0.001s  Fill hololib from RCC_REMOTE_ORIGIN skipped. RCC_REMOTE_ORIGIN was not defined.
####  Progress: 04/15  v17.28.4     0.000s  Cleanup holotree stage for fresh install.
####  Progress: 05/15  v17.28.4     0.001s  Build environment into holotree stage "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t".
####  Progress: 06/15  v17.28.4     0.001s  Restore partial environment into holotree stage "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t".
####  Progress: 07/15  v17.28.4     0.107s  Running micromamba phase. (micromamba v1.5.8) [layer: 322568f54ff3fbb2]
####  Progress: 08/15  v17.28.4    45.726s  Running uv install phase. (uv v0.1.38) [layer: 144453f712ab2674]
Process 18888: exit status 2, command: c:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t\Library\bin\uv.exe [pip install --link-mode copy --color never --cache-dir C:\Users\fabio\AppData\Local\robocorp\uvcache --find-links C:\Users\fabio\AppData\Local\robocorp\wheels --requirement C:\Users\fabio\AppData\Local\robocorp\temp\e8146abc19d63bb0\require_66353341.txt] [v17.28.4/14296]
Fatal [uv [2/2]]: exit status 2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@  From rcc "v17.28.4" (controller: "RobocorpCode") point of view, "uv install" was FAILURE, reason: "exit status 2". See details above.  @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
---  installation plan "330a486fb9462601" 2024-05-03T15:56:01-03:00 [force: false, fresh: true| rcc v17.28.4]  ---

---  plan blueprint @0.000s  ---

channels:
- conda-forge
dependencies:
- python=3.11
- uv=0.1.38
- robocorp-truststore=0.8.0
- pip:
  - --use-feature=truststore
  - sema4ai-actions==0.3.1
  - pydantic==2.7.1
  - untangle==1.2.1
  - --use-feature=truststore


---  micromamba plan @0.043s  ---


Transaction

  Prefix: C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t

  Updating specs:

   - python=3.11
   - uv=0.1.38
   - robocorp-truststore=0.8.0


  Package                     Version  Build               Channel           Size
-----------------------------------------------------------------------------------
  Install:
-----------------------------------------------------------------------------------

  + libexpat                    2.6.2  h63175ca_0          conda-forge      139kB
  + ucrt                 10.0.22621.0  h57928b3_0          conda-forge     Cached
  + ca-certificates          2024.2.2  h56e8100_0          conda-forge     Cached
  + vc14_runtime          14.38.33130  h82b7239_18         conda-forge     Cached
  + vs2015_runtime        14.38.33130  hcb4865c_18         conda-forge     Cached
  + vc                           14.3  hcf57466_18         conda-forge     Cached
  + tk                         8.6.13  h5226925_1          conda-forge     Cached
  + openssl                     3.3.0  hcfcfb64_0          conda-forge     Cached
  + libzlib                    1.2.13  hcfcfb64_5          conda-forge     Cached
  + libffi                      3.4.2  h8ffe710_5          conda-forge     Cached
  + bzip2                       1.0.8  hcfcfb64_5          conda-forge     Cached
  + libsqlite                  3.45.3  hcfcfb64_0          conda-forge     Cached
  + xz                          5.2.6  h8d14728_0          conda-forge     Cached
  + uv                         0.1.38  ha08ef0e_0          conda-forge        7MB
  + tzdata                      2024a  h0c530f3_0          conda-forge     Cached
  + python                     3.11.9  h631f459_0_cpython  conda-forge       18MB
  + wheel                      0.43.0  pyhd8ed1ab_1        conda-forge     Cached
  + setuptools                 69.5.1  pyhd8ed1ab_0        conda-forge     Cached
  + pip                          24.0  pyhd8ed1ab_0        conda-forge     Cached
  + robocorp-truststore         0.8.0  pyhd8ed1ab_0        conda-forge       21kB

  Summary:

  Install: 20 packages

  Total download: 26MB

-----------------------------------------------------------------------------------



Transaction starting
Linking libexpat-2.6.2-h63175ca_0
Linking ucrt-10.0.22621.0-h57928b3_0
Linking ca-certificates-2024.2.2-h56e8100_0
Linking vc14_runtime-14.38.33130-h82b7239_18
Linking vs2015_runtime-14.38.33130-hcb4865c_18
Linking vc-14.3-hcf57466_18
Linking tk-8.6.13-h5226925_1
Linking openssl-3.3.0-hcfcfb64_0
Linking libzlib-1.2.13-hcfcfb64_5
Linking libffi-3.4.2-h8ffe710_5
Linking bzip2-1.0.8-hcfcfb64_5
Linking libsqlite-3.45.3-hcfcfb64_0
Linking xz-5.2.6-h8d14728_0
Linking uv-0.1.38-ha08ef0e_0
Linking tzdata-2024a-h0c530f3_0
Linking python-3.11.9-h631f459_0_cpython
Linking wheel-0.43.0-pyhd8ed1ab_1
Linking setuptools-69.5.1-pyhd8ed1ab_0
Linking pip-24.0-pyhd8ed1ab_0
Linking robocorp-truststore-0.8.0-pyhd8ed1ab_0

Transaction finished

To activate this environment, use:

    micromamba activate C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t

Or to execute a single command in this environment, use:

    micromamba run -p C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t mycommand


---  micromamba layer complete [on layered holotree]  ---


---  uv plan @45.453s  ---

Command ["c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t\\Library\\bin\\uv.exe" "pip" "install" "--link-mode" "copy" "--color" "never" "--cache-dir" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\uvcache" "--find-links" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\wheels" "--requirement" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\temp\\e8146abc19d63bb0\\require_66353341.txt"] at "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t":
error: Unexpected '-', expected '-c', '-e', '-r' or the start of a requirement at C:\Users\fabio\AppData\Local\robocorp\temp\e8146abc19d63bb0\require_66353341.txt:1:1

####  Progress: 15/15  v17.28.4     0.030s  Fresh holotree done [with 11 workers on 12 CPUs].
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@  From rcc "v17.28.4" (controller: "RobocorpCode") point of view, "environment creation" was FAILURE, reason: "Failed to create environment, reason Could not create environment..". See details above.  @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Failed to create environment, reason Could not create environment..
[rcc] exit status will be: 6!

Error running: c:\Users\fabio\.vscode\extensions\robocorp.robocorp-code-1.22.0-win32-x64\bin\rcc.exe holotree variables --space vscode-01 C:\Users\fabio\AppData\Local\robocorp\.robocorp_code\pkg-to-conda\84f8ca17eff6\conda.yaml --json --no-retry-build --no-pyc-management --controller RobocorpCode.
ROBOCORP_HOME: 

Stdout: 
Stderr: Note! For now, resolved effective environment configuration file is "C:\\Users\\fabio\\AppData\\Local\\robocorp\\.robocorp_code\\pkg-to-conda\\84f8ca17eff6\\conda.yaml".
####  Progress: 00/15  v17.28.4     0.126s  Context: "Fabio Zadrozny" <THINK_RYZEN\fabio@think_ryzen> [windows_amd64/Microsoft Windows [Version 10.0.22631.3447]].
####  Progress: 01/15  v17.28.4     0.014s  Fresh [shared mode] holotree environment 70401c93-6643-fbe3-9e72-25b2bcc73269. (parent/pid: 23088/14296)
####  Progress: 02/15  v17.28.4     0.014s  Holotree blueprint is "144453f712ab2674" [windows_amd64 with 11 workers on 12 CPUs from "144453f712ab2674"].
FINAL unified conda environment descriptor:
---
channels:
- conda-forge
dependencies:
- python=3.11
- uv=0.1.38
- robocorp-truststore=0.8.0
- pip:
  - --use-feature=truststore
  - sema4ai-actions==0.3.1
  - pydantic==2.7.1
  - untangle==1.2.1
  - --use-feature=truststore
---
####  Progress: 03/15  v17.28.4     0.001s  Fill hololib from RCC_REMOTE_ORIGIN skipped. RCC_REMOTE_ORIGIN was not defined.
####  Progress: 04/15  v17.28.4     0.000s  Cleanup holotree stage for fresh install.
####  Progress: 05/15  v17.28.4     0.001s  Build environment into holotree stage "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t".
####  Progress: 06/15  v17.28.4     0.001s  Restore partial environment into holotree stage "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t".
####  Progress: 07/15  v17.28.4     0.107s  Running micromamba phase. (micromamba v1.5.8) [layer: 322568f54ff3fbb2]
####  Progress: 08/15  v17.28.4    45.726s  Running uv install phase. (uv v0.1.38) [layer: 144453f712ab2674]
Process 18888: exit status 2, command: c:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t\Library\bin\uv.exe [pip install --link-mode copy --color never --cache-dir C:\Users\fabio\AppData\Local\robocorp\uvcache --find-links C:\Users\fabio\AppData\Local\robocorp\wheels --requirement C:\Users\fabio\AppData\Local\robocorp\temp\e8146abc19d63bb0\require_66353341.txt] [v17.28.4/14296]
Fatal [uv [2/2]]: exit status 2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@  From rcc "v17.28.4" (controller: "RobocorpCode") point of view, "uv install" was FAILURE, reason: "exit status 2". See details above.  @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
---  installation plan "330a486fb9462601" 2024-05-03T15:56:01-03:00 [force: false, fresh: true| rcc v17.28.4]  ---

---  plan blueprint @0.000s  ---

channels:
- conda-forge
dependencies:
- python=3.11
- uv=0.1.38
- robocorp-truststore=0.8.0
- pip:
  - --use-feature=truststore
  - sema4ai-actions==0.3.1
  - pydantic==2.7.1
  - untangle==1.2.1
  - --use-feature=truststore


---  micromamba plan @0.043s  ---


Transaction

  Prefix: C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t

  Updating specs:

   - python=3.11
   - uv=0.1.38
   - robocorp-truststore=0.8.0


  Package                     Version  Build               Channel           Size
-----------------------------------------------------------------------------------
  Install:
-----------------------------------------------------------------------------------

  + libexpat                    2.6.2  h63175ca_0          conda-forge      139kB
  + ucrt                 10.0.22621.0  h57928b3_0          conda-forge     Cached
  + ca-certificates          2024.2.2  h56e8100_0          conda-forge     Cached
  + vc14_runtime          14.38.33130  h82b7239_18         conda-forge     Cached
  + vs2015_runtime        14.38.33130  hcb4865c_18         conda-forge     Cached
  + vc                           14.3  hcf57466_18         conda-forge     Cached
  + tk                         8.6.13  h5226925_1          conda-forge     Cached
  + openssl                     3.3.0  hcfcfb64_0          conda-forge     Cached
  + libzlib                    1.2.13  hcfcfb64_5          conda-forge     Cached
  + libffi                      3.4.2  h8ffe710_5          conda-forge     Cached
  + bzip2                       1.0.8  hcfcfb64_5          conda-forge     Cached
  + libsqlite                  3.45.3  hcfcfb64_0          conda-forge     Cached
  + xz                          5.2.6  h8d14728_0          conda-forge     Cached
  + uv                         0.1.38  ha08ef0e_0          conda-forge        7MB
  + tzdata                      2024a  h0c530f3_0          conda-forge     Cached
  + python                     3.11.9  h631f459_0_cpython  conda-forge       18MB
  + wheel                      0.43.0  pyhd8ed1ab_1        conda-forge     Cached
  + setuptools                 69.5.1  pyhd8ed1ab_0        conda-forge     Cached
  + pip                          24.0  pyhd8ed1ab_0        conda-forge     Cached
  + robocorp-truststore         0.8.0  pyhd8ed1ab_0        conda-forge       21kB

  Summary:

  Install: 20 packages

  Total download: 26MB

-----------------------------------------------------------------------------------



Transaction starting
Linking libexpat-2.6.2-h63175ca_0
Linking ucrt-10.0.22621.0-h57928b3_0
Linking ca-certificates-2024.2.2-h56e8100_0
Linking vc14_runtime-14.38.33130-h82b7239_18
Linking vs2015_runtime-14.38.33130-hcb4865c_18
Linking vc-14.3-hcf57466_18
Linking tk-8.6.13-h5226925_1
Linking openssl-3.3.0-hcfcfb64_0
Linking libzlib-1.2.13-hcfcfb64_5
Linking libffi-3.4.2-h8ffe710_5
Linking bzip2-1.0.8-hcfcfb64_5
Linking libsqlite-3.45.3-hcfcfb64_0
Linking xz-5.2.6-h8d14728_0
Linking uv-0.1.38-ha08ef0e_0
Linking tzdata-2024a-h0c530f3_0
Linking python-3.11.9-h631f459_0_cpython
Linking wheel-0.43.0-pyhd8ed1ab_1
Linking setuptools-69.5.1-pyhd8ed1ab_0
Linking pip-24.0-pyhd8ed1ab_0
Linking robocorp-truststore-0.8.0-pyhd8ed1ab_0

Transaction finished

To activate this environment, use:

    micromamba activate C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t

Or to execute a single command in this environment, use:

    micromamba run -p C:\ProgramData\robocorp\ht\h545e18d_44412bd2016a11t mycommand


---  micromamba layer complete [on layered holotree]  ---


---  uv plan @45.453s  ---

Command ["c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t\\Library\\bin\\uv.exe" "pip" "install" "--link-mode" "copy" "--color" "never" "--cache-dir" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\uvcache" "--find-links" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\wheels" "--requirement" "C:\\Users\\fabio\\AppData\\Local\\robocorp\\temp\\e8146abc19d63bb0\\require_66353341.txt"] at "c:\\ProgramData\\robocorp\\ht\\h545e18d_44412bd2016a11t":
error: Unexpected '-', expected '-c', '-e', '-r' or the start of a requirement at C:\Users\fabio\AppData\Local\robocorp\temp\e8146abc19d63bb0\require_66353341.txt:1:1

####  Progress: 15/15  v17.28.4     0.030s  Fresh holotree done [with 11 workers on 12 CPUs].
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@  From rcc "v17.28.4" (controller: "RobocorpCode") point of view, "environment creation" was FAILURE, reason: "Failed to create environment, reason Could not create environment..". See details above.  @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Failed to create environment, reason Could not create environment..
[rcc] exit status will be: 6!

Remove dependency from English language on Windows by using SID instead of group name

I am experiencing problems with RCC on a german Windows system.
The command

rcc holotree shared --enable

returns with an error:

image

This is because the localized Windows versions have other names for the group "Users" (in Germany: "Benutzer").

A way to solve such localization issues is to avoid names of users and groups and use their SID instead.
(https://learn.microsoft.com/en-US/windows-server/identity/ad-ds/manage/understand-security-identifiers)

Therefore, I request to change the command in cmd/command_windows.go to

icacls C:\ProgramData\robocorp /grant "*S-1-5-32-545:(OI)(CI)M" /T /Q

which has exactly the same effect.

Thanks and regards ๐Ÿ‘‹
Simon

Failed to create an environment due to ssl verification issues

Describe the issue
Failed to create environment after running the rcc run command.

How to reproduce

Following the https://github.com/robocorp/rcc#getting-started section of this repo:

1.) Create a standard robot from template rcc robot initialize -t standard
2.) Use rcc run command

Log
https://gist.github.com/Mino-dev/fbf48d7344ee2f9343b7caf63aa69b8c

Versions

  • rcc v11.4.3
  • python 3.9.7
  • windows 10.0.18363

The system is currently running with zscaler client connector which causes issues not only in this tool but also in conda, mamba and even curl. However, there are workarounds on those like disabling the ssl verification (last resort) or pointing it to another valid cert file via configuration files. I do have a .mambarc and .condarc in my user home directory but it seems that it's being ignored.

If there are current solutions for my issue please do let me know. And if you deemed that this is not an issue and/or inappropriate with RCC, please let me know so I can close this issue.

Thanks in advance.

Provide more information on the locks being held

When the RCC holds a lock (see below), and some other process can't get it, it'd be nice to be able to pinpoint the pid of the process holding the lock and when reporting the error provide more information when failing.

I think that it'd be nice if it could show information on:

  • pid holding lock as well as command line (when possible to get)
  • parent process names/pids hierarchy of that pid (when possible to get -- that way it'd be possible to pinpoint the actual process using RCC).

I know that on some situations it may not be possible to get all the information depending on the user permissions, but even partial information may be useful.

image

I know this is all pretty much dependent on the OS.

If go doesn't have some ready-made library, for Windows there's some reference code in Python which uses the Windows API for that in https://github.com/fabioz/PyDev.Debugger/blob/pydev_debugger_2_9_3/_pydevd_bundle/pydevd_api.py#L1119 (that should allow getting the pid/ppid/process name).

Or maybe alternatively just call wmic and process its output (something as wmic.exe path Win32_Process GET name, commandline, processid, parentprocessid /format:list).

Handling of .py files in pre-run scripts is unreliable on Windows.

It seems a few places (including templates) reference using pre-run scripts as:

preRunScripts:
  - generate-workitem-file.py output/random-workitem-file.txt

With a shebang of #! /usr/bin/env python

Now, on Windows this will plainly ignore the shebang and will do whatever the system is instructed to do. In my case when running in VSCode the error I had was:

Script 'generate-workitem-file.py output/random-workitem-file.txt' failure: fork/exec X:\robocorpws\vscode-robot-tests\ExamplePreRun\bin\generate-workitem-file.py: %! (MISSING)is not a valid Win32 application.

And when running out of VSCode it opened it in an editor.

For Raivo, it did work on its machine (so, it depends on how the system is configured).

So, the suggestion is that this wouldn't be system dependent and when a .py file is executed the command would be automatically changed to:

  1. Prepend python
  2. Search the PATH for the .py file and use the full path (to be compatible with what's currently done by the shell).

Option to disable DNS lookup in diagnostics

Hello,
thank you for your great tool. It really helps us to create and maintain our test environments. Unfortunately, our team sits behind a company proxy. Downloading and setting up the rcc environment works fine (http traffic via company proxy is allowed). However, we get DNS lookup errors when running the diagnostic command or when opening visual studio code with the Robocorp Code extension installed. Bare DNS lookups are not allowed to pass our company proxy / firewall.
I was wondering if there is any way to disable the DNS lookup checks since the rest works fine (via http)? It seems that the check is being done on a list of dns names: https://github.com/robocorp/rcc/blob/master/operations/diagnostics.go#L138. I already tried removing all preconfigured DNS entries in my settings and profile yaml file. However, rcc still tries to lookup some (default?) hostnames.

Thank you and kindest regards,
Fabian

No interactive shell in a chroot based environment, because PS1= is set to empty value

I don't believe that this is a bug in RCC, but a glitch caused by my environment.

I have a reason to run RCC in a chroot based sandbox. While everything else I haved tried so far has been working (e.g. even a Firefox installed by RCC in a robot execution works), interactive shell does not.

rcc task shell --trace

Executes shell, but without input or output.

06.092052.803 [D] about to run command - [/nix/store/4wbh6d4sxqc81lmn3slcqy90j23awhzr-bash-interactive-5.1-p16/bin/bash --noprofile --norc -i]
06.092052.803 [T] Execute "/nix/store/4wbh6d4sxqc81lmn3slcqy90j23awhzr-bash-interactive-5.1-p16/bin/bash" with arguments ["--noprofile" "--norc" "-i"]
06.092052.803 [D] PID #16490 is "/nix/store/4wbh6d4sxqc81lmn3slcqy90j23awhzr-bash-interactive-5.1-p16/bin/bash --noprofile --norc -i".

Effectively, the command waits until shell process gets killed from the outside.

06.092713.075 [D] PID #16490 finished: signal: killed.
06.092713.233 [D] live "/home/vagrant/.robocorp/holotree/72de99c_5a1fac3_9fcd2534" diagnosis: did not change during run [ef509423402cfa1cc265c3c7479ce00af65dfc0f63321fa826b5f25230aa99e1]
06.092713.233 [N] rcc shell lasted 382.492
06.092713.233 [D] Marked "/home/vagrant/.robocorp/temp/4d65822107fcbd30" for recycling.
06.092713.233 [N] Error: signal: killed
06.092713.233 [D] wait telemetry to complete
06.092713.233 [D] telemetry sending completed

Running the same shell command manually outside RCC works.

Any tips, how to debug this more and get RCC shell to work in my weird environment? For example, maybe my chroot based env is just missing some environment variables required for interactive shell through RCC.

$ rcc version
v11.25.0
$ rcc configuration diagnostics
Diagnostics:
 - RCC_VERBOSE_ENVIRONMENT_BUILDING      ...  "false"
 - ROBOCORP_HOME                         ...  "/home/vagrant/.robocorp"
 - ROBOCORP_OVERRIDE_SYSTEM_REQUIREMENTS ...  "false"
 - config-active-profile                 ...  "default"
 - config-http-proxy                     ...  ""
 - config-https-proxy                    ...  ""
 - config-micromambarc-used              ...  "false"
 - config-piprc-used                     ...  "false"
 - config-settings-yaml-used             ...  "false"
 - config-ssl-no-revoke                  ...  "false"
 - config-ssl-verify                     ...  "true"
 - controller                            ...  "rcc.user"
 - cpus                                  ...  "4"
 - executable                            ...  "/nix/store/4s1mmhh1bznfhrpsyg17pl5ddbww57xl-rcc-v11.25.0/bin/rcc"
 - hololib-catalog-location              ...  "/home/vagrant/.robocorp/hololib/catalog"
 - hololib-library-location              ...  "/home/vagrant/.robocorp/hololib/library"
 - hololib-location                      ...  "/home/vagrant/.robocorp/hololib"
 - holotree-location                     ...  "/home/vagrant/.robocorp/holotree"
 - holotree-shared                       ...  "false"
 - holotree-user-id                      ...  "72de99c"
 - micromamba                            ...  "0.25.1"
 - micromamba.bin                        ...  "/home/vagrant/.robocorp/bin/micromamba"
 - no-build                              ...  "false"
 - os                                    ...  "linux_amd64"
 - os-holo-location                      ...  "/opt/robocorp/ht"
 - rcc                                   ...  "v11.25.0"
 - rcc.bin                               ...  "/nix/store/4s1mmhh1bznfhrpsyg17pl5ddbww57xl-rcc-v11.25.0/bin/rcc"
 - stats                                 ...  "6 requests, 0 merges, 0 hits, 0 dirty, 1 misses, 4 failures | 686dfaed-eeab-527e-f8d0-c5dbc70a9d2e"
 - telemetry-enabled                     ...  "false"
 - tempdir                               ...  "/tmp"
 - uid:gid                               ...  "1000:100"
 - user-agent                            ...  "rcc/v11.25.0 (linux amd64) rcc.user"
 - user-cache-dir                        ...  "/home/vagrant/.cache"
 - user-config-dir                       ...  "/home/vagrant/.config"
 - user-home-dir                         ...  "/home/vagrant"
 - when                                  ...  "2022-09-06T09:35:22+02:00 (CEST)"
 - working-dir                           ...  "/home/vagrant/Desktop/RCC"

Checks:
 - RPA      ok       ROBOCORP_HOME (/home/vagrant/.robocorp) is good enough.
 - OS       ok       PYTHONPATH is not set, which is good.
 - OS       ok       PLAYWRIGHT_BROWSERS_PATH is not set, which is good.
 - OS       ok       NODE_OPTIONS is not set, which is good.
 - OS       ok       NODE_PATH is not set, which is good.
 - OS       ok       Supports long enough paths.
 - network  ok       api.eu1.robocorp.com found: [34.255.74.152 52.215.73.48 54.77.77.237]
 - network  ok       cloud.robocorp.com found: [34.249.245.73 34.254.80.145 99.80.113.73]
 - network  ok       conda.anaconda.org found: [104.17.92.24 104.17.93.24 2606:4700::6811:5d18 2606:4700::6811:5c18]
 - network  ok       downloads.robocorp.com found: [108.156.22.86 108.156.22.55 108.156.22.128 108.156.22.67 2600:9000:2368:5e00:18:cd0d:3c00:93a1 2600:9000:2368:d800:18:cd0d:3c00:93a1 2600:9000:2368:f800:18:cd0d:3c00:93a1 2600:9000:2368:fe00:18:cd0d:3c00:93a1 2600:9000:2368:c000:18:cd0d:3c00:93a1 2600:9000:2368:9c00:18:cd0d:3c00:93a1 2600:9000:2368:ea00:18:cd0d:3c00:93a1 2600:9000:2368:7c00:18:cd0d:3c00:93a1]
 - network  ok       files.pythonhosted.org found: [151.101.1.63 151.101.129.63 151.101.193.63 151.101.65.63 2a04:4e42::319 2a04:4e42:200::319 2a04:4e42:400::319 2a04:4e42:600::319]
 - network  ok       github.com found: [140.82.121.4]
 - network  ok       id.robocorp.com found: [13.32.123.117 13.32.123.4 13.32.123.12 13.32.123.72 2600:9000:2375:7e00:8:29ad:bc00:93a1 2600:9000:2375:a400:8:29ad:bc00:93a1 2600:9000:2375:3000:8:29ad:bc00:93a1 2600:9000:2375:a000:8:29ad:bc00:93a1 2600:9000:2375:9e00:8:29ad:bc00:93a1 2600:9000:2375:0:8:29ad:bc00:93a1 2600:9000:2375:c600:8:29ad:bc00:93a1 2600:9000:2375:ca00:8:29ad:bc00:93a1]
 - network  ok       pypi.org found: [151.101.192.223 151.101.0.223 151.101.64.223 151.101.128.223 2a04:4e42:400::223 2a04:4e42::223 2a04:4e42:600::223 2a04:4e42:200::223]
 - network  ok       robocorp.com found: [172.67.7.153 104.22.40.65 104.22.41.65 2606:4700:10::6816:2841 2606:4700:10::6816:2941 2606:4700:10::ac43:799]
 - network  ok       telemetry.robocorp.com found: [18.200.53.250 52.51.244.219]
 - network  ok       Canary download successful: https://downloads.robocorp.com/canary.txt
 - network  ok       PyPI canary download successful: https://pypi.org/jupyterlab-pygments/
 - network  ok       Conda canary download successful: https://conda.anaconda.org/conda-forge/linux-64/repodata.json
 - Settings ok       Toplevel settings are ok.
OK.

Add NO_PROXY setting to RCC profile

RCC profiles allow me to set http_proxy and https_proxy variables which are used then during installation (to fetch sources) and during execution.

However, the libraries handle these two proxy variables very differently.
Some respect them - Playwright on the other hand has to be configured separately to talk to a proxy. (during import, or via commandline argument).
However, http_proxy and https_proxy also affect the internal communication from Python to the Playwright process.
In this case there is this error:

failed: Could not connect to the playwright process at port 64346.

See also MarketSquare/robotframework-browser#1037

You can fix this with another env variable NO_PROXY=localhost,127.0.0.1

If I understand correctly, this third - very important - proxy option NO_PROXY should be added to RCC profiles.
Only then the internal HTTP communication with the Playwright process via localhost is still successful even when a proxy is configured.

rcc man usecases don't work in v11.6.6

Hi, I was checking a lot of things from rcc and in v11.6.6 if I execute the command rcc man usecases it returns this:

Cannot show usecases.md, reason: Asset docs/usecases.md not found

I don't know if this was fixed in other version, but this one is the last stable i found. Thanks

How to disable anonymous health tracking

Since I'm connected to corporate VPN, I'm getting this error when trying to execute my robot

Installed pip packages:
Error [http.Do]: Put "https://telemetry.robocorp.com/metric-v1/rcc.user/...../rcc.env.create.start/v7.1.5": dial tcp: lookup telemetry.robocorp.com on ..... no such host
Error [http.Do]: Put "https://telemetry.robocorp.com/metric-v1/rcc.user/1.....rcc.cli.run/v7.1.5": dial tcp: lookup telemetry.robocorp.com on.....: no such host

Also when running rcc configure identity I'm seeing and anonymous health tracking is: enabled

How do I disable that?

Thank you

Provide a separate command to load environment variables related to the vault

My use case is that the language server needs to make a debug launch which should use the variables defined in the vault.

For the regular run specifying the workspace id is enough:

i.e.:
https://github.com/robocorp/rcc/blob/master/operations/running.go#L150
https://github.com/robocorp/rcc/blob/master/operations/running.go#L211

but I need the separate environment variables to make a debug launch from the language server (i.e.: the launching of the debugger isn't done through RCC, rather it collects the info from RCC in Robocorp Code and then feeds it to the Robot Framework Language Server to make the launch).

The variables may also be collected in https://github.com/robocorp/rcc/blob/master/cmd/holotreeVariables.go#L100, but creating/updating the whole env just to get the vault variables is overkill (as it's rather a rather slow way to get the variables).

So, my suggestion is adding a command (maybe something as: rcc cloud vault --workspace <workspace id>?) to provide the environment variables related to accessing the vault separately.

`rake tooling` fails with `go get` deprecation error with go == 1.17

 ~/C/r/rcc (master)> rake tooling
PATH is /opt/homebrew/bin:/Users/kerkko/go/bin:/Users/kerkko/neovim/bin:/Users/kerkko/.cargo/bin:/Users/kerkko/.local/bin:/Users/kerkko/dotfiles/scripts:/Users/kerkko/.local/share/nvm/v14.18.3/bin:/Users/kerkko/.poetry/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Wireshark.app/Contents/MacOS:/Applications/kitty.app/Contents/MacOS:/Users/kerkko/.cargo/bin:.
GOPATH is 
GOROOT is 
go get -u github.com/go-bindata/go-bindata/...
go get: installing executables with 'go get' in module mode is deprecated.
	To adjust and download dependencies of the current module, use 'go get -d'.
	To install using requirements of the current module, use 'go install'.
	To install ignoring the current module, use 'go install' with a version,
	like 'go install example.com/cmd@latest'.
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.
which -a zip || echo NA
/usr/bin/zip
which -a go-bindata || echo NA
/Users/kerkko/go/bin/go-bindata
ls -l $HOME/go/bin
total 40912
-rwxr-xr-x  1 kerkko  staff   2645330 Apr  8 16:15 go-bindata
-rwxr-xr-x  1 kerkko  staff   6295010 Jan 10 12:32 goimports
-rwxr-xr-x  1 kerkko  staff  12004162 Jan 19 13:17 staticcheck

Fix suggestion:
Either document that RCC should be built with go <= 1.16 or make the go get work?

Recommended way to run parallel robots via RCC (locally)

Hi all,

I am trying to run ten robots at the same time via RCC. I am calling my tasks asynchronously via

rcc run --task "Robot" --space space-0

(space-1, space-2 etc). This works sometimes but at other times I get:

panic: mkdir C:\Users\xxx\AppData\Local\robocorp\holotree\h2edd75df4aa9472ct: Access is denied. [recovered]
	panic: mkdir C:\Users\xxx\AppData\Local\robocorp\holotree\h2edd75df4aa9472ct: Access is denied. [recovered]
	panic: mkdir C:\Users\xxx\AppData\Local\robocorp\holotree\h2edd75df4aa9472ct: Access is denied. [recovered]
	panic: mkdir C:\Users\xxx\AppData\Local\robocorp\holotree\h2edd75df4aa9472ct: Access is denied.

I am guessing the instances try to access this directory simultaneously and a conflict arises. But why? Am I using RCC wrong? I'd appreciate any pointers into the right direction!

Edit: BTW we are using RCC v9.16.0

Make holotree statistics output machine readable (--json)

The build and runtime statistics of rcc holotree stats give a worthful insight. ๐Ÿ‘

Is there any possibility to give rcc holotree stats an option --json, as it is already available for rcc diag ?
This would make the data machine readable. => this could be read by monitoring systems which observe any performance declinement and collect the data for historical graphs.

Thanks a lot - best regards,
Simon

RCC does not support environment variables in robot.yaml

I would like to use different log folders dependent on environment variables. The command below works well via cmd.exe. But when I run RCC then the environment variables are not resolved. I've searched the documentation but can't find a suitable solution. It looks like it is not supported? If not, are there any plans?

robot.yaml

tasks:
Run Producer:
command:
- python
- -m
- robot
- --report
- NONE
- --outputdir
- \hostname\Logs\Prod\000\Mail_Collector_Switch
- --output
- output-%WV_ID%.xml
- --logtitle
- "Task log"
- --loglevel
- INFO
- --log
- log-%WV_ID%.html
- --timestampoutputs
- --task
- Run Producer
- tasks.robot

condaConfigFile: environment.yaml
artifactsDir: output
PATH:

  • .
    PYTHONPATH:
  • keywords
  • keywords_ro
  • variables
  • .

ignoreFiles:

  • .gitignore

Error when executing rcc configure longpaths along with rcc diagnostics.

I'm doing some optimizations to the Robocorp Code startup.

Among them one optimization is doing the validation whether the long paths are enabled along with a call to doing the diagnostics asynchronously (the idea being that calling just the rcc configure longpaths finishes much earlier than the full diagnostics, so, the verification of the long paths can be done while the diagnostics are still running...), but by doing so I'm having the error below (where it fails because the file already exists).

-- maybe it'd be possible to test for a unique path instead of checking always the same path (or just accept it if the error is that the long path file already exists)?

Error executing: x:\robocorpws\robotframework-lsp\robocorp-code\bin\rcc.exe configure longpaths
Error code: undefined
Error: error
Stderr: A subdirectory or file C:\Users\fabio\AppData\Local\robocorp\stump\verylongpath1\verylongpath2\verylongpath3\verylongpath4\verylongpath5\verylongpath6\verylongpath7\verylongpath8\verylongpath9\verylongpath10\verylongpath11\verylongpath12\verylongpath13\verylongpath14\verylongpath15\verylongpath16\verylongpath17\verylongpath18\verylongpath19\verylongpath20\verylongpath21\verylongpath22\verylongpath23\verylongpath24 already exists.
WARNING!  Long path support failed. Reason: exit status 1.
WARNING!  See https://robocorp.com/docs/product-manuals/robocorp-lab/troubleshooting#windows-has-to-have-long-filenames-support-on for more details.
Long paths do not work!

If it is possible to make a progress bar while do "rcc ht import http://xxx"

Dears,

I have build some pre-build envs, when I export them and import them into other mechines by using rcc ht import, a suggestion to make a progress bar to make it o11y.

refer to:
"github.com/schollz/progressbar/v3"

Why I suggest this?
I have made a platform myself to use rcc tool to manage my RPA robots and environments.
Tt costs lots times to handle holotree import pre-build envs when run the command, it just like "stuck" there, When a user import pre-build env and wait for a long time, a lot of questions will come, "what happend now?" "How should I do?" "If it is stuck"

I think you may have a better solution to optimize it.

Thank you very much.

Running `rcc.exe config diagnostics` in a clean machine gives errors related to locks.

Running rcc.exe config diagnostics in a clean machine gives errors related to locks.

Specifically:

 - OS       fail     Lock file "lock-userlock" write failed, reason: open C:\Users\fabio\AppData\Local\robocorp\holotree\545e18d_5a1fac3_9fcd2534.lck: The system cannot find the path specified.
 - OS       fail     Lock file "lock-holotree" write failed, reason: open C:\Users\fabio\AppData\Local\robocorp\holotree\global.lck: The system cannot find the path specified.

Note that as the machine is clean, C:\Users\fabio\AppData\Local\robocorp\holotree doesn't really exist because the holotree still isn't created (it does create C:\Users\fabio\AppData\Local\robocorp and some scaffolding structure inside it when that command is run, but holotree isn't there).

Full output:

Diagnostics:
 - ENV:ComSpec                           ...  "C:\\WINDOWS\\system32\\cmd.exe"
 - ENV:LANG                              ...  "en_US.UTF-8"
 - ENV:SHELL                             ...  ""
 - RCC_VERBOSE_ENVIRONMENT_BUILDING      ...  "false"
 - ROBOCORP_HOME                         ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp"
 - ROBOCORP_OVERRIDE_SYSTEM_REQUIREMENTS ...  "false"
 - config-active-profile                 ...  "default"
 - config-http-proxy                     ...  ""
 - config-https-proxy                    ...  ""
 - config-micromambarc-used              ...  "false"
 - config-piprc-used                     ...  "false"
 - config-settings-yaml-used             ...  "false"
 - config-ssl-no-revoke                  ...  "false"
 - config-ssl-verify                     ...  "true"
 - controller                            ...  "rcc.user"
 - cpus                                  ...  "12"
 - dns-lookup-time                       ...  "DNS lookup time for 9 hostnames was about 0.042s"
 - executable                            ...  "X:\\vscode-robot\\robotframework-lsp\\robocorp-code\\bin\\rcc.exe"
 - hololib-catalog-location              ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\hololib\\catalog"
 - hololib-library-location              ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\hololib\\library"
 - hololib-location                      ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\hololib"
 - holotree-location                     ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\holotree"
 - holotree-shared                       ...  "false"
 - holotree-user-id                      ...  "545e18d"
 - installationId                        ...  "24607502-096f-218e-941c-e307fd2a56a9"
 - lock-cache                            ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\rcccache.yaml.lck"
 - lock-config                           ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\rcc.yaml.lck"
 - lock-holotree                         ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\holotree\\global.lck"
 - lock-robocorp                         ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\robocorp.lck"
 - lock-userlock                         ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\holotree\\545e18d_5a1fac3_9fcd2534.lck"
 - micromamba                            ...  "exec: \"C:\\\\Users\\\\fabio\\\\AppData\\\\Local\\\\robocorp\\\\bin\\\\micromamba.exe\": file does not exist"
 - micromamba.bin                        ...  "C:\\Users\\fabio\\AppData\\Local\\robocorp\\bin\\micromamba.exe"
 - no-build                              ...  "false"
 - os                                    ...  "windows_amd64"
 - os-holo-location                      ...  "c:\\ProgramData\\robocorp\\ht"
 - rcc                                   ...  "v11.36.0"
 - rcc.bin                               ...  "X:\\vscode-robot\\robotframework-lsp\\robocorp-code\\bin\\rcc.exe"
 - telemetry-enabled                     ...  "true"
 - tempdir                               ...  "C:\\Users\\fabio\\AppData\\Local\\Temp"
 - uid:gid                               ...  "S-1-5-21-3103743725-3262018320-1685443489-1001:S-1-5-21-3103743725-3262018320-1685443489-1001"
 - user-agent                            ...  "rcc/v11.36.0 (windows amd64) rcc.user"
 - user-cache-dir                        ...  "C:\\Users\\fabio\\AppData\\Local"
 - user-config-dir                       ...  "C:\\Users\\fabio\\AppData\\Roaming"
 - user-home-dir                         ...  "C:\\Users\\fabio"
 - when                                  ...  "2022-12-19T16:06:38-03:00 (-03)"
 - working-dir                           ...  "C:\\bin\\cmdermini2"

Checks:
 - RPA      ok       ROBOCORP_HOME (C:\Users\fabio\AppData\Local\robocorp) is good enough.
 - OS       ok       PYTHONPATH is not set, which is good.
 - OS       ok       PLAYWRIGHT_BROWSERS_PATH is not set, which is good.
 - OS       ok       NODE_OPTIONS is not set, which is good.
 - OS       ok       NODE_PATH is not set, which is good.
 - OS       ok       Supports long enough paths.
 - OS       ok       No pending lock files detected.
 - OS       fail     Lock file "lock-userlock" write failed, reason: open C:\Users\fabio\AppData\Local\robocorp\holotree\545e18d_5a1fac3_9fcd2534.lck: The system cannot find the path specified.
 - OS       fail     Lock file "lock-holotree" write failed, reason: open C:\Users\fabio\AppData\Local\robocorp\holotree\global.lck: The system cannot find the path specified.
 - network  ok       api.eu1.robocorp.com found: [99.81.18.0 63.35.112.97 34.252.244.157]
 - network  ok       cloud.robocorp.com found: [54.170.247.141 54.76.93.80 99.80.89.137]
 - network  ok       conda.anaconda.org found: [2606:4700::6811:5d18 2606:4700::6811:5c18 104.17.93.24 104.17.92.24]
 - network  ok       downloads.robocorp.com found: [2600:9000:238f:f000:18:cd0d:3c00:93a1 2600:9000:238f:ca00:18:cd0d:3c00:93a1 2600:9000:238f:9e00:18:cd0d:3c00:93a1 2600:9000:238f:3400:18:cd0d:3c00:93a1 2600:9000:238f:3a00:18:cd0d:3c00:93a1 2600:9000:238f:ea00:18:cd0d:3c00:93a1 2600:9000:238f:3800:18:cd0d:3c00:93a1 2600:9000:238f:ba00:18:cd0d:3c00:93a1 108.158.147.83 108.158.147.97 108.158.147.113 108.158.147.78]
 - network  ok       files.pythonhosted.org found: [2a04:4e42:5c::319 151.101.177.63]
 - network  ok       github.com found: [20.201.28.151]
 - network  ok       pypi.org found: [2a04:4e42:200::223 2a04:4e42:600::223 2a04:4e42:400::223 2a04:4e42::223 151.101.128.223 151.101.64.223 151.101.0.223 151.101.192.223]
 - network  ok       robocorp.com found: [2606:4700:10::6816:2841 2606:4700:10::6816:2941 2606:4700:10::ac43:799 104.22.41.65 104.22.40.65 172.67.7.153]
 - network  ok       telemetry.robocorp.com found: [54.76.61.228 63.33.127.112]
 - network  ok       Canary download successful: https://downloads.robocorp.com/canary.txt
 - network  ok       PyPI canary download successful: https://pypi.org/jupyterlab-pygments/
 - network  ok       Conda canary download successful: https://conda.anaconda.org/conda-forge/linux-64/repodata.json
 - Settings ok       Toplevel settings are ok.

rcc pip instal step hangs in case of pip error

Hello,

During environment preparation, in the pip install phase, rcc simply hangs there
After difficult analysis, I found out that there is a dependency conflict in my pip packages: I copied the content of the pip section of my conda.yaml into a requirements.txt and tried to install it in a clean pip virtual environment, and got the following error:

ERROR: Cannot install -r requirements.txt (line 1) and rpaframework because these package versions have conflicting dependencies.

The conflict is caused by:
    rpaframework 12.6.0 depends on click<8.0.0 and >=7.1.2
    notifiers 1.3.0 depends on click==8.0.3

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

Here is the content of my conda.yaml:

channels:
  # Define conda channels here. 
  - conda-forge

dependencies:
  # Define conda packages here. 
  # If available, always prefer the conda version of a package, installation will be faster and more efficient.
  # https://anaconda.org/search  
  - python=3.9.7
  - nodejs=16.10.0
  - pip=21.2.4
  - pip:
    # Define pip packages here. 
    # https://pypi.org/
    - rpaframework==12.6.0 # https://rpaframework.org/releasenotes.html
    - robotframework-browser==11.0.0
    # - pyperclip==1.8.2
    - robotframework-robocop==1.12.0
    - openapi-python-client==0.10.8
    - pyjwt==2.3.0
rccPostInstall:
  - rfbrowser init

Could you please fix rcc to catch this error and display it rather than hanging indefinitely?

Thanks,

How to optimize pre-building of environments

I have a few questions

(1) Can I build an environment only for a specific operating system?
(2) The environment built is a large file(hololib.zip) of at least 100s of MB. How can I optimize it? Reduce the size of the environment so that I can port it easily

RCC Create Extended Robot Framework template

Hi, I just use rcc to create a robot with Extended Robot Framework template and the text is this:

myubuntu@myubuntu-pc:~/Robots$ rcc create
? Give robot name [my-first-robot]: 

3Templates:
   1: Basic Python template
   2: Extended Robot Framework template
   3: Playwright template
   4: Producer-consumer model template
   5: Standard Robot Framework template

? Choose a template [1]:2

The Extended Robot Framework template robot has been created to: my-first-robot

Get started with following commands:

$ cd my-first-robot
$ rcc run

The thing is that if I do as said and execute cd my-first-robot and then rcc run something like this will appear:

"/mypath/my-first-robot/robot.yaml" as robot.yaml is:
tasks:
  Run all tasks:
    shell: python -m robot --report NONE --outputdir output --logtitle "Task log" tasks.robot
  
  Run Example task:
    robotTaskName: Example Task

condaConfigFile: conda.yaml
artifactsDir: output
PATH:
  - .
PYTHONPATH:
  - keywords
  - libraries
  - variables
  
ignoreFiles:
  - .gitignore

Error: Could not resolve task to run. Available tasks are: Run Example task, Run all tasks

So I guess that this can be rewrited. If this is the first time using rcc and/or robotframework for someone, then they will not understand right away the difference between Run Example task and Run all tasks, neither using rcc run -t Run Example task to run the bot. It took me sometime to learn the difference.

Though, I don't know how often someone will use rcc to create a bot instead of using Visual Studio Code or Robocorp Lab.

Also, I don't know if this is the case for the other templates

Unable to run after importing pre built environment

I exported the pre built environment using the 'rcc holotree export' command and gave hololib.zip to another computer. However, the other computer was unable to run the robot after importing, resulting in a lock acquisition failure prompt. The lock file directory is the directory of my exported environment computer (including the user directory), and the second computer does not have a corresponding directory,

rcc robot wrap ingore not worked

rcc version:11.30.0

command: rcc robot wrap -i conda.yaml --debug

image
ignore not workd

the conda.yaml file still exists in zip file

yaml-cpp error when creating environment

When I run my projects with RCC I get the following error message:

ERROR yaml-cpp: error at line 1, column 6: unknown escape character: R

The project usually executes perfectly, but I keep getting this error in the Pip Install Phase.
The full stack:


"C:\\RPA\\PoCs\\poc-rcc-tasks\\robot.yaml" as robot.yaml is:
tasks:
  Run all tasks:
    shell: python -m robot --report NONE --outputdir output --logtitle "Task log" tasks.robot

  Run Example task:
    robotTaskName: Example Task

condaConfigFile: conda.yaml
ignoreFiles:
  - .gitignore
artifactsDir: output
PATH:
  - .
PYTHONPATH:
  - keywords
  - libraries
  - variables

####  Progress: 0/6  [try use existing live same environment?] 49a63462-dc55-8d00-6414-d4a8b5936c97
FINAL union conda environment descriptor:
---
channels:
- conda-forge
dependencies:
- python=3.7.5
- pip=20.1
- pip:
  - rpaframework==9.1.0
  - pandas==1.2.4
  - pywin32
---
####  Progress: 1/6  [environment key is: 900a7bead43ca7e1]
####  Progress: 2/6  [try clone existing same template to live, key: 900a7bead43ca7e1]
####  Progress: 3/6  [try create new environment from scratch]
####  Progress: 4/6  [pip install phase]
ERROR   yaml-cpp: error at line 1, column 6: unknown escape character: R
Installation plan is: C:\RCC\live\900a7bead43ca7e1\rcc_plan.log
####  Progress: 5/6  [backup new environment as template]
####  Progress: 6/6  [Done.] [Cache statistics: 3 environments, 30 requests, 0 merges, 2 hits, 1 dirty, 9 misses, 6 failures | v9.9.5]
Installed pip packages:

111 Could not read default settings, reason: open assets/settings.yaml: file does not exist

Hello there,

I have cloned this project and run it under the environment:

OS: Windows 11
Go Version: go version go1.20.2 windows/amd64 or go version go1.18.10 windows/amd64

When I try to run:
go run cmd/rcc/main.go

the error appears:

Fatal failure with 'C:\Users\123\AppData\Local\robocorp\settings.yaml', see: {111 Could not read default settings, reason: open assets/settings.yaml: file does not exist}
Sorry. Cannot recover, will exit now!

pandas and sqlalchemy not recognised in Visual studio

I installed all robot libraries including pandas and sqlalchemy and I am using Visual Studio, it was working fine until yesterday and now I cannot fix the issue, I tried re-installing all libraries but should I update something in Visual Studio? I get Module not found error. But when executed from command prompt the test works fine, its only through VS it does not work

Environment: Windows

Tried Python : Select Interpreter option too but does not fix the issue

Libraries
Package Version

attrs 23.1.0
beautifulsoup4 4.12.2
cached-property 1.5.2
certifi 2023.7.22
cffi 1.15.1
chardet 3.0.4
charset-normalizer 3.2.0
click 8.1.6
colorama 0.4.6
comtypes 1.2.0
convertdate 2.4.0
cryptography 41.0.2
cx-Oracle 8.3.0
decorator 5.1.1
defusedxml 0.7.1
dnspython 2.4.1
docutils 0.20.1
et-xmlfile 1.1.0
exceptiongroup 1.1.2
exchangelib 4.9.0
fire 0.4.0
fonttools 4.41.1
fpdf2 2.7.4
furl 2.1.3
graphviz 0.13.2
greenlet 2.0.2
h11 0.14.0
hijri-converter 2.3.1
holidays 0.21.13
htmldocx 0.0.6
hubspot-api-client 4.0.6
idna 3.4
importlib-metadata 4.13.0
isodate 0.6.1
java-access-bridge-wrapper 0.14.1
jsonpath-ng 1.5.3
jsonschema 4.18.4
jsonschema-specifications 2023.7.1
korean-lunar-calendar 0.3.1
lxml 4.9.3
mss 6.1.0
mysqlclient 2.2.0
natsort 8.4.0
netsuitesdk 1.24.0
notifiers 1.3.3
numpy 1.25.2
O365 2.0.26
oauthlib 3.2.2
openpyxl 3.1.2
orderedmultidict 1.0.1
outcome 1.2.0
packaging 23.1
pandas 2.0.3
pdfminer.six 20221105
pendulum 2.1.2
Pillow 9.5.0
pip 23.2.1
platformdirs 3.10.0
ply 3.11
psutil 5.9.5
pycparser 2.21
Pygments 2.15.1
PyJWT 2.8.0
PyMeeus 0.5.12
pynput-robocorp-fork 5.0.0
pyotp 2.9.0
pypdf 3.14.0
pyperclip 1.8.2
PySocks 1.7.1
pyspnego 0.9.1
python-dateutil 2.8.2
python-docx 0.8.11
python-dotenv 1.0.0
pytz 2023.3
pytz-deprecation-shim 0.1.0.post0
pytzdata 2020.1
pywin32 303
pywinauto 0.6.8
PyYAML 6.0.1
referencing 0.30.0
requests 2.31.0
requests-file 1.5.1
requests-ntlm 1.2.0
requests-oauthlib 1.3.1
requests-toolbelt 1.0.0
robocorp-storage 0.3.2
robotframework 5.0.1
robotframework-databaselibrary 1.3.1
robotframework-excellib 2.0.1
robotframework-oracledb 2.0.2
robotframework-pabot 2.16.0
robotframework-pythonlibcore 4.2.0
robotframework-requests 0.9.5
robotframework-sapguilibrary 1.1
robotframework-seleniumlibrary 6.1.0
robotframework-seleniumtestability 2.1.0
robotframework-stacktrace 0.4.1
rpaframework 24.1.2
rpaframework-core 11.0.5
rpaframework-pdf 7.1.5
rpaframework-windows 7.3.2
rpds-py 0.9.2
selenium 4.9.1
setuptools 65.5.0
simple-salesforce 1.12.4
six 1.16.0
smartsheet-python-sdk 3.0.2
sniffio 1.3.0
sortedcontainers 2.4.0
soupsieve 2.4.1
SQLAlchemy 1.4.47
sqlparse 0.4.4
stringcase 1.2.0
tenacity 8.2.2
termcolor 2.3.0
trio 0.22.2
trio-websocket 0.10.3
tweepy 3.10.0
tzdata 2023.3
tzlocal 4.3.1
uiautomation 2.0.18
urllib3 2.0.4
validators 0.20.0
webdriver-manager 3.9.1
wrapt 1.15.0
wsproto 1.2.0
xlrd 2.0.1
XlsxWriter 3.1.2
xlutils 2.0.0
xlwt 1.3.0
zeep 4.2.1
zipp 3.16.2
image

image

RCC network diagnostic should also check registry.npmjs.org

I am behind a corporate proxy where the domains accessed by RCC have to be allowed selectively.
Installing Browserlibrary / Playwright fails even with all the domains listed in rcc config diag because registry.npmjs.org is not accessible.

image

Build error for buildstats.go: undefined: any

Once again, this is probably just me, but when building the latest version (v11.34.0) I get the following build errors:

go/src/github.com/robocorp/rcc/journal/buildstats.go:361:22: undefined: any
go/src/github.com/robocorp/rcc/journal/buildstats.go:519:36: undefined: any

v11.31.2 did still build properly.

Any tips, is that something that could/should be fixed in RCC or is it more probably just me missing something in my build?

Idea: Expose current stable version

It's not immediately clear what the stable version of RCC is via Github. I periodically check to see if there's an update and sometimes check on the Changelog but it's not clear where stable is.

Updating the README with the current stable version would allow me to quickly know whether or not I need to upgrade.

Another option would be a check on launch to see if a newer version is available. Or even an update option, but that's a bit more involved.

And another option is to embrace the GitHub releases to distribute the binary and expose what the latest stable version is. I've had good luck with Goreleaser for my go projects distributions - https://github.com/mdp/qrterminal

Anyways, this is of course a very low priority issue, but just thought I'd toss in my 2 cents on a bike shed problem :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.