Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old April 9, 2011, 21:58   #1
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Creating Angband 3.2.1 in ten easy steps

Quite a few people have been asking about a bugfix version of 3.2.0, which doesn't include the significant and not-fully-tested changes which have gone into nightlies since xmas. Most of the devteam are pretty busy with RL right now (work, activism, babies or all of the above) so I thought it might be helpful if I pointed out how easy this would be for anyone to do using git. Then if anyone does it, it wouldn't take takk long to package and release it. EDIT: it is of course entirely takk's decision what does and doesn't get included in 3.2.1 - but I'm sure it would be appreciated if someone else took the time to go through the steps below and provide something to work with.

You do need to be comfortable with a command line - or know enough to invoke these commands in your chosen IDE. If I get this right, you shouldn't need any prior knowledge of git.

1. So, first, create yourself an account at github.com. We'll call this account yourname. You have a choice of how you configure git to allow pushing stuff to your github account - I'll assume you can make one of them work.

2. Having logged into your github account, go to http://github.com/angband/angband and click the Fork button. This will create a fork of the official repo at your github account.

3. On your local machine do "git clone git://github.com/yourname/angband dirname". This will create a local copy of your fork of the official repo in dirname.

4. Then cd into dirname and do "git checkout 3.2.0". This will take you to the exact codebase from which 3.2.0 was created, byte-for-byte. Using this command means it doesn't matter what is in the official repo when you clone it, because you're ignoring anything post-3.2.0

5. Now do "git checkout -b 3.2.1". This will create a new local branch called 3.2.1, which (for now) is a bit-for-bit copy of 3.2.0

6. Now do "git checkout origin/staging". This will take you to the staging branch which you forked and cloned - this has the very latest changes and fixes in it.

7. You then want to study the output of "git log" and make a note of the commitIDs of the fixes you want to see in 3.2.1. The commitID is the huge long ascii string at the start of each commit - but you only need to write down the first seven characters for it to be 99.999% likely to be unique. The commit messages *should* tell you which ones are bugfixes and what they fix. Do study the log carefully though, because some fixes take two or three commits before they are fully sorted. Others may be conflated with other changes (though this is bad practice on our part) - you can use "git log -p" to see the actual code changes in each commit, which may help you decide whether it's worth trying to include that commit in 3.2.1. Once you get back to xmas eve 2010, that's 3.2.0 so you can stop.

8. Once you have a list of commits you want, do "git checkout 3.2.1" to get back to your new 3.2.1 branch.

9. Then do "git cherry-pick commitID" for EACH commit that you want to include in 3.2.1, starting with the oldest and working forwards. If you get no error message, go on to the next one. If you get any kind of error, it means that your chosen commit requires something that was changed in a commit you didn't choose. If you have the skill to fix the conflict, you can do that and carry on. If not, you can use "git reset HEAD^" to wipe away the mess (then use "git log" to check which was the last successful cherry pick, and carry on from there, skipping the one that caused the problem).

10. That's it. Once you've cherry-picked all the commits you want and fixed any conflicts, you can build and test it (make distclean; ./autogen.sh; configure; make). If you can't or don't want to do that, just skip this step and one of the devteam will do it when they look at your branch. When you're finished, do "git push origin 3.2.1" to push a copy of your local 3.2.1 branch to your github repo, and post something here saying you've done it.

Last edited by Magnate; April 9, 2011 at 23:07.
Magnate is offline   Reply With Quote
Old April 9, 2011, 22:29   #2
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,093
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by Magnate View Post
3. On your local machine do "git clone git://github.com/yourname/angband dirname". This will create a local copy of your fork of the official repo in dirname.
I assume you need to download and install some sort of git software on your computer before this step. Otherwise that command is just garbage.
Timo Pietilš is offline   Reply With Quote
Old April 9, 2011, 22:39   #3
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by Timo Pietilš View Post
I assume you need to download and install some sort of git software on your computer before this step. Otherwise that command is just garbage.
Yes, sorry - when I wrote "how easy this would be for anyone to do using git", I was making an assumption that git is installed on the local machine. I didn't include instructions on how to do this, because it varies by OS and there are too many possibilities.
Magnate is offline   Reply With Quote
Old April 10, 2011, 01:56   #4
Therem Harth
Knight
 
Therem Harth's Avatar
 
Join Date: Jan 2008
Location: https://gitlab.com/miramor
Posts: 895
Therem Harth is on a distinguished road
On Windows the best way to do it is probably with msysgit and your favorite compiler. Cygwin also has a version of git, but Cygwin is... kind of complicated. Or so it seems to me.
Therem Harth is offline   Reply With Quote
Old April 10, 2011, 03:08   #5
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,093
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by Therem Harth View Post
On Windows the best way to do it is probably with msysgit and your favorite compiler. Cygwin also has a version of git, but Cygwin is... kind of complicated. Or so it seems to me.
I have cygwin but no git for it. I might use msysgit & cygwin to make complied version.
Timo Pietilš is offline   Reply With Quote
Old April 10, 2011, 06:30   #6
Therem Harth
Knight
 
Therem Harth's Avatar
 
Join Date: Jan 2008
Location: https://gitlab.com/miramor
Posts: 895
Therem Harth is on a distinguished road
If you have Cygwin already you can just rerun the installer and tell it to install git.
Therem Harth is offline   Reply With Quote
Old April 13, 2011, 18:13   #7
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
Apr 12th, nightly

Haven't made it out of town yet, but:

1. Townies, at night, light up grid squares but do not turn dark again. It's interesting watching a little scruffy dog be lit up and visible one moment as it passes a shop door, then disappear from sight into a lit square (which ought to be a dark square). Is that feature of nixing view_perma_grids & view_torch_grids ?? Not sure why that changed, either.

2. program crashed when throwing potions of poison at a townie ... no idea why, didn't bother to collect more data on the episode. Haven't been able to reproduce it.

3. killing an item no longer removes it immediately? I thought the squelch process was pretty good in the first rendition of 3.2.0.... E.g., you try a weapon or piece of armor, decide you don't like it. Rather than 'k'ill it outright and have it removed immediately, the current version leaves it on the body, and the weight is still encumbered. Advanced players will have to be wary of the new effects of 'k'illing items in inventory and worn/wielded.

4. Leaving the scroll titles in the inventory? Feature?

5. no more '*' asterisks around *slay* in weapon descriptions?

Seems like you guys are busy hacking away on the nightlies to the point it feels like a version upgrade, thus far... Keep up the good work!

--Spacebux--
Spacebux is offline   Reply With Quote
Old April 13, 2011, 18:35   #8
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 38
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by Spacebux View Post
1. Townies, at night, light up grid squares but do not turn dark again. It's interesting watching a little scruffy dog be lit up and visible one moment as it passes a shop door, then disappear from sight into a lit square (which ought to be a dark square). Is that feature of nixing view_perma_grids & view_torch_grids ?? Not sure why that changed, either.
Some townies do carry torches at night, so I'm not sure if you're describing a bug or not. Can you send screenshots?

Quote:
2. program crashed when throwing potions of poison at a townie ... no idea why, didn't bother to collect more data on the episode. Haven't been able to reproduce it.
Ouch. This is definitely a bug. Hopefully we can figure out how to reproduce it. There was a crashing bug recently involving objects dropped by monsters which had been removed from monster.txt. Maybe that was it?

Quote:
3. killing an item no longer removes it immediately? I thought the squelch process was pretty good in the first rendition of 3.2.0.... E.g., you try a weapon or piece of armor, decide you don't like it. Rather than 'k'ill it outright and have it removed immediately, the current version leaves it on the body, and the weight is still encumbered. Advanced players will have to be wary of the new effects of 'k'illing items in inventory and worn/wielded.
Yes, in current versions there is no way to actually destroy an object, merely to mark that it should be ignored. You could argue that when you mark something you're wearing you should automatically drop it. Feel free to open a ticket for that behavior.

Quote:
4. Leaving the scroll titles in the inventory? Feature?
This is an option that you can turn off.

Quote:
5. no more '*' asterisks around *slay* in weapon descriptions?
I think this was done to save space, but I'm not sure.
__________________
linux->xterm->screen->pmacs
d_m is offline   Reply With Quote
Old April 13, 2011, 19:41   #9
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
Quote:
Originally Posted by d_m View Post
Some townies do carry torches at night, so I'm not sure if you're describing a bug or not. Can you send screenshots?
Yes, I was aware of that, but the path they lead lights up squares... and leaves them lit. Before, as townies, even novice rogues, priests, et. al., would have lights lighting them up... pretty cool, I thought. But, now, after they move away from a square, it remains lit.


Re: crashes:
Quote:
Originally Posted by d_m View Post
Ouch. This is definitely a bug. Hopefully we can figure out how to reproduce it. There was a crashing bug recently involving objects dropped by monsters which had been removed from monster.txt. Maybe that was it?
I reproduced it. Take any object lying on the ground, and fling it (any direction, anywhere). 'v' . Repeat using 'n' once the item is no longer there. Crash guaranteed.


Quote:
Originally Posted by d_m View Post
Yes, in current versions there is no way to actually destroy an object, merely to mark that it should be ignored. You could argue that when you mark something you're wearing you should automatically drop it. Feel free to open a ticket for that behavior.
ok.


Quote:
Originally Posted by d_m View Post
This is an option that you can turn off.
Roger.


Quote:
Originally Posted by d_m View Post
I think this was done to save space, but I'm not sure.
ok.
Spacebux is offline   Reply With Quote
Old April 13, 2011, 19:55   #10
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,504
Derakon is on a distinguished road
What you're seeing here, I suspect, is not lit squares, but squares that have a dot in them. The "map remembers seen spaces" option has been forced on as part of Takkaria's effort to simplify the options. You should be able to tell the difference between a seen, dark space and a lit space because the latter is brighter -- white vs. grey.
Derakon is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Should Angband have easy/difficult 'levels'? ChodTheWacko Vanilla 17 May 28, 2010 18:41
Pointers/Advice solicited on creating Angband solution inside VC++ 2008 Express jojojajumbo Development 5 August 5, 2009 04:21
Creating maps and other questions. PaulBlay ToME 1 February 5, 2009 16:45
Help, < 60 easy, > 60 hard MCP Vanilla 16 September 23, 2007 20:16
Easy question from a newb Karmarig Vanilla 6 August 4, 2007 10:38


All times are GMT +1. The time now is 22:40.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.