beeware / beeware/briefcase

Improve support for bootstrapping a development environment without an active network connection

Open
#738 5 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

When you run a briefcase command for the first time, it requires an active network connection, and will download multiple gigabytes of tools. This is particularly bad on macOS/iOS (which require Xcode) and Android (which needs the sdkmanager an associated tools). This is a problem in bandwidth-limited scenarios (like tutorial sessions or conference wifi). It can also be a problem in environments where network access is limited or compromised (e.g., behind aggressive corporate firewalls)

It should be possible to give someone a USB drive populated with files, and bootstrap their briefcase installation.

**Describe the solution you'd like**

A new command:
`briefcase bootstrap `

will inspect ``, and install all the tools needed for ``. This may not 100% remove the need for network activity, but it should be possible to dramatically lower the initial bandwidth/time requirement.

A parallel command/option will also be required to *create* the archive folder in the first place (`briefcase bootstrap --create `?)

**Describe alternatives you've considered**

No real options, other than requiring an active network connection.

**Additional context**

Support packages and templates can be copied directly from the source folder; it may be desirable to require them to be stored in zip format.

The Android sdkmanager has support for a `--package_file` argument that can be used to directly install packages from a zip file. It's not clear

There is likely not much we can do about Xcode, as it can't be distributed outside the App Store.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.