|
|
(6 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | ==MIREX 2024 Submission Guideline== | + | ==MIREX 2025 Submission Guideline== |
− | | |
− | Since this is the first year we are reviving MIREX, different tasks will have different submission guidelines.
| |
− | However, the general guideline is as follows:
| |
− | | |
− | ==== Submission Format ====
| |
− | | |
− | * For tasks to submit code, a docker image is required.
| |
− | * For tasks to submit results, a zip file is required.
| |
| | | |
| ==== Submission Portal ==== | | ==== Submission Portal ==== |
| | | |
− | The submission portal is available at [http://futuremirex.com/portal MIREX 2024 Submission Portal]. | + | The submission portal is available at [http://futuremirex.com/portal MIREX 2025 Submission Portal]. It is currently under renewal. |
| | | |
| === Docker Image === | | === Docker Image === |
| | | |
− | For people who are not familiar with docker, here is a brief introduction for python and c++ users. For other languages, please refer to the official docker documentation.
| + | The docker image is no longer required unless specified by task captains. |
| | | |
− | First, you need to install Docker on your machine. You can find the installation guide at [https://docs.docker.com/get-docker/ Docker Installation Guide].
| + | ==== How to Submit ==== |
− | | |
− | Then you need to create a docker image for your project. A docker image is a lightweight, standalone, executable package that includes everything needed to run a piece of software, including the code, a runtime, libraries, environment variables, and config files.
| |
− | | |
− | ==== Python ====
| |
− | | |
− | Assume you have a python project with the following files:
| |
− | | |
− | <pre>
| |
− | project/
| |
− | main.py
| |
− | </pre>
| |
− | | |
− | The ideal case is that you can use pip to install the dependencies and run the task. To do this, you need to create a `requirements.txt` file in the project directory:
| |
− | | |
− | <pre>pip freeze > requirements.txt</pre>
| |
− | | |
− | To create a docker image, you need to create a `Dockerfile` in the project directory:
| |
− | | |
− | <pre>
| |
− | FROM python:3.8 # Change the version to the version you are using
| |
− | | |
− | WORKDIR /app
| |
− | | |
− | COPY requirements.txt ./
| |
− | | |
− | RUN pip install --no-cache-dir -r requirements.txt
| |
− | | |
− | COPY . .
| |
− | | |
− | ENTRYPOINT [ "python", "main.py" ]
| |
− | </pre>
| |
− | | |
− | Then you can build the docker image:
| |
− | | |
− | <pre>
| |
− | docker build -t my_project .
| |
− | </pre>
| |
− | | |
− | ==== C++ ====
| |
− | | |
− | Assume you have a c++ project with the following files:
| |
− | | |
− | <pre>
| |
− | project/
| |
− | main.cpp
| |
− | run_task.sh # Calls the compiled binary
| |
− | Makefile
| |
− | </pre>
| |
− | | |
− | To create a docker image, you need to create a `Dockerfile` in the project directory:
| |
− | | |
− | <pre>
| |
− | FROM ubuntu:latest # Use an official base image that includes a C++ compiler
| |
− | | |
− | # Install required packages, including build-essential for g++
| |
− | RUN apt-get update && apt-get install -y \
| |
− | build-essential \
| |
− | && rm -rf /var/lib/apt/lists/*
| |
− | | |
− | WORKDIR /usr/src/app
| |
− | | |
− | COPY . .
| |
− | | |
− | RUN make
| |
− | | |
− | ENTRYPOINT [ "bash", "run_task.sh" ]
| |
− | </pre>
| |
− | | |
− | Then you can build the docker image:
| |
− | | |
− | <pre>
| |
− | docker build -t my_project .
| |
− | </pre>
| |
− | | |
− | === Upload Docker Image ===
| |
− | | |
− | Different tasks may require different ways to upload the docker image. Most likely, you will be asked to upload the docker image to the following places:
| |
− | | |
− | * Docker Hub: You can create a free account at [https://hub.docker.com/ Docker Hub] and upload your docker image there.
| |
− | * Github Container Registry: If you are using Github, you can use the Github Container Registry to upload your docker image.
| |
− | * Google Drive: You can upload your docker image to Google Drive and share the link with the task captain.
| |
− | | |
− | Notice that MIREX server currently does not support docker image upload. This might be supported in future years.
| |
− | | |
− | ==== Docker Hub ==== | |
− | | |
− | To upload your docker image to Docker Hub, you need to create a repository on Docker Hub. Then you can push your docker image to the repository:
| |
− | | |
− | <pre>
| |
− | docker tag my_project my_docker_hub_username/my_project
| |
− | docker push my_docker_hub_username/my_project
| |
− | </pre>
| |
− | | |
− | Since your docker hub is likely private, you need to share the repository with the account `FutureMIREX (futuremirex@gmail.com)`. You can do this by going to the repository settings and adding the account as a collaborator.
| |
− | | |
− | ==== Github Container Registry ====
| |
− | | |
− | To upload your docker image to Github Container Registry, you need to create a personal access token with the `write:packages` scope. Then you can push your docker image to the Github Container Registry:
| |
− | | |
− | <pre>
| |
− | docker login ghcr.io -u my_github_username -p my_personal_access_token
| |
− | docker tag my_project ghcr.io/my_github_username/my_project
| |
− | docker push ghcr.io/my_github_username/my_project
| |
− | </pre>
| |
| | | |
− | For private repo, you need to share the link to the docker image with the account `futuremirex`. You can do this by going to the repository settings and adding the account as a collaborator.
| + | To be updated. |
− | | |
− | ==== Google Drive ====
| |
− | | |
− | To upload your docker image to Google Drive, you need to first save the docker image as a tar file: | |
− | | |
− | <pre>
| |
− | docker save -o my_project.tar my_project
| |
− | </pre>
| |
− | | |
− | Then you can upload the tar file to Google Drive and get a shareable link.
| |
− | | |
− | ==== Potential Issues ====
| |
− | | |
− | Since docker images can be large, you may encounter issues when uploading the docker image especially with free accounts or slow internet connections.
| |
− | If you encounter issues, please contact the task captain for alternative ways to share the docker image.
| |
− | | |
− | === Submission Portal ===
| |
− | | |
− | The submission portal is available at [http://futuremirex.com/portal MIREX 2024 Submission Portal].
| |
− | There is a forum for each task where submissions are made. You may also ask questions about the task in the forum.
| |
− | Notice that some tasks may use external submission sites like codabench. The forum will have the link to the external submission site.
| |
− | | |
− | ==== How to Submit ====
| |
| | | |
− | To submit for a task, you need to create a new topic in the forum of the task. The topic should contain the following information:
| + | === Extended Abstract === |
| | | |
− | * Title: Your submission title (used for the leaderboard)
| + | Please submit a 2-4 page extended abstract PDF in the ISMIR format about the submitted program(s) to help us and the community better understand how the algorithm works when submitting their programme(s). |
− | * Submission link: The link to your submission. Specifically,
| |
− | ** For docker image submission to Docker Hub, the link should be the repository link (make sure to share the repository with `FutureMIREX`).
| |
− | ** For docker image submission to Github Container Registry, the link should be the repository link (make sure to share the repository with `futuremirex`).
| |
− | ** For docker image submission to Google Drive, the link should be the shareable link to the tar file.
| |
− | ** For result submission, the link should be the shared link to the zip file.
| |
− | * Description: A brief description of your submission. If you have included it in extended abstract, you can just write "See extended abstract".
| |
− | * Extended abstract: An extended abstract of your submission.
| |
| | | |
| === Other Questions === | | === Other Questions === |
| | | |
| For other questions, please contact the task captain or the MIREX organizers. | | For other questions, please contact the task captain or the MIREX organizers. |