Comments (4)
If this seems like a good approach, I would be happy to work on implementing the solution.
All thoughts and feedback welcome.
cc @echeran
from conformance.
That sounds great to me! I like the listing of the separate incremental steps to make this change (easier to review & adapt to). Overall, this ought to make the project easier to use and maintain.
FYI @sffc @sven-oly
from conformance.
Thanks for the feedback @sffc . Yes, I'm proposing the containerizing of the Python scripts etc for test generation and running, not just the executors. I was planning for the executors to run in the same container as the scripts (at least initially), similar to how GitHub Actions runs them currently. Containerizing individual executors sounds interesting though and could be decided separately. My proposal is just taking the existing test generation+run setup (including its single environment execution) and making it more transparent and easily reproducible - on a developer's machine, for example.
I do still think it is good to have our Python scripts (or the thin .sh files around them) be the entrypoints.
Yes, totally agree. I think that a simple entrypoint to test generation and running would make sense, especially for those without Docker experience. I also think a way to opt out of containerization would be a good idea for developers that have all dependencies locally and don't use Docker. e.g.:
$ python conformance.py test --no-container
This is the basic scope of what I was thinking:
(Your suggestion of containerizing the individual executors would mean that the 'Executor deps' could be moved out of this container.)
Does this address any of your concerns about putting the run into the container?
from conformance.
Things that are very architecture-specific, such as the C++ executor, would be good to containerize. Maybe some of the other executors like Rust or Dart, especially if they depend on very specific compiler setups.
However, I don't think it's a good idea to shove the entire runtime into a container (I'm not sure exactly the scope of what you were thinking). I do still think it is good to have our Python scripts (or the thin .sh files around them) be the entrypoints. But, it makes sense if Python invokes a container as an executor and treats it like a native executor (interacting with stdin/stdout).
from conformance.
Related Issues (20)
- Implement plural ranges in data generation
- Support ICU 75 / CLDR 45 HOT 1
- Support a "known issue" test result type HOT 1
- Remove deprecated field "type" in list_fmt data. Replace with "list_type" HOT 1
- Migrate name of test data field from "type" to "list_type" for list format testing
- Add linting for C++ code
- Classify warnings correctly in logging output
- Support negative tests that expect errors (in MF2 tests) HOT 1
- Parse message_fmt2 API runtime args of type number and datetime args accordingly
- Add compact plural support
- Schemas need review: rdt_fmt, etc
- Datetime generator (nodejs) needs temporal in the package.
- Remove or update "Node.js 18 sample tests" - deprecated version of Node.
- Plural rules test data: there aren't any ORDINAL tests HOT 1
- Java RelativeDateTimeFormatter cannot handle non-ASCII numbering system
- ICU4J gives different results from NodeJS.
- Fix time zone parsing in ICU4J DateTime executor
- ICU4J lines in https://unicode-org.github.io/conformance/ all are labeled "74.2 74" regardless of ICU version
- Check that Known Issue computation of different numbering system digits date/time. Does it actually find the problems?
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 conformance.