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

##[error]Version spec 3.6.10 for architecture x64 did not match any version in Agent.ToolsDirectory. #1260

Closed
1 task
StingyJack opened this issue Jul 18, 2020 · 6 comments
Assignees

Comments

@StingyJack
Copy link

Describe the bug
Azure Devops Build pipeline worked last week, today it doesnt, and no code was changed.

Question, Bug, or Feature?:
Bug

Virtual environments affected

  • Ubuntu 16.04 LTS

Expected behavior
I expect the build to continue to work, or the professional courtesy of being actively notified that the image has changed and could break or interfere with customer business continuity.. In all seriousness, this is a service we pay for, and a service provider for service should be notifying the customer in advance of changes to that service. I would like to be told when it is something that specifically affects my business, but a simple email saying that the build image I use will be changing would be OK too. Its patently not acceptable for a service provider to interrupt a customer's business like this.

Actual behavior
See error in title. No notice.

@maxim-lobanov
Copy link
Contributor

Hello @StingyJack ,
It is not recommended to specify exact Python version in UsePython task (like 3.6.10). Unfortunately, UsePython task only switches pre-installed versions and can't download them on flight. On images, we keep the single latest patch version for every major.minor pair. Recently, Python 3.6.11 was released and 3.6.10 was replaced by 3.6.11.
You should specify Python version like 3.6 in UsePython task. It will guarantee that your pipeline won't be broken and will pick up the new patch automatically as soon as it is updated.
If your use-case requires freezing patch version of Python without update, I suggest to consider other ways of installing Python in runtime rather UsePython task.
Image updates can be tracked per releases in this repository. For example, release of latest Ubuntu 16.04 update.

@StingyJack
Copy link
Author

Please do not gloss over the reported issue. It's not a python issue. (In fact it was a change from nodejs V10 to V12 that caused the break before.)

@maxim-lobanov
Copy link
Contributor

As for the Node.js, it is recommended to use official task Node.js Tool Installer task to select specific version. The following versions are installed on image: 8.x, 10.x, 12.x, 14.x. It will guarantee that your build will continue to work independently from default Node.js. You can find more details in documentation.

@StingyJack
Copy link
Author

Again, the issue is not a NodeJs issue. Focusing on trying to resolve those error instances does not help to resolve the problem.

I'm not interested in constant patching and maintenance/upkeep. Thats what we pay a service provider for.

@maxim-lobanov
Copy link
Contributor

"azure-pipelines-tasks" team has updated "UsePython" and "UseRuby" tasks to produce warning in case if customers specify exact version like "major.minor.patch" and notify customers that they can be broken in future image rollouts.
The current implementation of "UsePython" task can't download versions on-flight so this behavior is expected because we pre-cache only the latest patch version for every major.minor pair.
I have created an issue microsoft/azure-pipelines-tasks#13319 to improve this behavior and download Python versions on-flight like GitHub Actions task "setup-python" does.

If you are interested in freezing exact version of Python (major.minor.patch), I suggest looking for alternatives of UsePython task or consider using self-hosted machine.

@StingyJack
Copy link
Author

@maxim-lobanov you are only speaking to a symptom and not addressing the issue. That may seem like it's a good technique for closing an open issue, except that since it doesn't fix the problem, the issue will persist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants