Git Product home page Git Product logo

kodiak-tools's People

Contributors

stoneyjackson avatar

Watchers

 avatar  avatar

kodiak-tools's Issues

Auto run functional tests on dists before dists are posted

Is your feature request related to a problem? Please describe.

  1. Currently, distributions must be tested manually.

    make dist
    dist/kodiak-tools-VERSION.pyz --version
    
  2. Because distributions cannot be tested automatically, the release mechanism cannot test that distributions are sane before posting it to GitHub.

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

Naming things is one of the two hardest things in computer science. So let's spend some time on getting this right.

Commands

We currently have two commands.

Unpack an archive downloaded from Kodiak into an organized structure that is easier to work with and ready for review.

  • unpack
  • extract
  • inflate
  • prepare-to-review
  • organize
  • import
  • make-easy
  • demangle

Prepare an archive of feedback files for upload to Kodiak.

  • prepare-archive
  • prepare-feedback
  • package-feedback
  • package-archive
  • prepare-upload
  • package-upload
  • remangle
  • export
  • export-feedback

Discussion

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.

Decission

kodiak init <dir>
kodiak import <archive>
kodiak export

Other commands

kodiak formats   # display supported archive formats
kodiak --version
kodiak --help
kodiak <command> --help

Directory names and structure

A project folder contains the following things:

  • Original archive
  • Original submissions
  • Organized submissions
  • Exported feedback
  • Exported archive
  • Mapping from organized names to original names

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.

Decision

<project>/
    .kodiak/
        mapping
        original/
            archive/
            files/
        exported/
            submissions/
    exported/
        archive/
        files/
    submissions/
        <last_first_id>
        ...

Need docs

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

click is not shipped with dist

Describe the bug
kodiak-tools-1.0.1-stable.pyz does not ship with click.

To Reproduce

  1. Download release: kodiak-tools-1.0.1-stable.pyz
  2. Open in a command prompt in an environment that does not have click installed.
  3. Run kodiak-tools-1.0.1-stable.pyz
  4. See error message about click.

Expected behavior
Should run without error.

Environment (please complete the following information):

  • OS: Windows 10
  • Shell: Command Prompt
  • Python version: 3.6.2
  • kodiak-tools version: 1.0.1-stable

Additional context
Click not installed.

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.