-
-
Notifications
You must be signed in to change notification settings - Fork 32.8k
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
Improve setup #37075
Improve setup #37075
Conversation
@frenck since we limit dev setup to Debian/Ubuntu, we could put the |
logger: | ||
default: info | ||
logs: | ||
homeassistant.components.cloud: debug |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding debug logging for a single integration to show how it works.
@balloob I think using apt is really tricky. For example, It is still a development environment where one would go apart from what is normal at this point in time. |
How about dropping tox for just plain pytest? |
mkdir -p config | ||
|
||
python3 -m venv venv | ||
source venv/bin/activate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to document that if the developer wants to maintain another environment the developer can't use this script?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you mean with maintain another environment? Like have one virtual env that mixes both HA deps and deps of another project? That isn't supported. For installing external deps, people should do pip3 install -e /path/to/project
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No I mean use another venv tool and venv location. Eg I use virtualenv and virtualenvwrapper to manage my venvs. So this script won't be compatible with that setup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that those users should look into the script and figure out it's just pip3 install -e .
. venv
is official part of Python and should be the preferred venv.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we can also add support for an ENV var to skip the virtual env.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't we just check for $VIRTUAL_ENV being set, and abort if not. It should cover most bases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If that is a thing, yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is set by activate script. May not be set if a binary is run directly in venv, but that should be case we need to care about.
So the reason |
Leaving apt out because it would mess with Mac OS dev setups. I think that we could consider asking the user if they want to install those things, and then allow setting an ENV var to auto approve. |
I think ideally we would have the dev container also use this script. |
Breaking change
Proposed change
Updates our setup script for latest changes (auto configures logger) and also makes sure a venv exists.
Dev docs PR: home-assistant/developers.home-assistant#588
Type of change
Example entry for
configuration.yaml
:# Example configuration.yaml
Additional information
Checklist
black --fast homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.The integration reached or maintains the following Integration Quality Scale: