Comments (3)
Hey there!
Yeah... so we're following the second method (compile and run individual spec files) so that this track can follow the structure of the other track repos (so that the cli and other services can have a standardized way to find all the files).
I'm all for conforming with spec but... I'm not sure if there's a way to change the spec target directory (similar to how xelixir does it here). Unfortunately, I don't think we can configure that in a shard.yml
(but if there is, by all means do it).
If you can figure out a way to keep the existing repo structure but also use crystal spec
that would be awesome (keep in mind that currently we also have most of the tests set to pending
so to actually run them during CI we do some sed
magic as well).
from crystal.
Hi, thanks for taking the time to explain! I'm not sure I fully understand the problem, yet.
It looks like the Clojure track is somehow able to have exercises that each have src
and test
directories (following Clojure project convention)... this made me curious, so I dug into the exercism cli, api and trackler repos a little bit. Unless I'm missing something, I'm not sure that there is any requirement for the contents of an exercise folder in a track to follow any particular convention.
I see that we have a Makefile in this repo that manages running the spec files for each exercise. That could certainly be adjusted to cd
into each directory and run crystal spec
.
Am I missing something?
from crystal.
Ah I didn't know that xclojure had such a different exercise structure. Interesting! I think that it could work then. I'm still just a bit concerned about changing the whole structure of exercises after launching but... if it works, it works.
I say go for it.
I think the steps are to:
- restructure the individual exercise dirs to have
src
andspec
folders (or similar so thatcrystal spec
works) - update makefile to edit test files (change
pending
toit
) with new dir structure while running CI and also runcrystal spec
while running tests - update the docs for people on exercism so that they know which files to check-in and how to test (I think the one downside of this new configuration is that it makes it a bit more complicated to know which files to check in)
- as well as update docs for other contributors to this repo so that everyone is on the same page about the new exercise structure
Since this is a pretty big change. I'm going to start a spec
branch. It would be great if you could base your PR's off of that branch.
Thanks!
from crystal.
Related Issues (20)
- Confusing sentence about method return values HOT 1
- Inconsistent class method names HOT 2
- Blackjack Spec
- [BlackJack]: Inconsistent class methods name HOT 2
- URL to ICR is out of date HOT 7
- Add practices to practice exercises HOT 1
- Crystal Analyzer generated feedback is not visible HOT 2
- [Luhn] Unrelated Time#leap_year? ban in Luhn exercise
- [Meltdown Mitigation] Rename `is_criticality_balanced?` to `criticality_balanced?`
- Building a training set of tags for crystal HOT 23
- Deprecate scale-generator?
- Some possible language/typo corrections to the Library of Luton exercise README HOT 2
- Minor language correction in the Instructions to the Bellebrook Basket League exercise HOT 2
- [New Practice Exercise]: Parallel letter frequency HOT 2
- [New Practice Exercise]: Zebra Puzzle HOT 5
- 🤖 Sync error for commit 8cb214 HOT 8
- On exercise "navigation-computer" - tests are passing even when last task is not implemented HOT 1
- [New Practice Exercise]: Dnd Character HOT 3
- [New Practice Exercise]: Food Chain
- [Create Approach]: List Ops
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 crystal.