Comments (10)
Still, the basic design of having a .staffeli.yml in each directory seems a good one, so we should keep that.
from staffeli.
I have often found the .staffeli.yml
files useful when the command-line or Python API falls short, so I too would like to keep that part around together with the folder structure, which I think works OK.
I have fallen a bit off the bandwagon here partially because I'm not doing teaching currently, and partially because I have rediscovered that the Python ecosystem is flooded with "tools". Really, I would like a rewrite of Staffeli in a language that just does more out of the box instead of having to pile on this and that tool to get basic sanity. Golang is the obvious candidate. The language is simple, so it's hard to overnegineer your code, is statically typed, has a linter out of the box, and the library support for a Staffeli-sort-of-task is great.
That aside, the point of Cachable* was to designate objects that can be retained on disk to avoid extra requests to Canvas as these are sloooow on our Absalon system. The point was also to have expiration time stamps in there, but the design never really properly materialized. I still think this is a problem worth solving - response time on Absalon is still herendous, and I have run into synchronization issues due to stale data on my disk.
from staffeli.
I like the folder structure, but I sense that there is a reference/naming ambiguity in the command-line tool when referring to e.g. "subs/3". Sometimes the '3' part is a glob-style pattern on the course or assignment name, and at other times that specifically chosen substring becomes the reference for the assignment. Sometimes it simply refers to the directory; e.g. the tools that split assignments into groups.
The Cachable stuff also confuses me. In particular, when extending the CLI, I didn't know when to explicitly cache stuff and when stuff was implicitly cached anyways. Maybe having a policy in a design document is the way to go. A policy could be that caching only happens at particular layers, so makers of high-level tools don't have to understand when caching happens. Another policy could be on how/when to pass parameters for enabling/disabling the default caching behavior.
There are probably some sane defaults, but I imagine they often depend on workflows. Maybe we should have a workshop where we start by discussing our preferred workflows and finish by writing the tools that enable them? In particular, I am not happy with Staffeli's way of handling resubmissions and its inability to give a course/assignment overview for who has passed what, which resubmissions have not been corrected, and which submissions are overdue.
from staffeli.
We also need to discuss how much functionality we want in the core Staffeli CLI tool, and how much should be done by using Staffeli as a library. This depends on how different the workflows are.
from staffeli.
With a modular CLI tool, we can just write our own staffeli
extensions, like I intended to do with your group splitting scripts. This is git-like I think. Focusing on what is "core Staffeli" is good, because the more we can narrow this down and get right, the more consistent other tools will be.
from staffeli.
I would prefer a single Staffeli CLI tool that can do everything. It makes it easier to ensure consistent quality and eases documentation. There are not that many different ways to manage a course, so there is no need for a plugin mechanism, I think.
from staffeli.
@athas: The point here is prioritizing "everything". I just meant that I would like some of the CLI tool sub-commands to be handled in Python sub-modules.
from staffeli.
@athas the down-side of a single tool that does everything is that you create a great barrier of entry for new users. New users seem to appretiate small tools they can understand rather then big tools that can do everything. Also, I find Python APIs a great help for scripting various workflows.
from staffeli.
So when is this happening?
from staffeli.
from staffeli.
Related Issues (20)
- Use junctions instead of symlinks on Windows HOT 1
- Integration with Google Drive may be surprisingly easy HOT 1
- typing module is required by package but not in setup.py
- Getting KU login from name, and reverse HOT 3
- Login using OAuth2
- Make contrib/groups/* safer and more well-documented HOT 2
- Installation instructions with virtualenv
- Staffeli CLI 'staffeli clone' should let you pick destination directory HOT 1
- A documented workflow for handling resubmissions HOT 1
- Staffeli should not silently use the message 'See attached files' if I pass neither -m nor -f when correcting HOT 1
- `staffeli fetch subs/N` creates 'new-download' when files match exactly.
- More informative name than "Assignment 2 Group 071" HOT 1
- Require explicit command-line option for empty feedback HOT 2
- Canvas API functions for submissions
- Improve StudentList class
- Python vs. Golang vs. Rust — I think we're sticking with Python HOT 4
- Moving HOT 1
- `staffeli grade` does not parse attachments correctly HOT 1
- Consider using CanvasAPI HOT 1
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 staffeli.