Zero-K Infra Guide
Jump to navigation
Jump to search
Zero-K Infrastructure is complicated and understanding it is most of the battle, this is an overview of the structure and contents of ZK Infra.
It's always a good idea to review dev Philosophy.
Contents
ZK's Devving Philosophy (social rules)
- "War is a product of anticommunication"
- Communicate with other devs about your changes/fixes, let them understand the issue. Do not make 'random' changes.
- "Do not create work for other people."
- Have responsibility for your changes/commit. Do not leave bugs that require other people to fix.
- "Readability & performance are equally important."
- Optimize code but not to the point of unreadability. Remember the rules of optimization:
- Don't.
- Don't (yet).
- Profile before doing it.
- Optimize code but not to the point of unreadability. Remember the rules of optimization:
- "If it ain't broke, don't fix it."
- Don't code fixes that nobody wants to problems that don't exist.
General overview
- Further information: Zero-K:Developing
- What's in what folder etc, goes here
Building the Launcher
Building ChobbyLauncher requires a few dependencies, MonoTorrent, PlasmaDownloader, and PlasmaShared. Ctrl-clicking all four folders in Visual Studio's Solution Explorer panel and selecting Build should succeed at producing the launcher executable.
More in depth look at each folder
What's happening with this page
To be filled in as I go and as I learn, right now I don't know anything for concrete so I'm hesitant to fill anything out here... yet.
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 216.73.216.107
Start request GET /mediawiki/index.php?oldid=7945&printable=yes&title=Zero-K_Infra_Guide
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "216.73.216.107",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "dvjriejji86k3cjk7it1h5iqseok2bt2" is unsaved, marking dirty in constructor
[session] SessionBackend "dvjriejji86k3cjk7it1h5iqseok2bt2" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1725481917", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1725481917", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1725481917", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1725481917", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Zero-K Infra Guide]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[localisation] LocalisationCache::isExpired(en): cache for en expired due to GlobalDependency
[localisation] LocalisationCache::recache: got localisation for en from source
[DBQuery] startAtomic: entering level 0 (LCStoreDB::finishWrite)
[DBQuery] endAtomic: leaving level 0 (LCStoreDB::finishWrite)
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
ParserOutput cache found.
Article::view: showing parser cache contents for current rev permalink
[DBPerformance] Sub-optimal transaction on DB(s) [localhost (wikidb229-mw_) (TRX#c9ecab)]:
0 3.880106 query-m: DELETE FROM `mw_l10n_cache` WHERE lc_lang = 'X' [TRX#c9ecab]
1 0.003084 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
2 0.003232 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
3 0.002577 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
4 0.002822 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
5 0.002625 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
6 0.002611 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
7 0.002466 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
8 0.002739 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
9 0.002615 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
10 0.002828 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
11 0.002806 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
12 0.002771 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
13 0.002821 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
14 0.002868 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
15 0.002751 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
16 0.004808 query-m: INSERT INTO `mw_l10n_cache` (lc_lang,lc_key,lc_value) VALUES ('X') [TRX#c9ecab]
17 0.001707 query-m: REPLACE INTO `mw_objectcache` (keyname,value,exptime) VALUES ('X')MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Zero-K Infra Guide]] are {edit,move}