Comments (8)
I'm happy to take this one. I suggest the script(s) be written in Dart so that users can run it on any platform.
from dart.
@raphalvessa Thanks for double checking. I missed this.
from dart.
Some ideas for the script :
- By default it'll run all 5 task for all exercises.
- There should be an option to perform those tasks for a specific exercise.
- It should have option to perform specific tasks for specific exercise. (maybe not, need opinions)
- It's name should be sensible (e.g. validate-exercise) along with its args (--all, --nameOfExercise, etc)
- Possibly hook the script to git-hooks (pre-push) a non-zero exit code will abort the push.
- Should return zero exit code after successful completion, this will also be helpful in travis-ci
- more ideas here...
from dart.
Few more ideas
- If canonical-data has tests, there should exists a
exercise_name_test.dart
file intest
directory. - Number of tests implemented
>=
Number of tests in canonical-data (It's fine if there are more). - Each test implemented has flag
skip:true
except the first one. - The actual
example.dart
should not be imported in the exercise_name_test.dart (common mistake). - The
exercise_name.dart
should be imported inexercise_name_test.dart
. - If there exists a description.md in the problem-specification, there should be a readme.md (In case the contributor didn't use our create-exercise tool. )
from dart.
There should be an option to perform those tasks for a specific exercise.
That's possible for the scripts that check dart formatting, but the configlet commands check the entire repo's configuration and contents.
It should have option to perform specific tasks for specific exercise. (maybe not, need opinions)
Currently, it would be checking the format and then formatting the exercise. Just two tasks.
Possibly hook the script to git-hooks (pre-push) a non-zero exit code will abort the push
If whoever implements it can do that and have it affect anyone that clones the repo, sure.
Number of tests implemented >= Number of tests in canonical-data (It's fine if there are more).
It would require that for every person that clones our repo and make a change, they would need to clone exercism/problem-specifications in order to run this script. I do not recommend that path.
If canonical-data has tests, there should exists a exercise_name_test.dart file in test directory.
We don't need canonical-data to have tests to know there needs to be a dart test file.
In my opinion, this suggestion and the one about validating number of tests. That can be handled during the PR.
from dart.
@raphalvessa If you can work on this, checkout the points I've written for a start. And create a PR once you're done we'll continue our discussion there for any modifications or more ideas.
from dart.
@kabiir Will do. I'll get started once I have some free time. 🙂
from dart.
I believe this issue has been addressed with PR #70, and can now be closed.
from dart.
Related Issues (20)
- Build representer
- Check docs are up to date
- Add or Update existing GitHub Action to check for bad links HOT 7
- Should the template for "Isbn Verifier" have a class? HOT 1
- Replace all dartlang.org links with dart.dev
- Does ABOUT.md Need a Mention of Flutter? HOT 3
- Configure Online Editor Task Complete
- Make Test Driven Development More Prominent in Exercise Instructions HOT 4
- Dart tests are default on skip:true HOT 1
- Structure of test files for generated exercises? HOT 12
- How to best run tests locally on just the exercise being worked on? HOT 5
- Question about initialization in test suites HOT 6
- dart fix is removing import in test suite HOT 5
- [CI] Re-enable link checker HOT 11
- Drop use of types for variables when not necessary HOT 1
- Armstrong Numbers: do we want to add BigInt? HOT 3
- Syntax question -- lists, and types and lists of lists HOT 2
- Why is skip true for all the tests? HOT 2
- Gigasecond method name could be changed HOT 2
- Wide right section cause layout issues HOT 2
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 dart.