-
Notifications
You must be signed in to change notification settings - Fork 335
Home
Welcome to the Freeciv-web wiki!
Freeciv-web is an Open Source strategy game implemented in HTML5 and WebGL, which can be played online against other players, or in single player mode against AI opponents.
This wiki is about the repository, like an extended README [Needs discussion]. To see the game's wiki, go here.
There are several Freeciv servers:
- You can currently play Freeciv-web here (Most popular server, 2D only). Last commit: 2021
- https://fciv.net/ Freeciv 3D (Focused on 3D). Last commit: 2024
- https://fcw.movingborders.es/ (Both 2D and 3D) Last commit: 2020
Thank you for your interest in contributing to Freeciv-web! You can check for features to add in TODO, and issues reported by other community members in issues. Feel free to report your own issues too. You can also contribute with 3d models. But please read the guidelines below first.
Freeciv is an open source project where contributions from the open source community is encouraged. There are multiple versions of Freeciv-web, and Freeciv-web can be hosted on multiple server instances. To get involved in one of these Freeciv-web instances, you may either contribute directly to the github.com/freeciv/freeciv-web repository by submitting a pull-request there, or contact one of the fork projects of Freeciv-web on GitHub, IRC, e-mailing lists, Discord or similar.[2]
We need to recognize that there are multiple competing Freeciv-web servers, and that the main freeciv/freeciv-web github repository must be generic and not specific to one site. We will get a better Freeciv-web service if we allow multiple servers to exists and compete.[2]
-
All changes to Freeciv-web must be done using Pull Requests on GitHub. Don't commit changes directly to the master or develop branch.[2]
-
Pull requests must be approved by two other Freeciv developers. Minor changes can be approved by one Freeciv developer. If there's no objections within 72h to the pull request, it's ok to merge it.[2]
-
Only freeciv maintainers team members have rights to merge commits.[2]
-
Don't break the build. All tests run by GitHub actions must pass successfully.[2]
-
The repository github.com/freeciv/freeciv-web should be generic, not specific to one particular Freeciv-web server instance or Freeciv-web fork.[2]
-
Try not to exceed 200 LOC +- in a single PR. Larger pull-requests are allowed when required.[2]
-
Avoid whitespace-only or other trivial changes that do not change logic.[2]
-
The best thing you can do is to keep commits and PRs contextual. Small PRs are great, as they're easy to review and approve. Large, multi-faceted PRs are more difficult to review, and may get rejected for one portion, though other portions would have been accepted if they were independent.[2]
-
A PR should generally have a purpose other than "fixing code"; changing lines just for the sake of style or syntax obscures the commit history of a file. In other words, the why of a line of code's existence can usually be determined by the comments in the previous commit for that line and those around it - git blame is used to see why a change was made, understand the context, and determine if, and how it can/should be modified. To change code simply for the sake of whitespace, or re-arranging lines is frowned upon, because it unnecessarily hides/buries history.[2]
This page was last updated on 2 of August 2023.
[1] Castañeda, M. (2017) Open source turn-based strategy game, Freeciv-web. Available at: https://fcw.movingborders.es/ (Accessed: 01 August 2023).
[2] zekoz (2018) Contributing to freeciv-web, GitHub. Edited by S. Kvilhaugsvik, M. Lindqvist, and A. Rosdal. Available at: https://github.com/freeciv/freeciv-web/blob/develop/doc/CONTRIBUTING.md (Accessed: 01 August 2023).