Archive for January, 2012
- Reading a Ruby On Rails Tutorial
- Going on the reading
- Install of last year’s code from Benjamin Thorent and Shion Kashamura
- Familiarization with the code, and Markus and RoR in general
- Wrote down the state of the art as requested by Guillaume Moreau.
- Publishing an article on the EAT-TICE blog;
- Correcting the state of the art to include Guillaume Moreau’s indications.
- Continue discovering MarkUs code and Ruby on Rails framework
- Correcting the code/image reader bug.
- Difficulties to find the cause of the code/image reader bug.
-> See with Benjamin or Nelle for some help.
- set up MarkUs and all reqs on my home machine.
- tested 616: Unable to reproduce on sandbox, but able to reproduce on demo site after running the exact same scenario. I believe this should be closed.
- worked on 342: Have fixed the bug described in “issue description”, but Severin and Tobi want me to change other similar occurrences.
- worked on 586: Have fixed part of the problem and identified the exact line and reason for the main problem, but unable to finish due to my relative inexperience with the code and the hacky technique used. Will look over again and may have to rewrite the function in fault.
- finished 175: Waiting on review. Just realized that this bug does not have a milestone associated with it, so it should not have been my priority.
- first priority is to close off the aforementioned issues assigned to me.
- second priority is to pick out and work through the “highest priority” bugs as posted by Tobi in the blog.
- waiting on Luke Kysow to reply to #586, otherwise I will be working on rewriting the “process_assignment_form” function in the assignments_controller ( may be hard ) to make it more by the book.
- Learn about the new Markus post “How to use git with MarkUs” and RoR tutorial
- Issue#320 is under review
- Investigate issue#402
- Have issue#320 shipped
- Fix issue#402
- Productivity may be affected by an expected intensive workload of other courses in the following week
- Updated the wiki so it has the command to download the mysql-server which was missing. Still need to figure out how to get it on review board.
- I noticed that the “Notes” link wasn’t working anymore on the Grader’s annotation page. So Sean, Aimen and I are working on it. Sean has posted a bug report in issues. It’s issue #620
- I’ve started to work on issue #602 which is a similar issue to #620. It is also a Rails3 issue which is one of the urgent Rails3 issues.
- Read more on Ruby syntax.
- Learn more about the routes.rb file as it could be a major cause of the issue that I’m working on.
- Post my wiki changes on the github wiki.
- Got some problem when I pulled the entire wiki from upstream. So now one of my other branch has the wiki with changes and my master branch has no wiki documents (but I did pull from it).
- Wrote a blog post about git and how we use it in MarkUs
- Bug triaging
- Fixed #428, it went through review and I’ve just made a pull request.
- Minor fixes to locale format, noticed it while working on #428
- Working on #441, reading up on the major changes between Rails2 and 3 along the way.
- Finish off #441
- Hack away at some Rails3 issue
- Carry out some more reviews!
- Sick 🙁
- A midterm next week…already!
Shipped issue #405
Working through RoR tutorial
- Solution proposed for #298 has been okay’ed by lead dev
- Collecting information and gaining understanding of the code base to implement solution for issue #298
Continue on my progress through the RoR tutorial
Continue on my progress with issue #298, get it to review stage by the end of the week
Midterm this coming Thursday, course assignment due Friday, will be a busy week
Finished issue 326 and submitted pull request
Finished issue 611 and submitted pull request
Helped review some of the review requests on RB where I had input
- Took issue 404 which is one of the priority ones listed in the Rails 3 issues post, will work on this
- Some stumbles with Git, mostly with me not keeping pace before submitting a codereview. Lesson learned …
- went through ch4 & ch5 of Ruby on Rails Tutorial
- encountered errors upon pulling commit695464f, found out that this is due to a schema change that can be fixed by running bundle exec rake db:migrate after consulting team members on the IRC channel.
- db:migrate fails, and rake aborted because the wrong version of rake and rails were being used (rake-0.9.2.2 and rails3.2.1, when rake-0.9.2 and rails 3.0.10 were needed)
- somehow local Gemfile.lock had the newer versions of rake and rails specified, deleted local file, replaced with file from github, uninstalled all gems, reinstalled gems using bundle and finally db:migrate worked.
- worked on issue#382: adapting this (http://clearcove.ca/blog/
2009/09/rails-cookie-) cookie detection code for rails 3 detection/
- figure out issue#382
- trying to figure out the cookie detection code. What it should do is attempt to read a cookie file called “cookie_test”. If it’s blank, then it attempts to write it before reading it back. If it’s still blank then cookies are disabled, and it redirects the user to a “please enable cookies” page. Currently it is able to write the cookie file if it is blank, but I cannot figure out how to route to the “please enable cookies page”, which I created in app/views/shared/cookies_required.html.erb
Triaged Rails 3 tbugs that should be fixed first and wrote a blog post
Fixed issue 468 and about to put up a review request
Started issue 434
Wrote UCOSP blog post about experience at the code sprint
- Closing issue 434
- Fixing some more Rails 3 bugs
- Fixed issue 386, which is related to Internationalization
- Submitted for Review
- Learnt How to do a Pull Request for a fixed issue
- Working on an other issue with Jay and Sean, which is related to the broken Notes link on the Grader’s Annotation page. We believe that the issue is caused due to the change from Rails 2 to Rails 3.
- Update Wiki on how to Download MySql GUI on Snow Leopard.
- Started reading through some ruby tutorials, as well as some of the MarkUs code.
- Picked up issue (#617).
- Had a Google-Hangout meeting with Jay and Aimen to work through some problems and ideas. We found one new issue, wich i posted.
- Work through issue (#617), get it up on Review Board, get it shipped!
- Find more issues to work on, possibly working in cooperation with others.
- Learn more, read more code.
- None at this time.
Karen, Danesh and I spent some time triaging and updating the bugs caused by migrating to Rails 3. All the findings have been noted below. Any feedback will be appreciated.
- 603 (General)
- 468 (Tobi working on this)
- 404 :Tested and the fix seems to be straight forward easy fix. Except for when the link_to_remote opens a popup in which case both the name of the function and the path to the action in the given controller will have to be used. The About popup is a good example.
- 608 & 575: Major issues to be looked at by core devs
- 602: Rails routing issue that is still reproducible. See the comments on the bug.
- 500: Currently being investigated by two students in France.
- 475: Replacing prototype_legacy. Major issue that needs more investigation as the current prototype library we are using is deprecated.
- 441: (Danesh is working on this)
- 438 & 439: Duplicate issue both have been closed as the problem is no longer reproducible. It was fixed with review at http://review.markusproject.org/r/1137/
- 402: Tested and commented, is very straight forward.
- 428: Broken case found. See issue comment
- 434: Still reproducible. See issue comment.
Here’s a simple rundown of some commands Tobi and I came up with in preparation for the sprint. You can use these to contribute to MarkUs. This post assumes you have already set up a github account and an ssh public key that you will be using later on.
Setting up MarkUs
- Visit the upstream repo on github and select “Fork”. This will create a clone of the repository on your github account.
- From your fork, copy the URL that allows you to access it using SSH.
- Run the following command in terminal using the URL you just copied.
$ git clone firstname.lastname@example.org:YOUR_GIT_USERNAME/Markus.git
- Next, create a remote to the master repository of MarkUs upstream. This will be used to keep your local copy up to date.
$ git remote add markus-upstream git://github.com/MarkUsProject/Markus.git
- Make sure the remote was added.
$ git remote -v
You should see “markus-upstream” and “origin”.
Note the remote origin, it should point to the SSH URL you cloned with. If this URL contains “https”, then you have not cloned using SSH. Run the following command to change it to the URL used when cloning (see above).
$ git remote set-url origin email@example.com:YOUR_GIT_USERNAME/Markus.git
From the MarkUs root directory in a terminal, run the following commands:
- Create a branch
$ git branch issue-1234
$ git checkout issue-1234
- Modify the files with the changes you want to implement. Let’s say I’ve modified Changelog and config.ru with the most amazing fix for issue 1234!
- Take a look at the files you have modified
$ git status
- Then commit these changes
$ git add Changelog config.ru
$ git commit -m "FIX for issue 1234, implemented awesome function."
- Before setting up a review request, make sure your issue and master branches are up to date (see below), making sure the changesets you just pulled in do not affect your code. Once they are, setup a review request.
$ git push origin issue-1234
Go to your github fork and change to your issue branch. You should see the button “Pull Request” (right by the button to fork). In the write fill, fill it in with the issue number, quick summary of the issue, desciption of the fix and what testing was performed.
Keeping your local clone up to date
- First, make sure you have already set up your upstream remote. Note, mine is called "markus-upstream". Substitute your remote name whenever you see this. Run the following commands from terminal.
- To update your local master branch
$ git checkout master $ git pull markus-upstream master
- To integrate these changes into your current issue branch
$ git checkout issue-1234 $ git merge/rebase master
Some useful commands
- Setup your git configuration settings.
$ git config --global user.name "First-name Last-name" $ git config --global user.email "firstname.lastname@example.org"
View what changes you have made on branch "issue-1234"
$ git diff --full-index master issue-1234
- Temporarily put your changes aside to have a cleanly tracked branch
$ git stashBring these changes back (even onto another branch, as long as it is within the same repository)
$ git stash pop
- Remove all changes made to a specific file. Let's say I no longer want the changes I've made to app/models/membership.rb
$ git checkout app/models/membership.rb
- Revert all changes made to the current branch (WARNING: All changes will be lost).
$ git reset --hard HEAD
- Once your branch, issue1234, has been integrated into master, you might want to delete it.
$ git branch -d issue1234 $ git push origin :issue1234
- You might want to see who added/modified a line last, and what other changes they brought in with that changeset.
$ git blame config/routes.rb This might be easier to do directly on github though! Here's an example.
This semester’s MarkUs team will be meeting weekly on IRC (freenode’s #markus channel) on Mondays at 9 p.m. (EST). Each Sunday before the meeting, every team member must submit a punchline to the person collecting them that week. Punchlines are short, simple reports that tell us how everybody is doing. They should be published as a blog post, latest by Sunday night. It is every team member’s responsibility to email out their punchline before the blog post goes up and to read through this post before the meeting.
During the meetings themselves, someone else will be taking note of the minutes of the meeting. These are simple notes on what is happening every few minutes during the meeting. See former blog posts for examples of punchlines and minutes!
Here’s this semester’s schedule – mark it down in your calendars!
- Jan 30 – punchlines: Danesh, minutes: Tobi
- Feb 6 – punchlines: Tobi, minutes: Aimen
- Feb 13 – punchlines: Aimen, minutes: Sky
- Feb 20 – punchlines: Sky, minutes: Jay
- Feb 27 – punchlines: Jay, minutes: Hanson
- Mar 5 – punchlines: Hanson, minutes: Sean
- Mar 12 – punchlines: Sean, minutes: Christine
- Mar 19 – punchlines: Christine, minutes: Egor
- Mar 26 – punchlines: Egor, minutes: Aaron
- Apr 2 – punchlines: Aaron, minutes: Danesh
- Post-mortem (Date TBD) – Goodbyes
- Read the whole one-year-old Markus Project report (90 pages)
- About to finish writting of the functional requirement document
- Divided the project into 4 main steps to accurately and easily measure the advancement.
- Read documentation about Markus and plagiarism programms
- Reading of last year’s report about the subject
- Writing of the book of spécifications
- Reading more about how Markus works
- Read documentation about Ruby on Rails;
- Discovered MarkUs code;
- Fixed bug on link for submission editing.
- Correcting the code/image reader bug.
- Wrote down the Functional Requirement Document;
- Translated it to English.
- Redacting the state of the art as requested by Guillaume Moreau;
- Publishing an article on the EAT-TICE blog.
- MarkUs fully installed
- Thursday meeting with Benjamin Vialle: presentation of MarkUs in general and the outlines of the PDF project.
- Writing down the Functional Requirements Document (FRD) for our PDF issue
- Acquainted myself with Markus in general;
- Spoke with Nicolas about last Thursday meeting, that I was unfortunately unable to attend.
- Writing down the Functional Requirements Document (FRD) for our PDF issue