Navigation

    TripleA Logo

    TripleA Forum

    • Register
    • Login
    • Search
    • TripleA Website
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Tags

    TripleA development

    Development
    15
    165
    51588
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • frigoref
      frigoref @RogerCooper last edited by

      @rogercooper
      Could we get an overview about the contributing people and their core area on the github Wiki?
      https://github.com/triplea-game/triplea/wiki/Contributors

      Would be nice if people could make their entry there so we have something that we can organize ourselves better.
      @LaFayette Maybe you can list all users with merge rights?

      ubernaut Panther 2 Replies Last reply Reply Quote 1
      • ubernaut
        ubernaut Moderators @frigoref last edited by

        @frigoref curious why i'm labeled inactive on your list

        frigoref 1 Reply Last reply Reply Quote 0
        • Panther
          Panther Admin Moderators @frigoref last edited by

          @frigoref
          Also what do you mean by "area" ?

          frigoref 1 Reply Last reply Reply Quote 0
          • frigoref
            frigoref @Panther last edited by

            @panther @ubernaut
            Area wäre z.B. Maps, Development oder sowas. Wenn es so eine Unterteilung nicht gibt, kann man das auch weglassen.
            Bitte gerne selbst pflegen und ggf. neu gliedern

            1 Reply Last reply Reply Quote 0
            • C
              Cernel Moderators last edited by

              I don't recall I've ever known what I'm supposed to do if anything.

              1 Reply Last reply Reply Quote 1
              • LaFayette
                LaFayette Admin last edited by LaFayette

                @MagicStyck

                It has to be easy for a developer to setup an environment quickly and able to debug what is happening. If they have to jump through a thousand hoops to get started, your going to lose them.

                • Have you tried to seek out help about any of these hoops?
                • Which of these hoops have you had to jump through specifically?

                @frigoref

                @LaFayette Maybe you can list all users with merge rights?

                https://github.com/orgs/triplea-game/teams

                The team that allowed for 'write-access' was 'secret'. I updated it to be 'public', it should be visible now.

                The main areas of TripleA are:

                • System Admin
                  • Make sure the systems are running
                  • Deploy software changes to the systems
                • QA
                  • proactively looks for bugs in the latest tripleA release. Specifically, they don't look around in just one area, but they try to execute every code path in TripleA possible, they click every button, every toggle, make every movement scenario and combination to validate that everything works correctly
                • Developer
                  • submit PRs on github
                • Development Maintainer
                  • Reviews PRs, they are the ones responsible for fixing problems post-merge
                  • Fixes pre-release problems (other peoples bugs)
                  • Fixes major live problems reported to the project
                • Project Maintainer / Leadership
                  • communicates about the project & project priorities
                  • arbitrator
                • Bug Triage / Issue Maintainer
                  • try to help people through issues
                  • ensure that issues have full information or close them
                    • full information being things like "which map", creating a save game at the point of problem, etc.
                • Map Admin
                  • maintains map repository, ensures maps are well cataloged and made available for downloaded
                • Map Contributor
                • Forum Moderator
                • Lobby Moderator
                • Graphics/Designer
                • Treasurer

                @Beelee

                You propose a grand re-write. Those tend to go south and never wind up completed. The goal of 3.0 would be to make the system more modularized. As an analogy, instead of having one giant frankenstein monster, 3.0 would make that monster more like Mr Potato head, where we could more easily swap out the arms and legs. We would still have some large problems to solve, but though would be an order of magnitude smaller and generally much more tractable.

                @djabwana

                There are circular object references that break serialization to XML or JSON. The plan for save game is to only save the game data changes to disk. To do this we need to change the guts of TripleA to be able to dynamically build a 'game data' object using only a given 'map ID' and list of game data changes.

                How much PR pain do you think there would be on a second pull request compared to the first one? IIRC a lot of your issues were due to being a new contributor and I don't think would have had the same issues on a second or subsequent PR.

                Second, how do we fix review issues? I do recall there was some major problems introduced after several updates, problems which should not have happened. This is very salient because I think around 70% of all PRs introduce at least one bug. It then goes on to the maintainers to find and fix these. Hence, a first time code-submitter gets the worst of all worlds, issues that come up becuase they are not familiar with the project, and extra scrutiny because it's more than likely problems will be introduced and it's a goal that any contributor introduce zero problems. If the contributor agrees to be a maintainer, then the bar is lowered, otherwise each change needs to be well done and 100% correct (this is software, it must all be correct).

                So, if we use the reasonable 3 hours per week standard, and it takes a good hour to review code, and another 10-20 minutes to test it; seemingly there is not much time to do that more than once or twice a week. How can we improve turn-around times in this kind of scenario? My thoughts were that we continue to add more automated review checks and continue trying to be unrestrictive about smaller items (perhaps you should have seen some of the blockers from earlier on in this project if you complain about keeping comments in sync with the code as too much of a a details as that).

                M 1 Reply Last reply Reply Quote 2
                • M
                  MagicStyck @LaFayette last edited by MagicStyck

                  @lafayette said in TripleA development:

                  @MagicStyck

                  It has to be easy for a developer to setup an environment quickly and able to debug what is happening. If they have to jump through a thousand hoops to get started, your going to lose them.

                  • Have you tried to seek out help about any of these hoops?
                  • Which of these hoops have you had to jump through specifically?

                  When setting up my dev environment for this project over two years ago, it was a lot of trial and error to get it working. Documentation was old or flat out incorrect. When analysing the code base to work on a change, there are little to no design documents to help answer some of the basic questions. Over those two years some of those documents have started to appear but still large gaps exist. For instance, the legacy documentation lays out a design that the current software begins to deviate from. How much still applies? What does not?

                  Infrastructure code, which should be stored in separate repos, is in the root tree of the application causing bloating and confusion of what is import to running the code and what is not. I've worked with a lot those technologies so I know what to ignore as "not needed" when working on the code base. New contributors to the project will not.

                  Any change to the code proposed as an issue with how TripleA applies, even if it only affects the supported rulesets, is met with hostility based on "this might affect my game which doesn't use that ruleset", "might break game saves", and "shouldn't be considered because I don't agree with the Larry Harris accepted interpretation of the rule". There wasn't even a PR for the fix yet, just a conversation. https://github.com/triplea-game/triplea/issues/9067

                  No credit for work done. I helped out on a PR regarding Docker and NodeBB. I wrote the container and the documentation for it. I got a "thanks" and no credit on the merge. If you check contributors for that work, my name doesn't appear yet here is all my work. What does it take to be considered a dev or a contributor for this code base?

                  Original conversation: https://github.com/triplea-game/triplea/pull/7799
                  PR of the work: https://github.com/triplea-game/triplea/pull/7906

                  No response or direction at times. Conversations just die. I was loading a skin in the current release (2.5) and ran into an issue that has been open for awhile. I decided to help out on fixing it. I did the leg work, got stuck, reached out got a little help. I got a random statement about skin being different in 2.6 than 2.5. I asked if 2.5 is open for patching. Crickets. https://github.com/triplea-game/triplea/issues/8102

                  So yes, hoops. Hoops that discourage participation of offering up PRs to fix issues.

                  Second, how do we fix review issues?

                  I would suggest not holding up PRs based on non-technical issues. For instance, this PR (https://github.com/triplea-game/triplea/pull/9963) was not merged for over 2 months because of a disagreement on adding a comment line which could have really been added later. Was that comment line truly worth holding up a technical fix that was agreed would bring consistency?

                  I do recall there was some major problems introduced after several updates, problems which should not have happened. This is very salient because I think around 70% of all PRs introduce at least one bug. It then goes on to the maintainers to find and fix these. Hence, a first time code-submitter gets the worst of all worlds, issues that come up becuase they are not familiar with the project, and extra scrutiny because it's more than likely problems will be introduced and it's a goal that any contributor introduce zero problems. If the contributor agrees to be a maintainer, then the bar is lowered, otherwise each change needs to be well done and 100% correct (this is software, it must all be correct).

                  What does it take to agree to be a maintainer? What is the process? What does it entail?

                  bacrossland created this issue in triplea-game/triplea

                  open Transports allowed to load and move in Combat phase then offload in Non-combat phase #9067

                  tripleabuilderbot created this issue in triplea-game/triplea

                  closed 2.5.22294: UnitImageFactory#lambda$getImageDimensions$2:326 - games.strategy.triplea.image.MissingImageException #8102

                  DanVanAtta created this issue in triplea-game/triplea

                  closed Add preliminary Dockerfile for Node-BB #7799

                  bacrossland created this issue in triplea-game/triplea

                  closed Update Node-BB Dockerfile. Add README.md, and example config.json #7906

                  jdimeo created this issue in triplea-game/triplea

                  closed Preserve polygon order when loading game. #9963

                  Panther C RogerCooper 3 Replies Last reply Reply Quote 4
                  • Panther
                    Panther Admin Moderators @MagicStyck last edited by Panther

                    @magicstyck said in TripleA development:

                    Any change to the code proposed as an issue with how TripleA applies, even if it only affects the supported rulesets, is met with hostility based on "this might affect my game which doesn't use that ruleset", "might break game saves", and "shouldn't be considered because I don't agree with the Larry Harris accepted interpretation of the rule". There wasn't even a PR for the fix yet, just a conversation. https://github.com/triplea-game/triplea/issues/9067

                    Welcome to the frustrating world of rules issues likely not going to be fixed at any time.
                    https://forums.triplea-game.org/topic/1549/rules-issues-with-the-triplea-engine/

                    It is of course totally fine to discuss those issues. And they must be discussed, as their interpretation in some cases is not crystal clear or need 'official' clarifications. Sometimes the rules are poorly or incorrectly implemented in TripleA (for example v2) - but people are so used to the misconceptions that they think it is correct. Sometimes the misconception intentionally is even part of maps, what is fine, too. It is no problem that not-rules-compliant features are part of the game, as long as people are aware of that, and as long as those are optional.

                    The problem is that after the discussion of rules issues no one really cares to implement changes.

                    Not an accuse to anyone - just stating a fact. Priorities lie on whatever but not on fixing rules issues. That had been different in the past (years ago). But currently it is how it is.

                    That you must have in mind when bringing up rules issues.

                    Of course all of this and the other things you stated is just the consequence of a simple fact: Those people currently regularly active here on the forum (or discussing for example rules issues at Github) are (apart from a few exceptions) usually people that do not have the ability to work on the engine code or - in case they have - do not have the time or the needed interest in certain special aspects of the game(s) / the engine.

                    That is why we are world champions in discussions - but fail to fix or implement a lot.

                    frigoref 1 Reply Last reply Reply Quote 1
                    • C
                      Cernel Moderators @MagicStyck last edited by

                      @magicstyck Issues like the https://github.com/triplea-game/triplea/issues/9067 you mentioned are not pointless. They are waiting for someone who knows the rules (like @Panther) to review them.

                      Not much else to do when the rules are not clear to everyone the same way.

                      Unfortunately, we don't have any developer with a deep understanding of every rules-set, as far as I know.

                      bacrossland created this issue in triplea-game/triplea

                      open Transports allowed to load and move in Combat phase then offload in Non-combat phase #9067

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        Cernel Moderators @Cernel last edited by

                        @cernel And if one would have gone ahead making the proposed changes without checking the rules very carefully, I would say chances are doing more bad than good.

                        On top of that, you must also consider supporting custom games. TripleA is not all about un-original work.

                        1 Reply Last reply Reply Quote 0
                        • frigoref
                          frigoref @Panther last edited by

                          @panther said in TripleA development:

                          Of course all

                          Can I assume that the list in https://forums.triplea-game.org/topic/1549/rules-issues-with-the-triplea-engine is maintained well and they are meant to have all the same label "Impact: Bad Game Rules" on github?
                          If so, can you help to prioritize them?

                          I absolutely understand the frustration that is going around. However, I would hope that you all are still willing to assist in
                          (1) structuring the issues we have
                          (2) organize ourselves, so responsibilities and current status,
                          so we can get a clear overview and try to tackle the issues according to their priority.
                          My hope would be that we get to a point where we can onboard new developers (responsibility with the dev team) and hand them a sorted (!) list of issues (responsibilities lies with moderators assisted by the end users) from which they can choose and provide fixes.

                          Panther 1 Reply Last reply Reply Quote 1
                          • RogerCooper
                            RogerCooper @MagicStyck last edited by

                            @magicstyck Why is there such a big deal about changes breaking saved games? If you start game, keep using the same version until you are done.

                            Breaking existing XML is more of an issue, but we have done it before, and I personally fixed many mods with a simple batch file.

                            So please, feel free to go ahead with refactoring code and don't worry about covering every obscure A&A rules case.

                            What does need to be done to discuss major changes before they are made. 2.6 did major changes like deprecating mapName and Notes with little discussion.

                            1 Reply Last reply Reply Quote 3
                            • Panther
                              Panther Admin Moderators @frigoref last edited by

                              @frigoref said in TripleA development:

                              Can I assume that the list in https://forums.triplea-game.org/topic/1549/rules-issues-with-the-triplea-engine is maintained well and they are meant to have all the same label "Impact: Bad Game Rules" on github?
                              If so, can you help to prioritize them?

                              In general you can assume that. What I don't know is - as PR do not always refer to issues - whether working on other details maybe had any impact on them. What I will do is check the labels again - and of course I will help to proritize them. There are serious issues and minor issues, that's for sure.

                              1 Reply Last reply Reply Quote 1
                              • Panther
                                Panther Admin Moderators last edited by

                                IMHO we should not push forward 2.6 as long as major issues such as the MARTI-issue and the broken-PBF-nodeBB-issue are not fixed.

                                frigoref 1 Reply Last reply Reply Quote 2
                                • frigoref
                                  frigoref @Panther last edited by

                                  @panther can you please also label the issues you consider 2.6 blocking issues?
                                  Do you need help for this?

                                  Is there anyone interested in assisting panter?

                                  ubernaut M Panther 3 Replies Last reply Reply Quote 1
                                  • ubernaut
                                    ubernaut Moderators @frigoref last edited by

                                    @frigoref @panther idk jack about coding but if there's anything i can do to help i'm glad to :)*

                                    1 Reply Last reply Reply Quote 1
                                    • M
                                      MagicStyck @frigoref last edited by

                                      @frigoref @Panther

                                      I've been looking at the FeignException 404 on map listing. I know what is happening and why. I'm working on a test and coding a fix for it. I should have a PR in by the end of the weekend. I can help work on any other blockers after that.

                                      All related issues:
                                      https://github.com/triplea-game/triplea/issues/10023
                                      https://github.com/triplea-game/triplea/issues/10053
                                      https://github.com/triplea-game/triplea/issues/10079

                                      tripleabuilderbot created this issue in triplea-game/triplea

                                      closed 2.6: MapsClient#fetchMapDownloads:24 - feign.FeignException$NotFound #10023

                                      tripleabuilderbot created this issue in triplea-game/triplea

                                      closed 2.6.554: MapsClient#fetchMapDownloads:24 - feign.FeignException$NotFound #10053

                                      tripleabuilderbot created this issue in triplea-game/triplea

                                      closed 2.6.561: MapsClient#fetchMapDownloads:24 - feign.FeignException$NotFound #10079

                                      frigoref RogerCooper M 3 Replies Last reply Reply Quote 2
                                      • frigoref
                                        frigoref @MagicStyck last edited by

                                        @magicstyck sounds great! Many thanks for taking this one up! 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • RogerCooper
                                          RogerCooper @MagicStyck last edited by

                                          @magicstyck Let me know if you can get to the point that mods can be downloaded using 2.6. For now, I am doing my updates to the map repository using 2.5.

                                          1 Reply Last reply Reply Quote 1
                                          • M
                                            MagicStyck @MagicStyck last edited by MagicStyck

                                            @frigoref @Panther @RogerCooper @LaFayette

                                            @magicstyck said in TripleA development:

                                            I've been looking at the FeignException 404 on map listing. I know what is happening and why. I'm working on a test and coding a fix for it. I should have a PR in by the end of the weekend. I can help work on any other blockers after that.

                                            When I posted this afternoon, I thought the issue was a broken endpoint in the spitfire-server, the code that runs the lobby. I have since confirmed locally, that is not the case. When I spin up the 2.6 lobby, I'm able to run a GET request on the /maps/listing endpoint without issue.

                                            curl -i -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer oijsad80lksjdflsdflk" -H "System-Id-Header: 1234567890" -H "Triplea-Version: 2.6" -v http://127.0.0.1:8080/maps/listing
                                            *   Trying 127.0.0.1...
                                            * TCP_NODELAY set
                                            * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
                                            > GET /maps/listing HTTP/1.1
                                            > Host: 127.0.0.1:8080
                                            > User-Agent: curl/7.64.1
                                            > Accept: application/json
                                            > Content-Type: application/json
                                            > Authorization: Bearer oijsad80lksjdflsdflk
                                            > System-Id-Header: 1234567890
                                            > Triplea-Version: 2.6
                                            >
                                            < HTTP/1.1 200 OK
                                            HTTP/1.1 200 OK
                                            < Date: Thu, 17 Feb 2022 05:39:42 GMT
                                            Date: Thu, 17 Feb 2022 05:39:42 GMT
                                            < Content-Type: application/json
                                            Content-Type: application/json
                                            < Vary: Accept-Encoding
                                            Vary: Accept-Encoding
                                            < Content-Length: 214
                                            Content-Length: 214
                                            
                                            <
                                            * Connection #0 to host 127.0.0.1 left intact
                                            [{"downloadUrl":"http://download-url","previewImageUrl":"http://preview-image","mapName":"test-map","lastCommitDateEpochMilli":1644988237583,"description":"map description","mapTags":[],"downloadSizeInBytes":1024}]* Closing connection 0
                                            

                                            I logged into the postgres database locally and deleted the record in the map_index table of the lobby_db (where data returned above comes from). This confirmed that if the table is empty, the /maps/listing endpoint does not return a 404. It returns a 200 and an empty JSON array.

                                            curl -i -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer oijsad80lksjdflsdflk" -H "System-Id-Header: 1234567890" -H "Triplea-Version: 2.6" -v http://127.0.0.1:8080/maps/listing
                                            *   Trying 127.0.0.1...
                                            * TCP_NODELAY set
                                            * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
                                            > GET /maps/listing HTTP/1.1
                                            > Host: 127.0.0.1:8080
                                            > User-Agent: curl/7.64.1
                                            > Accept: application/json
                                            > Content-Type: application/json
                                            > Authorization: Bearer oijsad80lksjdflsdflk
                                            > System-Id-Header: 1234567890
                                            > Triplea-Version: 2.6
                                            >
                                            < HTTP/1.1 200 OK
                                            HTTP/1.1 200 OK
                                            < Date: Thu, 17 Feb 2022 05:45:03 GMT
                                            Date: Thu, 17 Feb 2022 05:45:03 GMT
                                            < Content-Type: application/json
                                            Content-Type: application/json
                                            < Vary: Accept-Encoding
                                            Vary: Accept-Encoding
                                            < Content-Length: 2
                                            Content-Length: 2
                                            
                                            <
                                            * Connection #0 to host 127.0.0.1 left intact
                                            []* Closing connection 0
                                            

                                            According to closed PR that introduced the change (https://github.com/triplea-game/triplea/pull/9940), if I pass the Triplea-Version header then nginx should proxy me to the correct lobby. If the new nginx config is deployed, then it should read that header key and send me to the 2.6 lobby. If it isn't, then it will send me to the 2.5 lobby on every request. I sent the key with a value of 2.6 and was returned a 404.

                                            curl -i -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer oijsad80lksjdflsdflk" -H "System-Id-Header: 1234567890" -H "Triplea-Version: 2.6" -v https://prod2-lobby.triplea-game.org/maps/listing
                                            *   Trying 173.255.225.250...
                                            * TCP_NODELAY set
                                            * Connected to prod2-lobby.triplea-game.org (173.255.225.250) port 443 (#0)
                                            * ALPN, offering h2
                                            * ALPN, offering http/1.1
                                            * successfully set certificate verify locations:
                                            *   CAfile: /etc/ssl/cert.pem
                                              CApath: none
                                            * TLSv1.2 (OUT), TLS handshake, Client hello (1):
                                            * TLSv1.2 (IN), TLS handshake, Server hello (2):
                                            * TLSv1.2 (IN), TLS handshake, Certificate (11):
                                            * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
                                            * TLSv1.2 (IN), TLS handshake, Server finished (14):
                                            * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
                                            * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
                                            * TLSv1.2 (OUT), TLS handshake, Finished (20):
                                            * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
                                            * TLSv1.2 (IN), TLS handshake, Finished (20):
                                            * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
                                            * ALPN, server accepted to use h2
                                            * Server certificate:
                                            *  subject: CN=prod2-lobby.triplea-game.org
                                            *  start date: Jan 30 23:55:24 2022 GMT
                                            *  expire date: Apr 30 23:55:23 2022 GMT
                                            *  subjectAltName: host "prod2-lobby.triplea-game.org" matched cert's "prod2-lobby.triplea-game.org"
                                            *  issuer: C=US; O=Let's Encrypt; CN=R3
                                            *  SSL certificate verify ok.
                                            * Using HTTP2, server supports multi-use
                                            * Connection state changed (HTTP/2 confirmed)
                                            * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
                                            * Using Stream ID: 1 (easy handle 0x7ff154810000)
                                            > GET /maps/listing HTTP/2
                                            > Host: prod2-lobby.triplea-game.org
                                            > User-Agent: curl/7.64.1
                                            > Accept: application/json
                                            > Content-Type: application/json
                                            > Authorization: Bearer oijsad80lksjdflsdflk
                                            > System-Id-Header: 1234567890
                                            > Triplea-Version: 2.6
                                            >
                                            * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
                                            < HTTP/2 404
                                            HTTP/2 404
                                            < server: nginx/1.18.0 (Ubuntu)
                                            server: nginx/1.18.0 (Ubuntu)
                                            < date: Thu, 17 Feb 2022 06:27:01 GMT
                                            date: Thu, 17 Feb 2022 06:27:01 GMT
                                            < content-type: application/json
                                            content-type: application/json
                                            < content-length: 43
                                            content-length: 43
                                            
                                            <
                                            * Connection #0 to host prod2-lobby.triplea-game.org left intact
                                            {"code":404,"message":"HTTP 404 Not Found"}* Closing connection 0
                                            

                                            So the issue is not a code problem but a deployment one. One of two things is incorrect in the production environment:

                                            A: The nginx web server does not have the latest config deployed to it to properly proxy requests to the correct lobby.

                                            B: The 2.6 lobby as a whole, has not been deployed or is setup but running a 2.5 lobby.

                                            Until the 2.6 lobby is deployed and the nginx web servers config is updated, all 2.6 client requests for maps are going to return 404.

                                            This card I found on the Project schedule (https://github.com/triplea-game/triplea/projects/25#card-75012745) suggests that the 2.6 lobby has not been deployed but can be at any time. If this gets deployed, we can close 6 or more issues and be closer to releasing 2.6.

                                            DanVanAtta created this issue in triplea-game/triplea

                                            closed Header redirect/lobby variable port number #9940

                                            B Panther 2 Replies Last reply Reply Quote 1
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 4 / 9
                                            • First post
                                              Last post
                                            Copyright © 2016-2018 TripleA-Devs | Powered by NodeBB Forums