bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 In the buildInstructions (the page with the dependencies) there are commands below to download and build svn (subversion), we highly recommend using this when making changes. When that is done (and that might take a while) you can search in the svn folder to the brit_blacksmith file and make the changes in there. Then when doing svn diff (or whatever it is on windows) you can see what you changed. By putting that on phabricator we can start reviewing (there is also an option to use arc and avoid the svn diff stuff) Quote Link to comment Share on other sites More sharing options...
Imarok Posted September 7, 2017 Report Share Posted September 7, 2017 I guess you can also use our github mirror, If you don't want to get in touch with svn... Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 Thanks; I've now built the game, changed those files, and typed svn diff. Now, how to put it on phabricator? (I've seen https://trac.wildfiregames.com/wiki/Phabricator#UsingDifferential but I'm unsure how to proceed exactly.) PS Windows is too difficult for me; I use Fedora instead And although I've never used svn before, I am willing to learn, and would like “to get in touch with” it. Quote Link to comment Share on other sites More sharing options...
Imarok Posted September 7, 2017 Report Share Posted September 7, 2017 Just install arcanist: https://trac.wildfiregames.com/wiki/Phabricator#UsingArcanist Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 It's probably quite easy, but I have no idea what to do when https://secure.phabricator.com/book/phabricator/article/arcanist/ states: Quote Now add some_install_path/arcanist/bin/ to your PATH environment variable. When you type "arc", you should see something like this: Usage Exception: No command provided. Try 'arc help'. When I type arc, I get: bash: arc: command not found... Install package 'arc' to provide command 'arc'? [N/y] And in this case, arc is the ARC file archive manager, which I believe is something different than the phacility's arcanist. Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 I believe this link helped me fixing that: https://ask.fedoraproject.org/en/question/44627/setting-permanent-path/ EDIT: not actually working just add PATH=$PATH:~/0ad/arcanist/arcanist/bin/ to .bash_profile and export that PATH iirc https://unix.stackexchange.com/questions/42146/changing-an-environment-variable-like-path-forever Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 (edited) Thanks. So I added PATH=$PATH:~/0ad/arcanist/bin/ into the .bash_profile file, which didn't work initially, but works now after restarting my computer. arc help now works, and I've used arc install-certificate and followed its instructions. Now, what's the next step? If I type svn diff, I get the changes I made in the blacksmith files, so this seems to work. If I type arc diff, I get: Quote Exception Failed to load class or interface 'SimpleXMLElement': the class or interface 'SimpleXMLElement' is not defined in the library map for any loaded phutil library. If you are not a developer, this almost always means that a library is out of date. For example, you may have upgraded `phabricator` without upgrading `libphutil`, or vice versa. It might also mean that you need to restart Apache or PHP-FPM. Make sure all libraries are up to date and all services have been restarted. If you are a developer and this symbol was recently added or moved, your library map may need to be rebuilt. You can rebuild the map by running 'arc liberate'. For more information, see: https://secure.phabricator.com/book/phabcontrib/article/adding_new_classes/ (Run with `--trace` for a full exception trace.) Edited September 7, 2017 by Nescio Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 27. Maybe I'll try the git mirror instead. 28. Something else, how to solve the following error message? Quote ERROR: JavaScript error: simulation/ai/common-api/entity.js line 313 ReferenceError: bonusesClasses is not defined m.Template<.getMultiplierAgainst@simulation/ai/common-api/entity.js:313:1 m.getMaxStrength@simulation/ai/petra/entityExtend.js:28:12 m.HQ.prototype.findBestTrainableUnit/<@simulation/ai/petra/headquarters.js:570:18 m.HQ.prototype.findBestTrainableUnit@simulation/ai/petra/headquarters.js:554:2 m.AttackPlan.prototype.trainMoreUnits@simulation/ai/petra/attackPlan.js:557:19 m.AttackPlan.prototype.updatePreparation@simulation/ai/petra/attackPlan.js:440:4 m.AttackManager.prototype.update@simulation/ai/petra/attackManager.js:140:21 m.HQ.prototype.update@simulation/ai/petra/headquarters.js:2286:3 m.PetraBot.prototype.OnUpdate@simulation/ai/petra/_petrabot.js:119:3 m.BaseAI.prototype.HandleMessage@simulation/ai/common-api/baseAI.js:64:2 Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 don't know if the path you added is correct it should be the path to where you putted the arcanist files anyway getting a diff with arc is done by arc diff --preview then (after pressing "y") a link to a webpage should pop up, from there you can make a new revision with the webgui. However this might not fix that (arc) error, maybe run arc liberate 28: Regarding the bonusClasses error looks like an ai issue Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 (edited) The path I entered in the .bash_profile file is ~/0ad/arcanist/bin/ because I've located both the arcanist and the libphutil repositories inside ~/0ad/ If I type arc diff --preview I get the same as with just arc diff: Exception Failed to load class or interface 'SimpleXMLElement': the class or interface 'SimpleXMLElement' is not defined in the library map for any loaded phutil library. If you are not a developer, this almost always means that a library is out of date. For example, you may have upgraded `phabricator` without upgrading `libphutil`, or vice versa. It might also mean that you need to restart Apache or PHP-FPM. Make sure all libraries are up to date and all services have been restarted. If you are a developer and this symbol was recently added or moved, your library map may need to be rebuilt. You can rebuild the map by running 'arc liberate'. For more information, see: https://secure.phabricator.com/book/phabcontrib/article/adding_new_classes/ (Run with `--trace` for a full exception trace.) And if I type arc liberate I get: Usage Exception: Specified directory contains more than one libphutil library. Use a more specific path. 28. Yes, I understand that, however, I haven't touched any of the AI files. Edited September 7, 2017 by Nescio Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 Do you run arc from the place where the .arcconfig is? also did you run 'arc install-certificate' already? 28 probably already in game Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 (edited) Yes, I did successfully run arc install-certificate and arc upgrade a few hours ago. And it seems there are two .arcconfig files, one in ~/0ad/ : { "phabricator.uri" : "https://code.wildfiregames.com/", "repository.callsign" : "P" } and one in ~/0ad/arcanist/ : { "phabricator.uri": "https://secure.phabricator.com/", "load": [ "src/" ], "history.immutable": false } EDIT: the .arcrc file is located in ~/ Edited September 7, 2017 by Nescio .arcrc Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 should be from the one in ~/0ad, maybe try `arc install-certificate` maybe the upgrade crashes that Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 Yes, I'm running from ~/0ad/ OK, I've run arc install-certificate again, no difference, arc diff --preview still gives the same exception message. If I run arc diff --preview --trace instead, I get the longer message: ARGV '/home/b/0ad/arcanist/bin/../scripts/arcanist.php' 'diff' '--preview' '--trace' LOAD Loaded "phutil" from "/home/b/0ad/libphutil/src". LOAD Loaded "arcanist" from "/home/b/0ad/arcanist/src". Config: Reading user configuration file "/home/b/.arcrc"... Config: Did not find system configuration at "/etc/arcconfig". Working Copy: Reading .arcconfig from "/home/b/0ad/.arcconfig". Working Copy: Path "/home/b/0ad" is part of `svn` working copy "/home/b/0ad". Working Copy: Project root is at "/home/b/0ad". Config: Did not find local configuration at "/home/b/0ad/.svn/arc/config". >>> [0] <conduit> user.whoami() <bytes = 117> >>> [1] <http> https://code.wildfiregames.com/api/user.whoami <<< [1] <http> 2,125,115 us <<< [0] <conduit> 2,126,337 us >>> [2] <exec> $ svn --xml status <<< [2] <exec> 199,777 us [2017-09-07 19:22:04] EXCEPTION: (PhutilMissingSymbolException) Failed to load class or interface 'SimpleXMLElement': the class or interface 'SimpleXMLElement' is not defined in the library map for any loaded phutil library. If you are not a developer, this almost always means that a library is out of date. For example, you may have upgraded `phabricator` without upgrading `libphutil`, or vice versa. It might also mean that you need to restart Apache or PHP-FPM. Make sure all libraries are up to date and all services have been restarted. If you are a developer and this symbol was recently added or moved, your library map may need to be rebuilt. You can rebuild the map by running 'arc liberate'. For more information, see: https://secure.phabricator.com/book/phabcontrib/article/adding_new_classes/ at [<phutil>/src/__phutil_library_init__.php:25] arcanist(head=master, ref.master=cbc785ddce71), phutil(head=master, ref.master=0cd92b1ff5c4) #0 __phutil_autoload(string) #1 spl_autoload_call(string) called at [<arcanist>/src/repository/api/ArcanistSubversionAPI.php:78] #2 ArcanistSubversionAPI::getSVNStatus() called at [<arcanist>/src/repository/api/ArcanistSubversionAPI.php:54] #3 ArcanistSubversionAPI::buildUncommittedStatus() called at [<arcanist>/src/repository/api/ArcanistRepositoryAPI.php:142] #4 ArcanistRepositoryAPI::getUncommittedStatus() called at [<arcanist>/src/repository/api/ArcanistRepositoryAPI.php:211] #5 ArcanistRepositoryAPI::getUncommittedPathsWithMask(integer) called at [<arcanist>/src/repository/api/ArcanistRepositoryAPI.php:186] #6 ArcanistRepositoryAPI::getIncompleteChanges() called at [<arcanist>/src/workflow/ArcanistWorkflow.php:841] #7 ArcanistWorkflow::requireCleanWorkingCopy() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:691] #8 ArcanistDiffWorkflow::runDiffSetupBasics() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:467] #9 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:394] Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 are you using arc with a svn checkout? so something you downloaded with `svn co http://svn.wildfiregames.com/public/ps/trunk/ 0ad`? otherwise run that (in a new directory so things don't get messy) and see https://trac.wildfiregames.com/wiki/BuildInstructions for building and stuff. If you did download svn do `svn up` until it doesn't download any more files. Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 Yes, I did. After running svn up: Updating '.': At revision 20128. It makes no difference, arc diff --preview still returns the same message. It's probably something very easy I've overlooked somewhere, although I'm completely at a loss what it could be ... Quote Link to comment Share on other sites More sharing options...
Stan` Posted September 7, 2017 Report Share Posted September 7, 2017 Have you tried to run arc liberate ? Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 7, 2017 Report Share Posted September 7, 2017 maybe this helps too: https://trac.wildfiregames.com/wiki/Phabricator#CommonproblemswithArcanist as of the SimpleXML thingies Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 7, 2017 Author Report Share Posted September 7, 2017 (edited) Great, many thanks, “sudo yum install php-xml” solved the issue, and “arc diff --preview” seems to work now, finally! Quote Linting... LINT OKAY No lint problems. Running unit tests... No unit test engine is configured for this project. SKIP STAGING Phabricator does not support staging areas for this repository. Created a new Differential diff: Diff URI: https://code.wildfiregames.com/differential/diff/3568/ Included changes: M binaries/data/mods/public/simulation/templates/structures/brit_blacksmith.xml M binaries/data/mods/public/simulation/templates/structures/gaul_blacksmith.xml M binaries/data/mods/public/simulation/templates/units/maur_elephant_archer_b.xml Now let's see what the next step is and where I encounter the next hurdle PS Maybe you could add php-xml in the list of prerequisites under https://trac.wildfiregames.com/wiki/BuildInstructions#Fedora ? That would have saved a lot of time and trouble. Edited September 7, 2017 by Nescio ce Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 8, 2017 Author Report Share Posted September 8, 2017 The last step (following the url produced by “arc diff --preview”) was actually quite easy, although I overlooked it initially. Hopefully I've correctly filled in all required fields. Anyway, a new diff was produced: https://code.wildfiregames.com/D887 Now I suppose I just have to wait to get it reviewed and accepted or rejected. Meanwhile, is it possible to make another diff proposal, independently of this one? If so, how do I use arc to ignore the changes of D887 and focus on the next changes? Something I'd like to do is to give healers a + shaped selection marker, so I've added a few lines in binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml and created new files in binaries/data/mods/public/art/textures/selection/plus (which arc diff proposes to ignore); now, how to proceed? Quote Link to comment Share on other sites More sharing options...
Grugnas Posted September 8, 2017 Report Share Posted September 8, 2017 (edited) 47 minutes ago, Nescio said: The last step (following the url produced by “arc diff --preview”) was actually quite easy, although I overlooked it initially. Hopefully I've correctly filled in all required fields. Anyway, a new diff was produced: https://code.wildfiregames.com/D887 Now I suppose I just have to wait to get it reviewed and accepted or rejected. Meanwhile, is it possible to make another diff proposal, independently of this one? If so, how do I use arc to ignore the changes of D887 and focus on the next changes? Something I'd like to do is to give healers a + shaped selection marker, so I've added a few lines in binaries/data/mods/public/simulation/templates/template_unit_support_healer.xml and created new files in binaries/data/mods/public/art/textures/selection/plus (which arc diff proposes to ignore); now, how to proceed? you can upload more proposals independently of this one. You should be sure to remove all the previous changes you made to the svn version by typing in the terminal: svn revert -R ~/0ad/binaries/data/mods/public in the case you added new files, you should manually remove them by typing: svn remove path/fileName Arc is a powerful tool but it is easy to upload unwanted stuff ( it happens to me quite often ) EDIT: I wonder if this thread could be pinned and perhaps used as official question/ask thread Edited September 8, 2017 by Grugnas Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 8, 2017 Author Report Share Posted September 8, 2017 (edited) On 08/09/2017 at 0:05 PM, Grugnas said: svn revert -R ~/0ad/binaries/data/mods/public Thanks, this was what I needed! New revisions added: https://code.wildfiregames.com/D888https://code.wildfiregames.com/D889https://code.wildfiregames.com/D890https://code.wildfiregames.com/D892https://code.wildfiregames.com/D896 More to follow later Edited September 9, 2017 by Nescio ce Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 8, 2017 Report Share Posted September 8, 2017 Just some extension on Grugnas comment: svn revert -R ~/0ad/binaries/data/mods/public this will only revert the public mod changes, so if you change something in f.e. the source folder, it won't be reverted this can be fixed by doing svn revert -R ~/0ad/ instead. Also arc can download and apply patches (so if you get a review and there need to be some more changes f.e.) use `arc patch Dn` for that ("n" is a number). Also arc diff (or svn diff) ignores untracked files (so files that show up with a ? when pressing svn status), too add them (so arc will include them) use `svn add path/to/filename` or remove things like grugnas said with `svn remove path/to/filename`. Do notice that arc patch does include new files (don't know if it also remove ones), but svn revert doesn't delete the files!! however the files will be marked as untracked in svn. Quote Link to comment Share on other sites More sharing options...
Nescio Posted September 8, 2017 Author Report Share Posted September 8, 2017 (edited) 27. Now I believe I understand how to add, update, and revert diffs on phabricator; to summarize (as a reference for future use for myself): Start with: svn up Optionally, to load an existing diff (e.g. D888), type: arc patch D888 And also optionally, to load a previous version (e.g. diff 3575), type: arc patch --diff 3575 Make some changes. Use “svn add”, “svn rm”, and “svn mv” when adding, deleting, and renaming files. Then: svn diff arc diff --preview Follow the url produced in the terminal, click to add it to a (new or existing) patch, and fill in the required fields (title, summary, test). Finish with: svn revert -R ~/0ad/binaries/data/mods/public If you're inside the 0ad/ folder, you can also use: svn revert -R * [EDIT]: if you get a 'svn:eol-style' or 'svn:mime-type' error exception for a certain `file.ext`, run: svn propset svn:eol-style native file.ext svn propset svn:mime-type text/plain file.ext svn propset svn:mime-type image/png file.png svn propset svn:mime-type text/xml file.xml Let's leave “how to start contributing?” for now and return to “how to start modifying?” 24. How large are map sizes? 28. Any suggestions how to solve the following AI error? (No, I didn't touch any of the AI files. I'm not sure what causes it, but when it starts, this error message continues uninterruptedly, which is quite annoying and also seems to slow down the game.) Quote ERROR: JavaScript error: simulation/ai/common-api/entity.js line 313 ReferenceError: bonusesClasses is not defined m.Template<.getMultiplierAgainst@simulation/ai/common-api/entity.js:313:1 m.getMaxStrength@simulation/ai/petra/entityExtend.js:28:12 m.HQ.prototype.findBestTrainableUnit/<@simulation/ai/petra/headquarters.js:570:18 m.HQ.prototype.findBestTrainableUnit@simulation/ai/petra/headquarters.js:554:2 m.AttackPlan.prototype.trainMoreUnits@simulation/ai/petra/attackPlan.js:557:19 m.AttackPlan.prototype.updatePreparation@simulation/ai/petra/attackPlan.js:440:4 m.AttackManager.prototype.update@simulation/ai/petra/attackManager.js:140:21 m.HQ.prototype.update@simulation/ai/petra/headquarters.js:2286:3 m.PetraBot.prototype.OnUpdate@simulation/ai/petra/_petrabot.js:119:3 m.BaseAI.prototype.HandleMessage@simulation/ai/common-api/baseAI.js:64:2 29. Where to post feature requests? Technologies can supersede each other; it would be nice if this would also be possible for auras. 30. By default, individual basic, advanced, and elite units are distinguished by the chevrons overlaid on the unit icon (rank1 is one bronze, rank2 two silver, rank3 three gold). Because I've replaced the b/a/e system with ranks 0 to 12, I've also created new chevron icons (attached; located under /art/textures/ui/sessions/icons/ ) to match those. Now, which files do I have to edit to properly display them? Edited February 15, 2020 by Nescio ce 1 Quote Link to comment Share on other sites More sharing options...
bb_ Posted September 8, 2017 Report Share Posted September 8, 2017 27: a few comments: `svn diff` is just putting the diff in your command line, which is useful for checking for typo's, but there is no strict need doing it when pushin patches to phab. svn revert -R ~/0ad/ should be enough and actually better when reverting svn mv indeed broken with phab/arc so its not you 28. after a little deeper look the error is fooling me... is this the exact error you get in the commandline when using current svn? also pinging our ai dev @mimo 29. when already having a patch do it on phab by creating a new revision. Otherwise make a ticket on trac (but ofc search if there isn't one already for the same thing) 30.12 ranks XD, i guess most files in gui/session, single_details_area.xml has the xml object definition didn't look where the correct image is attached to it (it should be some call to Engine.GetGuiObjectByName("rankIcon"), use grep to find it, should be in the gui/session directory) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.