-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Initial README * program -> solution * Update README.md * Update README.md Co-authored-by: Tomasz Nowak <[email protected]> * adjustments and installation steps for non-linuxes * image size adjustment * Fix merge errors --------- Co-authored-by: Mateusz Masiarz <[email protected]>
- Loading branch information
1 parent
6781e97
commit 4dccc10
Showing
4 changed files
with
87 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,62 @@ | ||
# sinol-make | ||
CLI tool for creating sio2 task packages. \ | ||
Currently in development and not yet ready to be used. | ||
# <img src="https://avatars.githubusercontent.com/u/2264918?s=200&v=4" height=60em> sinol-make | ||
|
||
## Installing from source | ||
`pip3 install .` | ||
`sinol-make` is a CLI tool for creating and verifying problem packages | ||
for [sio2](https://github.com/sio2project/oioioi) | ||
with features such as: | ||
- measuring time and memory in the same deterministic way as sio2, | ||
- running the solutions in parallel, | ||
- keeping a git-friendly report of solutions' scores, | ||
- catching mistakes in the problem packages as early as possible, | ||
- and more. | ||
|
||
# Contents | ||
|
||
- [Why?](#why) | ||
- [Installation](#installation) | ||
- [Usage](#usage) | ||
- [Configuarion](#configuration) | ||
- [Reporting bugs and contributing code](#reporting-bugs-and-contributing-code) | ||
|
||
### Why? | ||
|
||
The purpose of the tool is to make it easier to create good problem packages | ||
for official competitions, which requires collaboration with other people | ||
and using a multitude of "good practices" recommendations. | ||
While there are several excellent CLI tools for creating tests and solutions, | ||
they lack some built-in mechanisms for verifying packages and finding mistakes | ||
before uploading the package to the judge system. | ||
As sinol-make was created specifically for the sio2 problem packages, | ||
by default it downloads and uses sio2's deterministic mechanism of measuring | ||
solutions' runtime, called `oiejq`. | ||
|
||
### Installation | ||
|
||
It's possible to directly install [sinol-make](https://pypi.org/project/sinol-make/) | ||
through Python's package manager pip, which usually is installed alongside Python: | ||
|
||
``` | ||
pip3 install sinol-make | ||
``` | ||
|
||
As `oiejq` works only on Linux-based operating systems, | ||
*we do not recommend* using operating systems such as Windows or macOS. | ||
Nevertheless `sinol-make` supports those operating systems, | ||
though there are additional installation steps required to use | ||
other tools for measuring time (which are non-deterministic and produce reports different from sio2): | ||
- Windows (WSL): `apt install time timeout` | ||
- macOS: `brew install gnu-time coreutils` | ||
|
||
### Usage | ||
|
||
The availabe commands (see `sinol-make --help`) are: | ||
|
||
- `sinol-make run` -- Runs selected solutions (by default all solutions) on selected tests (by default all tests) with a given number | ||
of CPUs. Measures the solutions' time with oiejq, unless specified otherwise. After running the solutions, it | ||
compares the solutions' scores with the ones saved in config.yml. | ||
Run `sinol-make run --help` to see available flags. | ||
|
||
### Reporting bugs and contributing code | ||
|
||
- Want to report a bug or request a feature? [Open an issue](https://github.com/sio2project/sinol-make/issues). | ||
- Want to help us build `sinol-make`? Create a Pull Request and we will gladly review it. | ||
|
||
## Running tests | ||
1. Install `sinol-make` with test dependencies: \ | ||
```pip3 install .[tests]``` | ||
2. Run `pytest` in root directory of this repository. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters