123 Commits

Author SHA1 Message Date
Dylan K. Taylor
2291546610
phpstan: added rule to ban new $class
see #6635 for rationale on why we want to get rid of this

for now, this rule will prevent this anti-feature from being used in new code
2025-03-09 00:51:12 +00:00
Dylan K. Taylor
d0d84d4c51
New rule: explode() limit parameter must be set 2025-03-04 20:44:01 +00:00
Dylan K. Taylor
847ae26cad
PHPStan: don't remember possibly-impure function return values
I don't think we get much benefit from this, and the assumption that functions with a return value are pure is sketchy.
In any case, it's better to avoid these repeated calls anyway.
2025-01-08 02:04:06 +00:00
Dylan K. Taylor
5e0f03dff0
Stub PalettedBlockArray functions that work with arrays
and workaround PHPStan stupidity
2025-01-08 01:48:15 +00:00
Dylan K. Taylor
e34f34f9f4
Update BedrockProtocol dependency 2025-01-07 23:09:28 +00:00
Dylan K. Taylor
9633b7d8a7
Update to PHPStan 2.x 2025-01-07 22:34:43 +00:00
Dylan K. Taylor
f3cc4a28e1
Easy wins for PHPStan 2.0 support 2024-11-12 22:12:54 +00:00
Dylan K. Taylor
0065fe649f
New release workflow triggered by the merge of a PR changing
IS_DEVELOPMENT_BUILD to false

This is more streamlined than the previous approach, and works better
for a world where 1 person isn't doing all the work.

Now, the flow is simpler:
- Do changes (e.g. protocol update), changelog & set IS_DEVELOPMENT_BUILD to false all in a single PR, which can be squash-merged if desired
- Once the PR is merged, a draft release will be prepared
- RestrictedActions will automatically set IS_DEVELOPMENT_BUILD back to
  true and bump the version
- Tag will be created when the release is published

Previously, multiple PRs might be needed, and the PR containing the
release changelog couldn't be squash-merged. Manual intervention was
also required to create a tag and prepare a release.

This PR also includes new CI checks to check for basic errors like
forgotten changelog files to ensure changelog links work correctly.

Note: Only PRs from PMMP Team members with **write** access to the
repository can trigger release generation. Random people cannot trigger
release generation by sending PRs.
2024-10-31 13:57:38 +00:00
Dylan K. Taylor
3f7abf29a8
Added PHPStan rule to flag usages of legacy enum accessors provided by LegacyEnumShimTrait
closes #6061
2023-09-20 19:42:21 +01:00
Dylan K. Taylor
8572311bf4
Remove dead PHPStan stub
closes #6003
2023-08-21 14:57:26 +01:00
Dylan K. Taylor
c1638ffaab
Ban foreach by-reference at the PHPStan level 2023-08-08 17:08:13 +01:00
Dylan K. Taylor
e0630fbb25
pmmpthread support 2023-05-20 01:29:26 +01:00
Dylan K. Taylor
3b11191043
Merge remote-tracking branch 'origin/minor-next' into major-next 2023-03-22 22:49:22 +00:00
Dylan K. Taylor
01d557062a
Remove dead baseline 2023-03-19 16:41:01 +00:00
Dylan K. Taylor
68e862b6fa
Scrub PHPStan baselines (next-major) 2022-11-04 20:53:20 +00:00
Dylan K. Taylor
e86e8254a8
Workaround PHPStan "feature" phpstan/phpstan#7701 2022-08-20 16:29:26 +01:00
Dylan K. Taylor
345ac75aac
Remove PHPStan rules (no longer needed)
this is enforced by php-cs-fixer now instead.
2022-01-20 19:25:34 +00:00
Dylan K. Taylor
9c328690f8
Baseline for new rules (for now) 2022-01-20 16:46:41 +00:00
Dylan K. Taylor
b60dd1e9b4
Ban 'and' and 'or' operators via PHPStan 2022-01-20 16:44:59 +00:00
Dylan K. Taylor
9346ecdc39
Merge branch 'stable' 2021-11-25 00:01:48 +00:00
Dylan K. Taylor
c023c02b6c
MemoryManager: Removed obsolete workaround for $GLOBALS not being defined on threads
this was long since fixed, and everyone has since been forced to upgrade to pthreads 4.0.0, which definitely has the fix.
2021-11-24 23:57:55 +00:00
Dylan K. Taylor
269231c228
Ban foreach(arrayWithStringKeys as k => v)
this is not as good as phpstan/phpstan-src#769 (e.g. array_key_first()/array_key_last() aren't covered by this, nor is array_rand()) but it does eliminate the most infuriating cases where this usually crops up.
2021-11-15 22:52:05 +00:00
Dylan K. Taylor
f827a555d5
Merge branch 'stable' 2021-11-01 18:13:24 +00:00
Dylan K. Taylor
794142fe49
Merge l7/l8/l9 baselines into actual-problems
it doesn't serve any practical purpose to keep these separated, particularly since it's getting so difficult to figure out which errors are coming from which levels (since we always use 9, it doesn't really make any difference).
2021-11-01 17:27:31 +00:00
Dylan K. Taylor
ff27c5f7db
PHPStan 1.0.0 2021-11-01 17:24:20 +00:00
Dylan K. Taylor
f1cc168d26
phpstan: exclude a couple of files from analysis temporarily
close #4472
2021-10-29 00:23:13 +01:00
Dylan K. Taylor
b5699679ef
Merge commit 'e38866c4ba90f8efd5630dbe674fd7ca15f586ff' 2021-10-12 23:23:27 +01:00
Dylan K. Taylor
974d08efd6
Bump PHP minimum requirement to 8.0
PHPStan failed on 7.4 after updating to 0.12.99, and I figured it was less hassle to just do this than fix the build. In any case, we stopped shipping 7.4 months ago, and warned at 3.22 release that 7.4 support would soon be dropped.
2021-10-09 20:09:42 +01:00
Dylan K. Taylor
e38866c4ba
phpstan 0.12.99 2021-10-09 19:33:43 +01:00
Dylan K. Taylor
0ad663ff50
Merge remote-tracking branch 'origin/stable' 2021-10-05 01:17:59 +01:00
Dylan K. Taylor
a27c14c00c phpstan: exclude build/php from analysis
in case I built PHP in there, I don't want the install_data getting analysed and screwing up the analysis.
2021-10-05 00:14:44 +00:00
Dylan K. Taylor
57e2b16139
Dropped PreProcessor 2021-09-07 14:04:52 +01:00
Dylan K. Taylor
64347e9499
Merge branch 'stable' 2021-09-07 12:45:52 +01:00
Dylan K. Taylor
c948aa94aa
Fixed new files in build/ keeping getting missed 2021-09-07 12:39:54 +01:00
Dylan K. Taylor
5d0d1aa4c5
Include build/generate-build-info-json.php in analysis 2021-09-07 12:36:42 +01:00
Dylan K. Taylor
9b8be22015
Sort phpstan.neon 2021-09-07 12:32:19 +01:00
Dylan K. Taylor
7def3db781
Fixed generate-known-translation-apis script not getting PHPStan'd 2021-08-29 23:32:08 +01:00
Dylan K. Taylor
ee8b854f30
Add tools/ to PHPStan analysis 2021-08-29 23:31:24 +01:00
Dylan K. Taylor
6bbc0aae7d
Merge branch 'stable' 2021-08-29 23:23:30 +01:00
Dylan K. Taylor
f506c922b5
phpstan.neon.dist: fix indentation inconsistency
fuck you, phpstorm!

it doesn't have an option to use tabs for indentation in YAML, and YAML is the closest thing to NEON, so ...
2021-08-29 23:19:35 +01:00
Dylan K. Taylor
668df85e3f
Merge branch 'stable' 2021-08-20 23:08:17 +01:00
Dylan K. Taylor
ff4aa148ef
phpstan 0.12.95 2021-08-20 22:47:29 +01:00
Dylan K. Taylor
2293bd948d
Added KnownTranslationFactory and use it in as many places as possible
this makes translation usage much more statically analysable.
The only places this isn't used are:
- places that prefix translations with colours (those are still a problem)
- places where server/client translations don't match (e.g. gameMode.changed accepts different parameters in vanilla than in PM)
2021-08-10 14:50:40 +01:00
Dylan K. Taylor
b72d81be5e
Cleanup PHPStan baselines 2021-08-04 21:24:13 +01:00
Dylan K. Taylor
2b5667a56b
Move PHP minimum to 8.0 2021-07-26 20:29:39 +01:00
Dylan K. Taylor
09eac0e129
Merge remote-tracking branch 'origin/stable' 2021-07-26 20:14:33 +01:00
Dylan K. Taylor
01fe497c49
phpstan: use PHP 8.0 as primary version
I'm using 8.0 for local development now, so having the phpstan configs targeted at 7.4 by default makes things inconvenient.
2021-07-26 14:34:47 +01:00
Dylan T
0eb4231b51
Use OpenSSL for ECDH during client login, drop mdanter/ecc (#4328)
This brings a significant performance improvement to login sequence handling, reducing CPU cost of `PrepareEncryptionTask` by over 90% and `ProcessLoginTask` by over 60%. It also allows us to shed a dependency.
2021-07-22 23:04:00 +01:00
Dylan K. Taylor
94e16f416d
Added KnownTranslationKeys (generated) and start using it 2021-06-29 22:46:04 +01:00
Dylan K. Taylor
129ca7fee0
Silence a PHPStan bug
I'm not able to reproduce this one on the playground, but it still shows up even when disabling certain phpdocs...
2021-05-02 13:55:32 +01:00