Creating Angband 3.2.1 in ten easy steps

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Magnate
    Angband Devteam member
    • May 2007
    • 4916

    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, 22:07.
    "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles
  • Timo Pietilä
    Prophet
    • Apr 2007
    • 3964

    #2
    Originally posted by Magnate
    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.

    Comment

    • Magnate
      Angband Devteam member
      • May 2007
      • 4916

      #3
      Originally posted by Timo Pietilä
      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.
      "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

      Comment

      • Therem Harth
        Knight
        • Jan 2008
        • 856

        #4
        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.

        Comment

        • Timo Pietilä
          Prophet
          • Apr 2007
          • 3964

          #5
          Originally posted by Therem Harth
          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.

          Comment

          • Therem Harth
            Knight
            • Jan 2008
            • 856

            #6
            If you have Cygwin already you can just rerun the installer and tell it to install git.

            Comment

            • Spacebux
              Adept
              • Apr 2009
              • 231

              #7
              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--

              Comment

              • d_m
                Angband Devteam member
                • Aug 2008
                • 1516

                #8
                Originally posted by Spacebux
                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?

                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?

                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.

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

                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

                Comment

                • Spacebux
                  Adept
                  • Apr 2009
                  • 231

                  #9
                  Originally posted by d_m
                  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:
                  Originally posted by d_m
                  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.


                  Originally posted by d_m
                  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.


                  Originally posted by d_m
                  This is an option that you can turn off.
                  Roger.


                  Originally posted by d_m
                  I think this was done to save space, but I'm not sure.
                  ok.

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 8820

                    #10
                    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.

                    Comment

                    • Spacebux
                      Adept
                      • Apr 2009
                      • 231

                      #11
                      Originally posted by Derakon
                      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.
                      Ah... yes, I forgot the options have changed. I think you're right.
                      Will take some getting used to, I think.

                      Comment

                      • Magnate
                        Angband Devteam member
                        • May 2007
                        • 4916

                        #12
                        Originally posted by Spacebux
                        5. no more '*' asterisks around *slay* in weapon descriptions?
                        Could you say a bit more about this? The describe_object() function still uses "*Slays*" to describe x5 slays ...

                        Ah ... perhaps you're thinking of weapons like *slay* giant, which actually only have a normal x3 slay, but an extra ability (+STR I think). In those cases (animal, evil, orc, troll, giant), the actual slay does not have asterisks in the damage description, because it's only x2 or x3. For undead, demons and dragons, there is a big difference between slay and *slay* in damage output (x3 vs x5), so the description shows the asterisks.

                        This hasn't changed for a long time though.
                        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!
                        Thanks, but next time could you use a bug thread, or start a new one, rather than hijacking a thread which isn't about bugs ;-)
                        "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                        Comment

                        • Spacebux
                          Adept
                          • Apr 2009
                          • 231

                          #13
                          Killed items re-appearing

                          Originally posted by d_m
                          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.
                          Once ignored items are re-appearing when the game is re-started. It seems as though mobs can also pick up and carry ignored items.. which, I guess is reasonable to presume. However, it is just quite a contrast from the action seen in versions to now.

                          If that is the desired effect, it's working. Otherwise to reproduce - kill something, note that it is gone for the moment. Quit program, restart. Pooph, the item you just 'k'illed, is back, un-ignored.

                          Personally, I didn't think there was anything wrong with the kill command up to now, not sure why you are attempting to fix it. Same for the floor-lighting options. I was pretty happy with the plethora of options we had in 3.2.0... Now, I can't even see the yellow color of my lantern, nor the light-green lines demarcating where the limits of DetectTraps.

                          --Spacebux--

                          Comment

                          • Spacebux
                            Adept
                            • Apr 2009
                            • 231

                            #14
                            Why the re-writing of the spell books??

                            Why are the spell orders all garbled in the latest version?

                            If you are going through a complete re-write of the spell code, wonderful, keep going. What was wrong with the old spell order?

                            I'm not sure what order the spells have been put in...

                            Comment

                            • Derakon
                              Prophet
                              • Dec 2009
                              • 8820

                              #15
                              Originally posted by Magnate
                              Thanks, but next time could you use a bug thread, or start a new one, rather than hijacking a thread which isn't about bugs ;-)
                              As for spell ordering, I haven't a clue what you're talking about. Could you provide more details in your new thread?

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎