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

Windows 11 - devcontainers core-dev permission issue when following README instructions #11458

Open
Cjewett opened this issue Feb 2, 2025 · 0 comments
Labels

Comments

@Cjewett
Copy link

Cjewett commented Feb 2, 2025

Code improvement description

This might be considered a bug but I chose Tech Debt since I believe this is a Development environment issue only.
README Section: https://github.com/dependabot/dependabot-core?tab=readme-ov-file#visual-studio-code-and-docker

Problem:

On Windows 11 with Docker installed if you follow the steps to use devcontainers, press F5, choose NuGet, and enter a NuGet repository (Iike https://github.com/Cjewett/CoverletIssue) I run into the following error:

DEBUGGER: Disconnected.
/usr/local/lib/ruby/3.3.0/fileutils.rb:402:in `mkdir': Permission denied @ dir_s_mkdir - /home/dependabot/dependabot-core/tmp (Errno::EACCES)
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:402:in `fu_mkdir'
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:380:in `block (2 levels) in mkdir_p'
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:378:in `reverse_each'
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:378:in `block in mkdir_p'
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:370:in `each'
	from /usr/local/lib/ruby/3.3.0/fileutils.rb:370:in `mkdir_p'
	from /home/dependabot/dependabot-core/common/lib/dependabot/shared_helpers.rb:290:in `with_git_configured'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/file_fetchers/base.rb:782:in `_clone_repo_contents'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/file_fetchers/base.rb:171:in `clone_repo_contents'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/file_fetchers/base.rb:221:in `load_cloned_file_if_present'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/file_fetchers/base.rb:251:in `fetch_file_from_host'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/config/file_fetcher.rb:40:in `block in fetch_files'
	from /home/dependabot/dependabot-core/common/lib/dependabot/config/file_fetcher.rb:36:in `each'
	from /home/dependabot/dependabot-core/common/lib/dependabot/config/file_fetcher.rb:36:in `fetch_files'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/file_fetchers/base.rb:140:in `files'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/common/lib/dependabot/config/file_fetcher.rb:27:in `config_file'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `bind_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/call_validation.rb:270:in `validate_call'
	from /home/dependabot/dependabot-updater/vendor/ruby/3.3.0/gems/sorbet-runtime-0.5.11577/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/dependabot/dependabot-core/bin/dry-run.rb:502:in `<main>'

Since this is a devcontainer I'm not sure if I should be making manual changes somewhere to fix this problem or if I missed a step in the development environment setup. Any recommendations?

Extra Commentary:

Besides this issue I was curious if the dependabot team would be interested in a document that acted more like a tutorial, similar to https://learn.microsoft.com/en-us/visualstudio/get-started/csharp/tutorial-aspnet-core?view=vs-2022#prerequisites, which outlines the prerequisites, steps, expected outcomes, etc. for the devcontainer approach. As someone who is not familiar with dependabot the current documentation redirects or handwaves a lot of things that is not obvious. I don't think I've been able to follow any of the guidance in the README to success on Windows 11 without making changes not outlined in the documentation. Also, I made those changes 2 years ago and have no clue what they were anymore.

Example: Visual Studio Code and Docker

It suggests to press F5 and choose Debug Dry Run. After selecting a package manager you are then asked for a repository. It defaults to zonedb/zonedb. What Git provider is that using? Is it okay if I use a URL like https://github.com/Cjewett/CoverletIssue? The end result is the permission issue outlined above. What is the expected outcome of following these steps?

Another suggestion is to press F5 and choose Debug Tests. It mentions you'll be asked to chose an ecosystem and an rspec path. What is an rspec path? If you search the README for rspec you get 5 other hits but all of those suggest to use an existing path it seems.

It's worth noting if you press F5 there is no Debug Tests option currently as well, so it seems like that section of the README is no longer applicable.

Example: Contributing New Ecosystems

The documentation links to dependabot-script but the top of dependabot-script says it is broken and it has been broken for a very long time. How are new ecosystems supposed to be contributed?

This comment sort of outlines that dependabot-core is not accepting new integrations. However, if dependabot-scripts is broken / deprecated and dependabot-core isn't accepting new integrations then what is the path forward for folks who use different Git providers?

Closing:

I know for some of these things if you dig through the repository issues or other sections of the documentation you can figure it out but I think from a developer experience perspective it makes it much more difficult to get started. Many times people are coming back to the repository and don't remember exactly what went into fixing their environments, so having tutorial(s) that work consistently would be amazing.

Thoughts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

No branches or pull requests

1 participant