Difference between revisions of "Newbie Guide for Windows People Working on Minor Bugs"

From Dreamwidth Notes
Redirect page
Jump to: navigation, search
(+ naming convention on Bugzilla)
 
(194 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Note|text=I'm a newbie. I'm editing this as I'm learning new things or better ways to do what I know how to do. Feel free to suggest, correct, expand, add, anything that could make this better and clearer. ^_^}}
+
#REDIRECT [[Newbie_Guide:_Getting_Started_on_Windows]]
 
+
 
+
= Install and Set Things Up =
+
 
+
You'll only have to do this once.
+
 
+
 
+
== Get a Dreamhack and PuTTY ==
+
 
+
What's a Dreamhack? To put it simply, it's a mirror of the Dreamwidth site where you can test your changes.
+
 
+
* Apply for a Dreamhack by [http://hack.dreamwidth.net/apply.shtml filling this form].
+
 
+
* Get [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] - choose the 'Windows installer for everything except PuTTYtel' .exe file - and install it.
+
 
+
* Run PuTTY. In the configuration window, enter "hack.dreamwidth.net" for the host name. Go to Connection/Data and enter the username/login given to you in the welcome e-mail. It should be something like dh-username.
+
 
+
: You may also want to change the Window/Appearance, Window/Colours and Window/Selection settings.
+
 
+
: Once you're done, go back to Session. Select Default Settings and click on Save.
+
 
+
* Click on Open. Click Yes on the pop-up message box.
+
 
+
* Enter the password given to you in the welcome e-mail when asked. Note that no characters are displayed and the cursor won't move. It's normal.
+
 
+
* Change your password by typing: <source lang="bash">passwd</source>
+
 
+
* On your Dreamhack, the default user is called 'system'. You need to set its password so you can access this account. Type: <source lang="bash">$LJHOME/bin/upgrading/make_system.pl</source>
+
 
+
* Once you're done type: <source lang="bash">start-apache</source>
+
 
+
* You can now access your Dreamhack at [http://yourusername.hack.dreamwidth.net/ http://yourusername.hack.dreamwidth.net/] and log in as 'system'.
+
 
+
 
+
== Install WinSCP ==
+
 
+
What for? WinSCP will allow you to see and edit the files of your Dreamhack. You'll use it to edit the theme/layout files.
+
 
+
* Install [http://winscp.net/eng/download.php WinSCP]. I chose the Explorer mode because I don't need to access any files on my computer but choose what's best for you.
+
 
+
* Use "hack.dreamwidth.net" for the host name. Enter your username and password. Click on Save then on Login.
+
 
+
 
+
== Set Up Your Dreamhack ==
+
 
+
Again?! Yes. This part is long and tedious but you need to do it. It will make everything easier afterwards.
+
 
+
* Follow the steps outlined at [[Dreamhack_getting_started#Back_up_your_configs|Back Up Your Configs]].
+
 
+
: N.B. To create files, go to WinSCP, go to the right directory, right-click on New/File and edit.
+
 
+
* Create the <em>dwu</em>, <em>dws</em> and <em>dwdb</em> scripts as explained in [[Dev_Maintenance#Scripting|Scripting]].
+
 
+
* Now you can easily create other accounts with different levels to make testing easier on your Dreamhack:
+
 
+
: Go to <code>cvs/local/etc/</code> and open <code>config.pl</code>. Find <code>$USE_ACCT_CODES = 1;</code> and change 1 to <code>0</code>. Save your file. This will get rid of invite codes.
+
 
+
: In PuTTY, type this to make the changes go live on your Dreamhack:
+
<source lang="bash">cd $LJHOME
+
stop-apache
+
dws
+
dwdb
+
start-apache</source>
+
 
+
: Log in onto your Dreamhack and go to [http://yourusername.hack.dreamwidth.net/create http://yourusername.hack.dreamwidth.net/create] to create more accounts.
+
 
+
: Go to [http://yourusername.hack.dreamwidth.net/admin/pay http://yourusername.hack.dreamwidth.net/admin/pay] to give paid time to an account or make it a seed one.
+
 
+
* The last step is to create a directory where your patches will be put into:
+
 
+
: In PuTTY, type this then Enter:
+
<source lang="bash">cd $LJHOME/cvs/dw-free
+
hg qinit -c</source>
+
 
+
The newly created directory is: <code>~/dw/csv/dw-free/.hg/patches/</code>
+
 
+
* Do the same thing with dw-nonfree if you're working with non-free code (if you don't know yet you can always do that later):
+
<source lang="bash">cd $LJHOME/cvs/dw-nonfree
+
hg qinit -c</source>
+
 
+
The directory is: <code>~/dw/csv/dw-nonfree/.hg/patches/</code>
+
 
+
 
+
== Create a Bugzilla account ==
+
 
+
Simply [http://bugs.dwscoalition.org/createaccount.cgi click here].
+
 
+
: As <dwuser>mark</dwuser> explained [http://dw-dev.dreamwidth.org/17146.html here], go to [http://bugs.dwscoalition.org/userprefs.cgi?tab=account User Preferences] and enter your name following this format: <code>Name [:username]</code>. 'Name' can be your real-like name, a nickname, your username or any name you want. You don't have to enter your real name if you don't want to.
+
 
+
 
+
= How All of This Works =
+
 
+
* Your Dreamhack has two parts:
+
** the live part (<code>~/dw/*</code>)
+
** two main repository parts (<code>~/dw/cvs/dw-free/*</code> and <code>~/dw/cvs/dw-nonfree/*</code>).
+
 
+
* What you see on [http://yourusername.hack.dreamwidth.net/ http://yourusername.hack.dreamwidth.net/] is the live part.
+
 
+
* But you work with the repositories: you edit repository files and you create patches in repository folders.
+
 
+
* To test your changes, you need to make the live part match the repository parts. To do that, you use the 'synchronize' and 'update database' scripts you've created earlier:
+
<source lang="bash">cd $LJHOME
+
stop-apache
+
dws
+
dwdb
+
start-apache</source>
+
 
+
* Code is committed by other users all the time. You mustn't forget to regularly update your repositories by running the 'update' script:
+
<source lang="bash">cd $LJHOME
+
stop-apache
+
dwu
+
start-apache</source>
+
 
+
Of course, you'll have to run <code>dws</code> and <code>dwdb</code> again after that. You'll do this often. :)
+
 
+
* To edit files, you use WinSCP.
+
 
+
* To create patches and update code, you use PuTTY.
+
 
+
* To find bugs, file bugs, upload patches, you use [http://bugs.dwscoalition.org/ Bugzilla].
+
 
+
 
+
= Before You Fix Anything =
+
 
+
 
+
== Find or File a Bug ==
+
 
+
* To find: you can use [http://bugs.dwscoalition.org/userprefs.cgi?tab=saved-searches predefined searches] such as [http://bugs.dwscoalition.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=unassigned%20effort-minor&sharer_id=2 unassigned effort-minor].
+
 
+
: Some of these bugs won't appear to require 'minor' effort to you. It's normal. Try to find small bugs among them: minor modifications to be done on one of the site pages (text to be modified; elements to be added, removed or moved; elements to be hidden from some categories of users, etc.).
+
 
+
* To file: make sure it's not already been filed using [http://bugs.dwscoalition.org/query.cgi?format=specific simple search] or [http://bugs.dwscoalition.org/query.cgi?format=advanced advanced search] then [http://bugs.dwscoalition.org/enter_bug.cgi?product=Dreamwidth%20Development use this form] to file a new bug. Fill and edit the fields as needed and don't forget to enter your e-mail address in Assign To and set the status to Assigned if you want to fix it. It's also ok to file a bug you know you're not going to be able to fix. Just leave it as New.
+
 
+
 
+
== Create a Patch ==
+
 
+
* First make sure nobody's working on the files you want to edit. If there are already patches up for review/commit, you may need to first [[#Import a Patch|import and apply these patches to your Dreamhack]] to avoid conflicts. You can see patches up for commit by [http://bugs.dwscoalition.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=needs-commit&sharer_id=2 clicking here]. You can also wait for them to be committed if you don't want to go to the trouble of importing other patches. There's no rush. :)
+
 
+
* Open PuTTY and update everything. You need to work with the latest code.
+
 
+
* Go to dw-free by typing this then Enter:
+
<source lang="bash">cd $LJHOME
+
tocvs</source>
+
 
+
: To go to dw-nonfree, type this then Enter:
+
<source lang="bash">cd $LJHOME
+
tocvs n</source>
+
 
+
* Create a new patch by typing this then Enter (change NUMBER and PATCHNAME of course):
+
<source lang="bash">hg qnew -g bugNUMBER_PATCHNAME.diff</source>
+
 
+
 
+
== Import a Patch ==
+
 
+
* Go to [http://bugs.dwscoalition.org/ Bugzilla], open the bug, click on the patch. Copy its URL.
+
 
+
* In PuTTY, go to dw-free:
+
<source lang="bash">cd $LJHOME
+
tocvs</source>
+
 
+
* Then type this to import the patch:
+
<source lang="bash">wget -O patch URL</source>
+
 
+
: This will put the patch in <code>~/dw/csv/dw-free/</code> and name it 'patch'.
+
 
+
* Type this to apply the patch:
+
<source lang="bash">patch -p1 < patch</source>
+
 
+
* Synchronize your live code (as explained [[#How All of This Works|above]]).
+
 
+
* To go back to the default code:
+
<source lang="bash">hg update -C</source>
+
 
+
: Synchronize your live code again.
+
 
+
 
+
= Edit Files =
+
 
+
Use WinSCP to open the file(s) you need to edit.
+
 
+
: If you're working on site pages, you're working on .bml files. These are in <code>~dw/cvs/dw-free/htdocs/</code> or one of the subsequent folders. You'll see that their names correspond to the URLs of site pages. These files may use .pm modules/widgets which are in <code>~dw/cvs/dw-free/cgi-bin/DW/</code> or <code>~dw/cvs/dw-free/cgi-bin/LJ/</code>.
+
 
+
: If you're working on styles, your files is in [[#Where are Style Files?|one of these folders]].
+
 
+
: For text strings which are not in <code>~dw/cvs/dw-free/htdocs/</code> .text files, see <code>~dw/cvs/dw-free/bin/upgrading/en.dat</code>.
+
 
+
: For more specific searches, see [[Dev_Finding_Things]].
+
 
+
N.B. If WinSCP is not using your favorite editor, go to View/Preferences/Editor. Click on Add/External Editor and Browse. At the end don't forget to click on Up to make it the default editor.
+
 
+
 
+
= Test Your Changes on Your Dreamhack =
+
 
+
* In PuTTY, stop your Dreamhack:
+
<source lang="bash">cd $LJHOME
+
stop-apache</source>
+
 
+
* Synchronize your live code and update your database:
+
<source lang="bash">dws
+
dwdb</source>
+
 
+
* Start your Dreamhack again:
+
<source lang="bash">start-apache</source>
+
 
+
* Go to your Dreamhack and test. Edit the files again in WinSCP if more changes are needed. Go through these steps again to resynchronize your live code and test your new changes.
+
 
+
 
+
= Upload Your Patch =
+
 
+
 
+
=== Update & Save Your Patch ===
+
 
+
* In PuTTY, go to your patch directory (see [[#Create a Patch|this section if you've forgotten how to]]).
+
 
+
* Type this to update your patch file:
+
<source lang="bash">hg qrefresh</source>
+
 
+
* Go to your patch directory in WinSCP and save a copy of your patch on your computer (see [[#Set Up Your Dreamhack|this section if you've forgotten where the patch folder is]]).
+
 
+
* Go back to the default code by typing (PATCHNAME is full name with extension too):
+
<source lang="bash">hg qpop -a
+
hg qdelete PATCHNAME</source>
+
 
+
For more commands, see https://developer.mozilla.org/en/Mercurial_Queues
+
 
+
{{Warn|text=Do not manually edit your patch. This may cause errors and your patch won't work. Edit your file again. Refresh your patch. Test again.}}
+
 
+
 
+
== Put Your Patch On Bugzilla ==
+
 
+
* Log in onto [http://bugs.dwscoalition.org/ Bugzilla] and open your bug.
+
 
+
* Click on 'Add an Attachment' to attach your patch. Add a description and check 'patch'. Set Flags/Commit and Flags/Review to ? then click on Commit.
+
 
+
: If your patch depends on another patch being reviewed and committed first (you imported this other patch to make yours) then enter its number in the Depends On field and add your patch number in the Blocks field of the other patch. This well lett committers know in which order these should be committed.
+
 
+
* Wait for someone to review and commit your patch. :) You're done. Congrats!
+
 
+
= Specific Topics for People Working on Style Bugs =
+
 
+
 
+
== Where Are Style Bugs? ==
+
 
+
[http://bugs.dwscoalition.org/buglist.cgi?bug_status=NEW&keywords=why-styles&keywords_type=allwords&query_format=advanced&order=bug_id%20DESC&query_based_on= Right here!]
+
 
+
 
+
== How do I File a New Style Bug? ==
+
 
+
[http://bugs.dwscoalition.org/enter_bug.cgi?alias=&assigned_to=nobody%40dreamwidth.org&blocked=&bug_file_loc=http%3A%2F%2F&bug_severity=enhancement&bug_status=ASSIGNED&comment=&component=Style%20System&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&dependson=&description=&flag_type-1=X&flag_type-10=X&flag_type-11=X&flag_type-2=X&flag_type-3=X&flag_type-5=X&flag_type-7=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=P5&product=Dreamwidth%20Development&qa_contact=denise%40dreamwidth.org&rep_platform=All&short_desc=&target_milestone=-undecided-&version=unspecified Use this template]. Fill and edit the fields as needed and don't forget to change the e-mail address in Assign To.
+
 
+
People adding themes can use [http://bugs.dwscoalition.org/enter_bug.cgi?alias=&assigned_to=nobody%40dreamwidth.org&blocked=&bug_file_loc=http%3A%2F%2F&bug_severity=enhancement&bug_status=ASSIGNED&comment=Layout%3A%20%0D%0ATheme%3A%20%0D%0AAuthor%3A%20%0D%0ASubmission%20URL%3A%20&component=Style%20System&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&dependson=680&description=&flag_type-1=X&flag_type-10=X&flag_type-11=X&flag_type-2=X&flag_type-3=X&flag_type-5=X&flag_type-7=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=P5&product=Dreamwidth%20Development&qa_contact=denise%40dreamwidth.org&rep_platform=All&short_desc=Theme%3A%20THEME%20NAME%20%28LAYOUT%20NAME%29&target_milestone=-undecided-&version=unspecified this template].
+
 
+
 
+
== Where are Style Files? ==
+
 
+
* core2.s2 is in <code>~/dw/cs/dw-free/bin/upgrading/s2layers/</code>
+
 
+
* Theme and layout .s2 files are in <code>~/dw/cs/dw-free/bin/upgrading/s2layers/LAYERNAME/</code> or <code>~/dw/cs/dw-nonfree/bin/upgrading/s2layers/LAYERNAME/</code>
+
 
+
* .pm layout files are in <code>~/dw/cvs/dw-free/cgi-bin/LJ/S2Theme/</code> or <code>~/dw/cs/dw-nonfree/bin/upgrading/s2layers/LAYERNAME/</code>
+
 
+
* S2Theme.pm is in <code>~/dw/cvs/dw-free/cgi-bin/LJ/</code>
+
 
+
* S2Theme_local.pm is in <code>~/dw/cvs/dw-nonfree/cgi-bin/LJ/</code>
+
 
+
* s2layers.dat is in <code>~/dw/cs/dw-free/bin/upgrading/</code>
+
 
+
* s2layers-local.dat is in <code>~/dw/cs/dw-nonfree/bin/upgrading/</code>
+
 
+
 
+
== How to Add a Layout ==
+
 
+
 
+
=== Edit s2layers.dat ===
+
 
+
* See [[#Where are Style Files?|this section]] to know where this file is located. Edit <code>s2layers-local.dat</code> for non-free layouts.
+
 
+
* If this is a new Core2 layout, add:
+
<source lang="perl">layoutname/layout          layout          core2
+
layoutname/themes          theme+          layoutname/layout</source>
+
 
+
* If this is a child of another layout, add:
+
<source lang="perl">layoutname/layout          layout(core2base/layout)    core2
+
layoutname/themes          theme+                      layoutname/layout</source>
+
 
+
 
+
=== Edit S2Theme.pm ===
+
 
+
* See [[#Where are Style Files?|this section]] to know where this file is located. Edit <code>S2Theme_local.pm</code> for non-free layouts.
+
 
+
* Scroll down to <code>%default_themes</code> and add the layout and default theme:
+
<source lang="perl">layoutname => 'layoutname/defaulttheme',</source>
+
 
+
 
+
=== Create LAYOUTNAME.pm  ===
+
 
+
* Create LAYOUTNAME.pm in <code>~/dw/cvs/dw-free/cgi-bin/LJ/S2Theme/</code>.
+
 
+
* Add:
+
<source lang="perl">package LJ::S2Theme::layoutname;
+
use base qw( LJ::S2Theme );
+
 
+
sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) }
+
sub layout_prop { "layout_type" }
+
 
+
sub designer { "name" }
+
 
+
1;</source>
+
 
+
Remove display options that don't apply to the layout of course.
+
 
+
 
+
=== Create the LAYOUTNAME directory  ===
+
 
+
* Create a directory with the name of the layout in <code>~/dw/cs/dw-free/bin/upgrading/s2layers/</code> or <code>~/dw/cs/dw-nonfree/bin/upgrading/s2layers/</code>.
+
 
+
 
+
=== Create layout.s2  ===
+
 
+
* In the directory you've created, create a file named <code>layout.s2</code>.
+
<source lang="perl">layerinfo type = "layout";
+
layerinfo name = "layoutname";
+
layerinfo redist_uniq = "layoutname/layout";
+
layerinfo author_name = "someuser";
+
layerinfo lang = "en";
+
 
+
set layout_authors = [ { "name" => "someuser", "type" => "user" } ];</source>
+
 
+
* Then add the layout code.
+
 
+
 
+
=== Create themes.s2  ===
+
 
+
* In the directory you've created, create a file named <code>themes.s2</code>.
+
 
+
* Follow the steps outlined in [[#How to Add a Theme|this section]].
+
 
+
 
+
== How to Add a Theme ==
+
 
+
 
+
=== Edit themes.s2 ===
+
 
+
* See [[#Where are Style Files?|this section]] to know where this file is located.
+
 
+
* Find the correct place in the file so that themes stay alphabetically sorted.
+
 
+
* Make sure your theme header is correctly formatted. As Afuna explained [http://dw-dev-training.dreamwidth.org/9656.html here] in <dwcomm>dw_dev_training</dwcomm>, it should look like this:
+
<source lang="perl">#NEWLAYER: layoutname/themename
+
layerinfo type = "theme";
+
layerinfo name = "Theme Name";
+
layerinfo redist_uniq = "layoutname/themename";
+
layerinfo author_name = "someuser";
+
 
+
set layout_authors = [ { "name" => "someuser", "type" => "user" } ]</source>
+
 
+
: If you're the layout author, no need to add <code>set layout_authors</code>.
+
 
+
* Then add the theme code.
+
 
+
* If you need to add theme-specific CSS, use:
+
<source lang="perl">function Page::print_theme_stylesheet() {
+
    """
+
    CSS HERE
+
    """;
+
}</source>
+
 
+
* If the theme has any images, name them like this: <code>themename_imagename.xxx</code>. Keep the image name used in other themes if there are any. If they're generic images used in other themes, simply use <code>imagename.xxx</code>. In the theme, use <code>layoutname/themename_imagename.xxx</code> or <code>layoutname/imagename.xxx</code> for the URLs.
+
 
+
 
+
=== Edit LAYOUTNAME.pm ===
+
 
+
You must include the theme into the general layout file. Otherwise, people wouldn't be able to select it at Customize.
+
 
+
* See [[#Where are Style Files?|this section]] to know where this file is located.
+
 
+
* Find the correct place in the file so that themes stay alphabetically sorted.
+
 
+
* Add the following code:
+
 
+
<source lang="perl">package LJ::S2Theme::layoutname::themename;
+
use base qw( LJ::S2Theme::layoutname );
+
sub cats { qw() }
+
 
+
sub designer { "someuser" }</source>
+
 
+
: If you're the layout author, no need to add <code>sub designer</code>.
+
 
+
 
+
=== On Bugzilla ===
+
 
+
* In addition to uploading your patch, comment on [http://bugs.dwscoalition.org/show_bug.cgi?id=680 bug 680] to add a link to your bug so that Piranha can do a preview.
+
 
+
* Don't forget to zip images and attach them to your bug if there are any.
+
 
+
 
+
= Tips and Tricks =
+
 
+
* If your repositories won't update properly with <code>dwu</code>, you may need to first remove all your local changes with <code>hg update -C</code> then run <code>dwu</code> again.
+
 
+
* If there's something wrong with your patch queue (it says the patch is not in the series or you can't delete a patch) don't forget that you can start over: delete the patches folder with WinSCP and recreate it again in PuTTY using <code>hg qinit -c</code>.
+
 
+
* To see what's string of text is used in a page append <code>?uselang=debug</code> to the page URL.
+
 
+
* As <dwuser>denise</dwuser> explained [http://dw-dev-training.dreamwidth.org/13233.html here], you need to delete old text strings and create new ones when you edit .text files or en.dat instead of simply editing the text. See the comments for exceptions to that rule.
+
 
+
* If text you've modified doesn't appear on the site after a code push, append <code>?uselang=debug</code> to make sure it's using the right string. If it is then it may be that things haven't been updated yet.
+
 
+
[[Category:Styles Development]]
+
[[Category:Getting Started]]
+

Latest revision as of 16:20, 13 March 2013