stoneyjackson / kodiak-tools Goto Github PK
View Code? Open in Web Editor NEWTools for instructors working with assignment archives downloaded from D2L.
License: GNU General Public License v3.0
Tools for instructors working with assignment archives downloaded from D2L.
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
Currently, distributions must be tested manually.
make dist
dist/kodiak-tools-VERSION.pyz --version
Because distributions cannot be tested automatically, the release mechanism cannot test that distributions are sane before posting it to GitHub.
Currently, there are multiple entry points depending on how the SUT (system under test) is installed. When a distribution is built using zipapp, zipapp uses main.py at the top-level as its entry-point. When the SUT is installed using setup.py (e.g., pipenv install -e .
) it uses kodiak.cli::main as its entry-point (I haven't been able to convince setup.py to use main:main at the top-level; if I could, that would solve this point). Multiple entry-points means less reliable test results. It would be better to have a single entry-point that all functional tests are run against.
Describe the solution you'd like
Ideally, every dist would be automatically tested against functional tests before being posted. So when make release
is run, it builds a dist, tests the dist, and only if it passes all tests it posts the dist.
Describe alternatives you've considered
I'm thinking tox might be the solution.
Naming things is one of the two hardest things in computer science. So let's spend some time on getting this right.
We currently have two commands.
I think I like import/export the best. They are duals of each other. They convey that something is coming into the system and something is going out of the system. They are well-known terms used in other common applications.
kodiak import <source-archive> <target-dir>
kodiak export <source-dir> <target-dir>
I also wonder if there should be a separate command for starting a project. This would make starting a project more steps.
kodiak init <dir>
cd <dir>
kodiak import <archive>
Feels cleaner. The import command has fewer arguments since it would use the CWD to determine where to import the archive. The previous version requires one to know the order of parameters.
kodiak export
This too is easier. No parameter as it would place the export in a predefined location.
kodiak init <dir>
kodiak import <archive>
kodiak export
kodiak formats # display supported archive formats
kodiak --version
kodiak --help
kodiak <command> --help
A project folder contains the following things:
End users do not care about the mapping. This should be stored internally (.kodiak/mapping
).
The originals may provide end users with peace of mind. We could store these out of the way in .kodiak
. End users could look at them if they want to.
The exported submissions also may be useful for peace of mind. Again we could store these out of the way in '.kodiak'.
The exported archive and the organized submissions must be visible.
<project>/
.kodiak/
mapping
original/
archive/
files/
exported/
submissions/
exported/
archive/
files/
submissions/
<last_first_id>
...
Is your feature request related to a problem? Please describe.
Currently, all documentation is in README.md and embedded in kodiak --help
and kodiak COMMAND --help
.
Describe the solution you'd like
Might be nice to have some good external documentation.
Describe alternatives you've considered
Need to pick a popular documentation tool. https://wiki.python.org/moin/DocumentationTools
If you have successfully uploaded a graded archive to Kodiak, please let me know.
Describe the bug
kodiak-tools-1.0.1-stable.pyz does not ship with click.
To Reproduce
Expected behavior
Should run without error.
Environment (please complete the following information):
Additional context
Click not installed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.