Comments (4)
I'm not fully aligned with this strategy; I've tried it in the past, and it actually results in some basic issues. The largest is that there is almost always an intentional difference between packaged build/runtime dependencies and test dependencies, and python does not have a better way of breaking these out.
For example, in #125 , we're introducing a dependency on flake8 and pytest for the build process. Those should not be dependencies of the released artifact, but also probably shouldn't only be specified in the github actions build file.
From the last round of "what's the best way to", I concluded two things:
- Only runtime requirements should exist in setup.py; this is instructs tools like pip how to resolve transitive dependencies, and should specifically be runtime dependencies.
- Development dependencies (testing tools, code generation, doc parsers) and runtime dependencies should exist in
requirements.txt
, so that any developer can easilygit clone
+pip install -r requirements.txt
and be able to run tests.
I'm curious though, is this opinion in conflict with #124 ? Theoretically if source builds include test files, you would want to specify their dependencies somehow.
from adapt.
Adapt has the file test-requirements.txt which could be updated and used in the github-actions.
I've recently learned that the -r flag can be used in requirements files to include another file. so the test-requirements.txt could be updated to be
pytest
flake8
-r requirements.txt
(possibly renaming it to dev-requirements.txt or something)
There is also the option of having the setup.py called from the requirements file. Keeping the necessary requirements in the setup.py and dev requirements in requirements.txt.
Then another option that I've been looking at for mycroft-messagebus-client is to use the tests_require
and test
arguments for setup()
to be able to call python setup.py test
to perform the tests
from adapt.
-r requirements.txt
oooooooohhhhhhhh! ✨
from adapt.
Closed via #127
from adapt.
Related Issues (20)
- Using keyword "my" results in regex problems HOT 9
- Possible Regression using two or more regex HOT 3
- How do I use audio for intent classification? Any code? HOT 2
- upgrade to latest pyee HOT 1
- Catching first number with regex fails HOT 6
- Confusing examples: MultiIntent* examples define unused Parser and EntityTagger HOT 2
- Trie's `max_threshold` is documented as int, seems to be float
- `ZeroDivisionError` in determine_intent when tags are empty HOT 1
- Bug causing .optionally regex to not execute, but it works with .required. IntentBuilder HOT 13
- Entity matching more than it should HOT 3
- An issue with adapt-parser. Adding new intents is breaking old behavior. HOT 3
- Adapt react-native HOT 2
- Add license and test files to PyPI packages HOT 2
- Tooling for debugging Adapt
- Improve the readability of Adapt
- AttributeError when re-registering regex
- IntentDeterminationEngine.determine_intent does not return sorted results
- Github Action: Fix exit status
- Regex entities with optional words HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from adapt.