Giter VIP home page Giter VIP logo

sample-platform's Introduction

CCExtractor Sample Platform

Run tests and code checks codecov

This repository contains the code for a platform that manages a test suite bot, sample upload and more. This platform allows for a unified place to report errors, submit samples, view existing samples and more. It was originally developed during GSoC 2015 and rewritten during the 2016 edition. It was further improved and worked upon during GSoC 2017, 2018, 2019 and 2022.

To see the live version of the platform, simply go to CCExtractor Submission Platform.

Concept

While CCExtractor is an awesome tool and it works flawlessly most of the time, bugs occur occasionally (as with all existing software). These are usually reported through a variety of channels (private email, mailing list, GitHub, and so on...).

The aim of this project is to build a platform, which is accessible to everyone (after signing up), that provides a single place to upload, view samples and associated test results.

Installation

An installation guideline can be found here: installation guide.

Sample Updates

A lot of times it may happen that we add new features to ccextractor which render the result files associated with regression tests useless. In these cases, the tests can give false negative. For such cases, we should update the existing result files by the following command.

python manage.py update /path/to/ccextractor/executable

NOTE: Please backup old results and be sure about updating them as there is no method to go back.

Database Migrations

Sample-Platform uses flask-migrate to handle database migrations.

If you want to perform more complex actions than the ones mentioned below, please have a look at the flask-migrate command reference.

NOTE: For the below commands to function properly, FLASK_APP=/path/to/run.py should be set in the environment variables.

First Time With Flask-Migrate

If this is the first time that flask-migrate is being installed or run alongside existing database, use the following command to create a head stamp in your database:

flask db stamp head

Applying Schema Update On Existing Database

It is recommeneded to perform Database upgrades, whenever database schema is updated, using the below commands:

flask db upgrade

Removing Last Schema Update On Existing Database

Remove the last database update using the below commands:

flask db downgrade

Updating Schema

Whenever a database model's schema is update, run the following command to generate migrations for it.

flask db migrate

Contributing

All information with regards to contributing can be found here: contributors guide.

Testing

Sample-platform is regularly tested via Travis CI.

We use nosetests to manage testing and it can be run locally as follows:

For creating a virtual environment, we use virtualenv.

virtualenv venv                          # create a virtual environment
source venv/bin/activate                 # activate the virtual environment
pip install -r requirements.txt          # install dependencies
pip install -r test-requirements.txt     # install test dependencies
TESTING=True nose2

Migrating platform between machines

In case you want to replicate/migrate a platform instance with all the data, samples, regression tests.etc., follow the following steps:

  • Install platform on the new instance, using the installation guide.
  • Now transfer the contents of the previous GCS bucket to the new GCS bucket and export the SQL database of the previous platform instance into a file using the following command:
    mysqldump -u PLATFORM_USER_USERNAME -p PLATFORM_DATABASE_NAME > sample_platform.sql
    
    PLATFORM_USER_USERNAME and PLATFORM_DATABASE_NAME values are details for the SQL database of the previous platform instance.
  • Now import the database using the sample_platform.sql file into the new instance using the following command:
    mysql -u NEW_PLATFORM_USER_USERNAME -p NEW_PLATFORM_DATABASE_NAME < sample_platform.sql
    
    NEW_PLATFORM_USER_USERNAME and NEW_PLATFORM_DATABASE_NAME values are details for the SQL database of the new platform instance.

Etiquettes

We follow certain etiquettes which include docstrings, annotation, import sorting etc.

DocStrings Testing

Sample-platform uses docstrings heavily to document modules and methods.

We use pydocstyle to oversee the docstring format and etiquettes. Please run the following to check if you've followed the style before sending a PR.

pydocstyle ./           # check all .py files with pydocstyle

Imports

We use isort to introduce a style on how imports should be made.

Please check your imports before making a commit using the following commands.

isort . --diff      # see proposed changes without applying them
isort . --atomic    # apply changes to import order without breaking syntax

Generate Typing And Annotations

We use MonkeyType or PyType to generate typing for our code. It is a simple tool that [semi] automates the process of generating annotations using runtime trace.

To generate typing for your code, follow the below procedure.

Using MonkeyType

This method uses runtime trace information to generate typing and is highly recommended over using PyType.

NOTE: You must have written unit-tests for the new code in order to add annotations using MonkeyType.

monkeytype run `TESTING=True nosetests path/to/new.py/file:ClassName`     # classname where new tests added
monkeytype apply module.name                                               # apply the suggested changes

Using PyType

This method uses the knowledge of how the code is used to figure out the types.

NOTE: Only use this method only if MonkeyType method fails for the file.

pytype path/to/.py/file                    # path to the new code's file
merge-pyi -i path/to/.py/file .pytype/pyi/path/to/.pyi/file     # apply the suggested changes

Once you've generated the annotations using the above tools, follow the below procedure.

isort --atmoic /path/to/new.py/file                                        # sort the imports
mypy /path/to/new.py/file                                                  # fix the errors reported by mypy
git diff /path/to/new.py/file                                              # manually check the file for missing typings
pycodestyle ./ --config=./.pycodestylerc                                   # to check for PEP8 violations

NOTE: Manual inspection is very important. If then you feel that a mypy error is inappropriate or overkill, append # type: ignore at the end of the line.

Only once the above procedure is finished for all new files, one should commit the changes.

References to know more:

Static Typing Test

We use mypy to introduce a static typing.

Please check your code for static typing violations using the following commands.

mypy .

Security

Even though many precautions have been taken to ensure that this software is stable and secure, bugs can occur. In case there is a security related issue, please send an email to [email protected] (GPG key 0xF8643F5B, fingerprint 53FF DE55 6DFC 27C3 C688 1A49 3AFD C9BF F864 3F5B) instead of using the issue tracker. This will help to prevent abuse while the issue is being resolved.

sample-platform's People

Contributors

aadibajpai avatar apoticon avatar architbhonsle avatar ashishps1 avatar canihavesomecoffee avatar dependabot-preview[bot] avatar dependabot[bot] avatar devmrfitz avatar dukkee avatar eshandhawan51 avatar flyingtwigs avatar jatana avatar kvshravan avatar madan96 avatar manveerxyz avatar matejmecka avatar nikunj-taneja avatar nilsirl avatar pranavrajpal avatar pranavsid98 avatar prateekmedia avatar punitlodha avatar raju249 avatar sanchaymittal avatar satyammittal avatar saurabhshri avatar t1dus avatar tarun-arora avatar thealphadollar avatar zelzhan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sample-platform's Issues

[BUG] Hide media info when it's not available

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

The platform never took into account the fact that some samples can not have media info available. I quickly resolved this by adding a dummy, but ideally we should just detect missing media info, and hide the media info section in it's entirety.

Create a sample database for the platform

Currently there is an empty database after installing the platform. In case of development this is not really an ideal situation to start with.

Your task is to create a small sample database, and modify the installer to ask the installer if they want to use it.

[PROPOSAL] Implement option to add new regression test

Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

To recreate:
a) In admin account, go to this page.
b) there will be options such as "Add new regression test".
c) It will add a new regression test to the database. This feature is not yet implemented. We can view the added regression test in the table present here.

Feature:
Add new regression test: Form which will support attributes such as sample, input_type, category etc and will handle error in case of wrong inputs.

Where to start: You have to complete functions given in this file.

[BUG] Uploading files through FTP reveals the complete path on the uploads page

Sample platform commit (found at the bottom of each page) : 9c40fde

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

If a user uploads a file through the website, just the filename is being displayed.

If a user uploads the file through FTP transfer, then the entire path is being displayed. This shouldn't happen, and just have the same behaviour as the upload through the website.

[IMPROVEMENT] Update Linux bootstrap

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Modify Linux bootstrap to run script from NFS instead of DL'ing from GH. Will eliminate some risk of GH being down/unreachable/...

[BUG] Sample Platform can't handle pushed release tags.

Sample platform commit (found at the bottom of each page) : 8f2b269

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Looks like Sample Platform can not handle the pushes which are for release tags. The entry is made with commit hash "0000..." and of course the test fails. Either fetch correct commit for release or skip the release test altogether.

Update the platform to compare against the latest commit from the master branch

Currently there's a fixed set of correct samples. This is a good start, but often it confuses persons that make PR because that set of "correct" samples might lag behind the latest state of the repository (due to newer fixes, ...).

The new proposal would be to run PR (and only PR) with the results from the latest commit.

Pointers:

Add support for running the bot in forks

(Similar to/clone of CCExtractor/ccx_gitbot#8).

Currently, the only way you can get tests run on the sample platform is by opening a PR or committing to the master branch. The latter is only possible for core contributors, so the only option for a non-core contributor is to open a PR, and push to that branch. If you just want to test something out for a fix, this is far from ideal. So the platform needs to be expanded so that:

  • A contributor registers on the platform (that's present already)
  • Links his GitHub account (present)
  • Requests access to use the platform from his fork
  • Gets approved/denied by a core contributor
  • Then can use the platform.

Extend compilation with CMake

Currently the Linux builds are done with the build shell script only.

Extend this so it also builds and checks if the CMakefile is a success.

Worth 1 point for GSoC qualification

Expected: a PEP-8 compliant PR.

[BUG] Github status not updated when tests completed

Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

{issue content here, replace this line with your issue content}
On pull request 835
image
On pull request 822
image
We can see that on both completion of linux and windows testing,
Github test status is not getting updated every-time.

Python documentation

The code of the sample platform has some documentation, but it lacks more of the so-called doc-blocks. Your task is to add them for a couple of files (minimum 3)

Steps:

  • Clone/download the GitHub repository
  • Edit the python files to add documentation (keep PEP-8 compliancy in mind)
  • Make a pull request with the changes

Extend testing of build scripts

Clones CCExtractor/ccx_gitbot#11.

The bot only tests the compilation through the build bash script (see https://github.com/canihavesomecoffee/sample-platform/blob/master/install/ci-linux/ci/runCI#L64).

Due to some recent errors with the CMake script (see CCExtractor/ccextractor#290), Carlos suggested to add more tests for the build scripts.

So the shell scripts should be modified to add testing of successful builds for the build, builddebug and CMake scripts on Linux.

It should preferably be investigated too if it's possible to test the Windows & mac build scripts.

Maybe use Jenkins for this?

Add unit/integration tests

Currently, the sample platform has no unit/integration tests. This is not ideal, so some tests should be added.

Flask provides a way to test the application, so it'd be great to make use of that and test some stuff that way.

If this is implemented, an integration with GitHub could be added to ensure that Pull Requests aren't breaking anything anymore too.

[BUG] Foundation upgrade broke lay-out

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an the benevolent dictator of this repository.

For GCi, we upgraded Foundation from v 6.2.2 to v 6.4.3 (see e7c5185), but that broke quite some lay-outs. That either needs to be fixed by changing the grid layout we're using, or maybe by totally replacing Foundation with another library.

[BUG] Pull Request 0

Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

screenshot from 2017-12-02 22-31-28

I saw this bug when I just opened sample platform to see the progress of my current pull request

[ IMPROVEMENT ] Cancelling all PR tests of Blocked Users

Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

The test can still be in queue or is running when the user is added to BlockedUsers.
All these test need to be canceled that will make other tests to perform as soon as possible.

[BUG] Don't compare new commit on master against self

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

[Platform][INFO][2017-07-17 20:45:14,932] [<linux>] Reverted to CI for CI_Linux
[Platform][DEBUG][2017-07-17 20:45:14,932] Starting test 745
[Platform][DEBUG][2017-07-17 20:45:15,026] [<linux>] We will compare against the results of test 745

This should obviously not happen...

Improve the generated diff

The current diff for tests is already a nice improvement over the previous ugly one, but it still can use some improvements... For example, there's lines that are the same, but are still displayed... An option to hide those would be another nice improvement on that.

image
Only showing the changes would drastically reduce the size of some diffs, and make it easier to spot differences.

Relevant code:

[PROPOSAL][BUG] Add database upgrade mechanism

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Whenever we upgrade our database model, I still need to manually make changes in the database structure. This is rather annoying, so a migration library should be used and integrated in the upgrade process instead.

Blacklist users

Clone of CCExtractor/ccx_gitbot#3

There needs to be a blacklist so that certain users can no longer queue tests, even if they have a fork of CCExtractor. This is necessary in the case that a malicious user creates a fork with a "hanging" CCX version on it, which stalls the tests, and can cause a from of DoS on the testing platform.

To solve that, there should be a possibility to manage a list of blacklisted users, which can no longer run tests themselves (see #19), and in case they open a PR on the main fork, are no longer being tested either (but an error given). This list should be manageable through the platform site (admins only), so that users can be added and removed.

General overview of things that will need to be done for this feature:

  • Model creation
  • View/Controllers that allow admins to manage the list
  • Modification of the CI methods to take the list into account

[FEATURE] Switch to Pipenv

Sample platform commit (found at the bottom of each page) : N/A

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

As recommended by @thealphadollar in another project, we should also adopt the use of Pipenv.

See https://opensource.com/article/18/2/why-python-devs-should-use-pipenv

UI bug in test progress

In mobile, the alignment of ticks is not okay. It is fine in desktop version.need some CSS fixes.

screenshot_20170228-164352
Would you like to work on this issue?
Yes

Update assets

Some of the platform libraries we are using are somewhat outdated. We should investigate if we can upgrade them without breaking anything.

  • Foundation (currently 6.2.2, 6.4.3 is available)
  • JQuery (currently 2.2.2, 3.2.1 is the latest release)
  • Font Awesome (currently 4.5.0, 4.7.0 is available)

[PROPOSAL] Generate Build Status Badges for all build scripts and methods.

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Enable sample platform to generate a pass/fail image (preferably SVG) based on the recent commit's test result so that it can be included as image (as badge) in CCExtractor Readme file.

Brief workflow :

  • Sample Platform runs test on a commit.
  • Based on the result, certain images (Build:Success / Build:Fail) are generated at a fixed location (say sampleplatform.ccextractor.org/buildtest/results/linux-cmake.svg OR sampleplatform.ccextractor.org/buildtest/results/linux-build.svg et cetera).

It needs to generate images for all build scripts which are tested on Sample Platform.

[BUG] New push tests to Pull requests are not getting updated on Github

Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

{issue content here, replace this line with your issue content}

gh_commit and commit are null for the new synchronize push request.
We need some fix ASAP.

Handle merge/rebase conflict

The sample platform automatically updates an existing repository with the newest commits from the master version of CCExtractor. However, sometimes this gives merge conflicts. Investigate the existing code and find a solution so that this doesn't halt the platform anymore.

The rebase is currently removed (see eade2d5), but it should be coming back at some point.

[PROPOSAL] Use some AJAX to refresh the test progress

Sample platform commit (found at the bottom of each page) : 84a11af

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.
  • I am the benevolent dictator of the platform. Bow before me.

Currently you need to refresh the progress page. Especially in the beginning it would be nice to have a polling mechanism to update the page without needing to reload, and one it's testing a timer that counts down (while slow-polling for update status).

[Proposal] [Low-Priority] Report to Github even if test is in queue.

Sample platform commit (found at the bottom of each page) : 60c633a

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Just witnessed on a Windows test, that until it starts 'Preparing', the test is not reported to Github, hence it only shows Linux as test. This makes the impression that only single test is being performed. This means that while test will be in queue, Github will not be showing the test. So, report the test even if it's in queue.

Not sure if same happens when linux test is in queue.

[BUG] Comparing output of tests with spupng

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.
  • I am the benevolent dictator of the platform.

By introducing support for windows, we are permanently breaking some tests which have paths in their output files. For example, https://sampleplatform.ccextractor.org/test/708 has a fail for regression test #162 (which simply uses "-out=spupng", and compares the windows path against the linux VM's path. Either we should split up the correct answers, or we should find a way to ignore this when comparing.

Responsiveness of the platform - Pt. 1

There are some smaller issues with the responsiveness of the platform:

  • Footer has no padding towards the bottom (on smaller screens)
  • Manage my account has some margin issues
  • Hashes of samples (sha256) aren't wrapped, so they overflow.
  • Same happens to username/password of FTP upload section

[PROPOSAL] Automatically update the latest available CCExtractor version on the platform

Sample platform commit (found at the bottom of each page) : All

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am the benevolent dictator of this awesome tool.

Currently I still need to manually update the CCExtractor version whenever a new one is published. Now that we started using GitHub for releases, we can expand that webhook to also receive Release events, and then automatically updating our database.

Things that need to be done:

  • Insert the new version into the CCExtractorVersion table
  • Update all the outputs of the regression tests to use the output generated by this new version as a new baseline. Currently this is done by executing the next queries:
UPDATE regression_test_output SET correct = IFNULL((SELECT got FROM test_result_file WHERE regression_test_output_id = id AND test_id = 1335), correct);
UPDATE regression_test SET expected_rc = (SELECT exit_code FROM test_result WHERE regression_test_id = id AND test_id = 1335);

[BUG] Recursion error when one side is empty

Sample platform commit (found at the bottom of each page) : Any

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am the benevolent dictator of this platform.

The comparison script that generates the html diffs between versions cannot handle it when one side is empty and throws a recursion error. A check for this should be added.

[BUG] Installer issues

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

  • Installer can block on the installation of nginx, python, pip, kvm, libvirt and virt-manager, when it's asking for the default keyboard mapping.
  • easy_install of setuptools can fail. Better be using pip install --upgrade setuptools
  • pip install can fail if libxml development libs are missing (libxml2-dev & libxslt1-dev).
  • mysql_config_editor is not always present. We need to search for alternatives.

[PROPOSAL] Option to enable/disable "maintenance mode" on CI VM's

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

Currently there's a cron running every x minutes, shutting off a VM if it's running when not supposed to. This is good behaviour, except when we're doing maintenance or debugging on it.

A switch on the platform's admin section should be added to toggle maintenance mode for a certain VM, allowing the cron to ignore it, and preventing new jobs on said machine to be started.

Adjust the platform for non-zero exit codes

When CCExtractor/ccextractor#553 get's merged, several tests on the platform will break, because they expect a return 0 with an empty file, while the return code will be 10 and no file at all.

The platform needs adjustment so you can define an expected exit code for a test, and then the actual return code needs to be checked against this.

Relevant sections:

pep8 conflicts with log_configuration.py

Some conflicts with log_configuration file

  1. log_configuration.py:5:1: E302 expected 2 blank lines, found 1
  2. log_configuration.py:19:8: E101 indentation contains mixed spaces and tabs
  3. log_configuration.py:19:8: W191 indentation contains tabs
  4. log_configuration.py:19:65: W291 trailing whitespace
  5. log_configuration.py:20:1: E101 indentation contains mixed spaces and tabs
  6. log_configuration.py:20:1: W191 indentation contains tabs
  7. log_configuration.py:21:1: E101 indentation contains mixed spaces and tabs

I would want to send 1 PR.
Thanks

[FEATURE] Comment on the opened PR if a test fails

Sample platform commit (found at the bottom of each page) : Any

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am the benevolent dictator of this platform.

Upon request:

A comment like "Your PR breaks this case: ccextractor -in -mp4 bla bla"... you can download the sample here

[BUG] [Windows CI] Error status does not get posted

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

When the Windows machine fails to complete, it's not sending the appropriate error message back to the platform. This is most likely caused by the shutdown command starting to shut down everything instead of giving the curl time to submit the data.

Display estimated time indication for queue

Clone of CCExtractor/ccx_gitbot#4

Currently the test page (for a given id) just displays

This test is still in the queue! Please check again later.

This should be improved to show how many other tests are in the queue before you, and it should also show an estimate of how long that'll take before the test gets started (we have start + end time available of previous tests)

Expected: a PEP-8 compliant PR.

Single to Multi-category

The current set up of the table holding the regression tests only can handle a single category per test. However, the database can handle multiple categories per test. Your job is to modify the javascript and html code so that the table can handle the multi-category tests.

Code snippets:

Responsiveness of the platform - pt. 2

There are some smaller issues with the responsiveness of the platform:

  • On mobile, the dropdown for the categories is too wide. Better styling is needed
  • The table of latest tests isn't any good on mobile (maybe we should use a responsive table plugin?) (fixed in #45)
  • Input type of login email field should be email instead of text (fixed in #43)

Sample Platform Installation Requirements on windows Missing

Needs to add installation requirements of sample platform server on windows
Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].

Sample platform commit (found at the bottom of each page) : X.X.X

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

{issue content here, replace this line with your issue content}

[BUG] [Windows CI] Missing log upload

In raising this issue, I confirm the following (please check boxes, eg [X]):

  • I have read and understood the contributors guide.
  • I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
  • I have checked that the issue I'm posting isn't already reported.
  • I have checked that the issue I'm porting isn't already solved and no duplicates exist in closed issues and in opened issues
  • I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.

My familiarity with the project is as follows (check one, eg [X]):

  • I have never visited/used the platform.
  • I have used the platform just a couple of times.
  • I have used the platform extensively, but have not contributed previously.
  • I am an active contributor to the platform.

On Windows, in contrast to the Linux CI, there is no option foreseen to upload the log files in case of a build failure. This should be fixed, so that in case of errors, the log file can be checked on.

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.