Giter Site home page Giter Site logo

Clarify/redo design about staffeli HOT 10 OPEN

diku-dk avatar diku-dk commented on June 12, 2024 2
Clarify/redo design

from staffeli.

Comments (10)

nqpz avatar nqpz commented on June 12, 2024

Still, the basic design of having a .staffeli.yml in each directory seems a good one, so we should keep that.

from staffeli.

oleks avatar oleks commented on June 12, 2024

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.

sshine avatar sshine commented on June 12, 2024

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.

nqpz avatar nqpz commented on June 12, 2024

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.

sshine avatar sshine commented on June 12, 2024

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.

athas avatar athas commented on June 12, 2024

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.

sshine avatar sshine commented on June 12, 2024

@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.

oleks avatar oleks commented on June 12, 2024

@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.

oleks avatar oleks commented on June 12, 2024

So when is this happening?

from staffeli.

athas avatar athas commented on June 12, 2024

from staffeli.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.