MarkUs Blog

MarkUs Developers Blog About Their Project

Archive for October, 2013

Status Report – Week of Oct. 28

without comments

William

Status

  • Researched and started making test projects for git-svn interactions. Discovered that git-svn can only make git repos, if we are to proceed with git-svn we would need a new authentication system because of the git repos. A new approach for the repositories in MarkUs is needed.
  • Had a meeting with Daniyal and Dylan about what we have learned about how Git and SVN interact, and how we should proceed with the repositories.
  • Started working on a Git implementation for MarkUs, working on installing libgit2 (http://libgit2.github.com/).

Roadblocks

Next Week

  • Work on installing libgit2 and writing an installation guide for the Daniyal and Dylan and/or MarkUs Wiki
  • Update the bundler for rugged (https://github.com/libgit2/rugged) and libgit2
  • Make sure git bindings work for ruby versions 1.8.7, 1.9.3, and 2.0

Dylan

Status

  • I looked more into the svn/git problem.
  • Met with Daniyall and Bill on IRC to discuss what we had found.
  • Got a new computer so I spent some time getting my environments back.

Roadblocks

  • Days are too short.

Next week

  • Research the authentication scheme used currently by SVN.

Xiang

Status

  • Improved the Summaries table columns by dynamically producing columns according to the marking rubric for a particular assignment.
  • Came up with a working method to provide sorting function for each marking criterion, avoiding repetition of code as the same time.

Roadblocks

  •  Still need to dig some more into Rails and Javascript to find possibly better solutions for the problem and further improve the summaries tab.

Next week

  • Write detailed description of the problem and current solution
  • keep looking for better solutions (possibly focusing on Javascript/Jquery)

Arianne

Status

  • I’m almost finished working on issue-1194.
    • Adding positions to grade_entry_items:
    • Positions are updating reliably, nothing is ever out of order if it saved properly
    • Needed to change some functionality on model validation for this to work:
    •     columns with empty names don’t get saved
    •     columns with empty out_of marks get a default value of 1 (can change this to 0, whatever makes most sense)
    •     columns with duplicate names get saved but have ‘(rename)’ appended to their name
    •     adding two columns at the same time that have the same name give a runtime error (i think it always did this anyways)
    •     this was all needed because if updating the model with all items didn’t work, then we’d lose all the position data from before because the page would refresh and any unsaved columns would lose their ordering
  • Uploading from CSV:
    • Feedback please! I can either have all un-uploaded columns deleted or keep all old ones and add just any new ones. If that’s the case, should the uploaded ones be inserted before or after the original ones?
  • Fixed adding grades:
    •    Ties grade to column name now
    •    Doesn’t save grades that are nil, “”
    •    Deletes old grades that are now nil
    •    Grades that aren’t valid (strings) will cause the whole row to not save (as before)

Issues

  • RuntimeError.message isn’t working anymore: saying can’t convert to String

Next Week

  • Write tests!
  • Finish working on csv upload
  • Finally start on something new

Daniyal

Status

  • Researched how repositories are handled in MarkUs. Particularly, how authentication is done.
  • Met with Dylan and Bill to discuss current issues and goals for next week.

Roadblocks

  • Does not look like we can remove SVN bindings by having git interact with SVN since git cannot create SVN repositories.
  • Git will require a authentication system.

Next week

  • Work with Dylan and understand how authentication is currently done.
  • Figure out some of the details of what would need to be done for the new authentication system.

Written by Daniyal Liaqat

October 28th, 2013 at 12:19 pm

Posted in Status Reports

Punchlines ECN – 27/10/2013

without comments

François

Status

– Tried for the third time to install MarkUs

– Self-training on Javascript

Roadblocks

– Markus has not been installed on my computer yet

Next Week

– Spend some time to understand Prototype and jQuery APIs

– Translate some Prototype function into jQuery ones

– Finish MarkUs installation

 

Augustin

Status

–  I was so busy and haven’t worked as planned

Roadblocks

– need to understand better Prototype and jQuery

Next Week

– Technical self-training about Prototype and jQuery

– Development: migration work with Hamid according to Loïc repartition

 

Julien

Status

– working on the translation from prototype to jQuery for some functions

Roadblocks

– Not familiar with the different languages used

Next Week

– Start the migration to give my first patch

 

Loïc

Status

– I have divided work for the team

Roadblocks

– Not really familiar with the different languages used

Next Week

– Self-training about various languages used

– Start work on first files for the first patch

 

Anthony

Status

– Tried to install MarkUs with the virtual machine

– Read tutorial on JQuery

Roadblocks

– Markus has not been installed on my computer yet

Next Week

– Install Markus without the virtual machine

– Read others tutorials on JQuery and Prototype

Written by Loïc Labagnara

October 27th, 2013 at 10:37 am

Punchlines ECN – 21/10/2013

without comments

Augustin

Status

– participated to MarkUs specifications redaction for our group project, especially on:

        – Introduction/Context

        – Listing MarkUs files we will have to migrate from Prototype to jQuery, focusing on api, assignments, automated-tests and flexible_criteria folders inside app>views

– spent some time to understand Prototype and jQuery APIs.

Roadblocks

– Limited understand of MarkUs files architecture, I’m not used to work on software repositories.

Next Week

– Technical self training

– Development: work on folder app/views

 

Hamid

Status

– Reinstallation of MarkUs on my computer

– Participated to MarkUs specifications redaction for our group project, especially on:

               – NEEDS ANALYSIS

               – Listing MarkUs files we will have to migrate from Prototype to jQuery. Especially Files  app/views/admin -> annotations  and in public/javascripts/Bluff & ajax_paginate.js -> create_assignment.js

 

Roadblocks

– Installation of MarkUs

Next week

– Moving the first files from prototype to jQuery

Anthony

Status

– participated to MarkUs specifications redaction for our group project, especially on:

        – Procedures

        – Listing MarkUs files we will have to migrate from Prototype to jQuery inside app>views (from grade_entry_forms to layout)

Roadblocks

– Markus is not installed yet on my computer

Next Week

– Spend some time to understand Prototype and jQuery APIs

– Finish markus installation

 

François

Status

– participated to MarkUs specifications redaction for our group project, especially on:

        – Planning

        – Listing MarkUs files we will have to migrate from Prototype to jQuery

Roadblocks

– Markus is not installed yet on my computer

 Next Week

– Spend some time to understand Prototype and jQuery APIs

– Translate some Prototype function into jQuery ones

– Finish MarkUs installation

Julien

Status

– participated to MarkUs specifications redaction for our group project, especially on:

       – Procedures

       – Listing MarkUs files we will have to migrate from Prototype to jQuery into :

                     – app/views/submission_rules -> app/views/users

                     – app/asset/javascripts/Students/edit.js -> app/asset/javascripts/users_manager.js

Roadblocks

– Not familiar with the different languages used

 Next Week

– Start the migration

– Follow some tutorials to understand languages

 

Loïc

Status

– participated to MarkUs specifications redaction for our group project to move from Prototype to jQuery:

                 – Organisation

                 – Listing MarkUs files we will have to migrate from Prototype to jQuery.

                    Especially Files  app/views/main -> app/views/results  and in app/assets/Groups -> PeriodDeltaChain

Roadblocks

– Not familiar with the different languages used

Next Week

– Follow some tutorials to understand languages

– Moving the first files from prototype to jQuery

 

Written by Loïc Labagnara

October 21st, 2013 at 8:34 am

MarkUs Repository Animation

without comments

I came across a tool called Gource that creates a visualization for a Git, SVN, CVS or Mercurial repository. I thought it would be interesting to see how Markus has evolved over the years. This animation shows files being created, edited and deleted as well as the people making the changes.

Video Link: Markus Gource

Written by Daniyal Liaqat

October 17th, 2013 at 4:01 pm

Posted in Uncategorized

Status Report – Week of Oct. 7

with one comment

William

Status

 – researched potential solutions for replacing SVN bindings
 – working on blog post explaining solutions SVN bindings for blog.markusproject.org
 – spent a small amount of time learning how SVN is implemented inside MarkUs

Roadblocks

 – Limited understand of how SVN is implement in MarkUs
 – Little idea of where to start working on the binding replacement

Next Week

 – Finish and publish blog post on replacing SVN bindings
 – try to speak to other MarkUs developers on the best approach for how to replace the bindings (with Dylan and Daniyal)
 – potential work on an easy issue ticket, likely issue-323 (https://github.com/MarkUsProject/Markus/issues/323).

Dylan

Status

– Researched solutions for the SVN/Git bindings issue.
– Collaborated with William and Daniyal on how to go about solving the SVN/Git issue.
– Contributed to the blog post to do with the SVN/Git issue
– Spent some time working on issue-999. Still haven’t gotten a hang of rspec/shoulda…

Roadblocks

– Not experienced with SVN, took some work to understand how all the parts like bindings fit together.
– rspec/shoulda are still confusing to me.

Next week

– Finally put issue-999 to rest.
– continue to work with Bill and Daniyal on the SVN/Git issue.

Xiang

Status

I continued to work on the new summary page this week. I got a table with a simple layout and basically all the required data  popped into the table. I am having some issues with the details such as sorting by the new columns and I am working on it. Hopefully I will be able to resolve them and get to more detailed specifications next week.

Arianne

Status

This was my first week really working on understanding the project. I’m still working on ticket 1194: grade entry items should stay in the position they’re added by the user and not get sorted automatically.

https://github.com/MarkUsProject/Markus/issues/1194

I’ve fixed the csv upload so that the order of columns is the same and the grades match up.

Feedback request: if there are grade entry items in the form already that are not in the uploaded csv file, should the extra columns be deleted or should they stay in the form? Ie, should the uploaded csv replace everything already in the form or should existing items be merged somehow (and how… columns with same name replaced and all others just left in? This was quite broken before, so what is the ideal function of upload csv?)

I’ve run into a problem with adding the correct position to grade entry items from the user interface. The main issue is that the attributes to update are sent as a hash and there is no specific order that the updates are done in. I sent an email to markus-dev outlining the problem and asking for feedback.

I’ve looked through a few possible solutions but many of them don’t work for one reason or another. Right now I’m trying to figure out how much more to work on this ticket to finish it up or to move onto something else altogether.

Most important things I’ve learned this week:
Active record associations: http://guides.rubyonrails.org/association_basics.html
Active record callbacks: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
Active record migrations: http://guides.rubyonrails.org/migrations.html
Form helpers: http://guides.rubyonrails.org/form_helpers.html

Daniyal

I’ve been extremely busy this past week, so I haven’t been able to contribute as much as I’d like. I’ve looked over lib/repos and am figuring out what sort of changes we would have to make for each solution. I will try to post my findings as a reply on your post if I can otherwise I will email you in the next few days.

I’m looking forward to starting coding after a bit more discussion on the different solutions.

Written by Dylan Runkel

October 15th, 2013 at 7:07 pm

Posted in Status Reports

Diminishing SVN Ruby Binding Support

without comments

There has been a decline in support for Subversion Ruby bindings as of late. This reduced support is slowing the progression of MarkUs to run on the most recent versions of Ruby and Ruby on Rails.  To stay up to date, MarkUs is going to need to move away from using Subversion Ruby bindings and move towards an alternative. Thus far, there are 3 proposed solutions to this problem:

Solution 1:

The Subversion bindings are needed for MarkUs to interact with the SVN repos that it manages. This solution would replace the SVN bindings with Git bindings while retaining the SVN repos. Git Ruby bindings are widely supported and updated and are said to interact well with Subversion repositories. In order to use Git bindings, libgit2 (link) and the Ruby gem Rugged (link) will need to be installed for MarkUs to make use of Git functions. Libgit2 and Rugged are common programs found in many larger applications (such as GitHub) and thus there is a better chance of long-term support.

Solution 2:

With the diminished support of Subversion as a whole, it would be worth considering replacing SVN completely within MarkUs with Git. This would require the replacement of the SVN bindings and the SVN repos with Git bindings and repos. There is a catch with replacing the SVN repos. Git does not use the same style of repo authorization that SVN does, there is nothing to prevent a MarkUs user from accessing another user’s Git repo(s). The solution for this is to install the Git authorization assistant gitolite (link). Gitolite will implement a ssh key pair system for MarkUs user’s to access their repos. MarkUs Admin’s will manage which students have access to which repos and students will manage which key pairs are bound to their account. Gitolite is used in many applications (again GitHub), and could be a good solution to this problem.

Solution 3:

Solution 3 is a hybrid solution of solution 1 and 2. For this solution MarkUs would first have the SVN Ruby bindings replaced by Git bindings and maintain its SVN repos (just like solution 1) and would require the same issue working as the first solution. Once the SVN bindings are replaced MarkUs can then add (in addition to SVN repos) Git repositories like solution 2, again with the same process as the second solution. The idea behind this solution is that MarkUs would eventually support both SVN and Git for version control and would allow the MarkUs admins to decide which they would prefer their students to work with. Not all schools teach SVN and not all schools teach Git, this would allow MarkUs a broader reach to assignment markers. Because of the high level of modularity required to support both SVN and Git concurrently, it could be possible for MarkUs to support addition version control systems (such as Mercurial Or CVS) in the future.

These are the solutions that there were brainstormed. If anyone has any solutions, information, direction, ideas, and/or helpful tips as how to proceed, please comment or message the MarkUs-Devs.

(Special thanks to Bill for writing this up!)

Additional Info:

IRC logs from the brainstorming session

Written by Dylan Runkel

October 15th, 2013 at 10:15 am