there were a lot of events recorded by gharchive.org of which 2,156,138 were push events containing 3,291,349 commit messages that amount to 246,282,565 characters filtered with words.py@e23d022007... to these 56 messages:
Botany Balance Pass (#1783)
First came the content, now comes the hammer.
-
Nukes Megaseed servitors from orbit.
-
Plants now age much, much slower and produce half as quickly. Ruins that had them now have a ruined seed vendor that can be salvaged for random seeds(and danger). Ships that had one now have a crate with some thematic starting seeds, and a Strange Seed. Ghostrole Ruins that relied on having all seeds locally now have a special biogenerator variant that can print a random seed for biomass.
-
Adds Genesis Serum. This can be splashed on a tile to make natural grass and some flora. Green your ship! Genesis Serum was made a while ago, on request for a way to add natural grass and flora to your ship. Since I had it lying around fully coded, I thought I might as well pr it with botany changes.
-
Gatfruit found in the seed vault have been replaced with Strange Seeds.
-
The chance to get Gatfruit from a demonic portal(plant variety) has dropped from 15% to 5%.
-
Corpse flowers now have liquid gibs and formaldehyde again.
Okay, hear me out
With this and Gardens, botany ships go from a "sit in your vessel for 2 hours" experience to an "explore and forage" one that better fits our feature arc. It goes without saying that this shouldn't be merged till Overmap 4.2 is, since it facilitates getting seeds from planets as part of exploration.
Gatfruit are funny, but it takes exactly one seed getting into the hands of a ship with a dna manipulator and the weapon balance is eradicated from the game completely(for the round, at least.) This is more problematic here then it was on TG, since our rounds tend to be 5 hours long rather then 1. This has been long coming. I'll reverse this if we ever get that Plantlock variant we wanted a while ago.
Corpse flowers even have formaldehyde and gibs on tg, not sure what happened there.
🆑 add: Ruined megaseed servitors can now be found on the frontier, carrying a bounty of seeds for intrepid adventurers. balance: the time it takes for plants to reach a lethal age has been increased massively. balance: Plant production time increased a bit to compensate. balance: megaseed servitors have been removed from ships and ruins. Ships that carried one now have a crate with some starting seeds. balance: removes gatfruit from the seed vault pool. balance: reduces the chance of getting gatfruit from a plant-themed demonic portal significantly. balance: corpse flowers once again have formaldehyde and liquid gibs. add: Adds Genesis Serum, a reagent that transforms tiles into natural grass on splash, then causes some natural flora objects to grow. Turn your ship green! /🆑
Adds preference for "Tagger" paint color. (#74281)
Per the title, this PR allows you to pick your starting paint color from the "Tagger" quirk on the character preferences menu.
This replaces the starting color being random; it does not prevent you from changing the color later as normal.
It's a minor quality of life change. This will mostly be helpful to players who have some "signature" color they like to use, to prevent having to manually select it (and possibly input a color code) every round. It will be of less relevance to those who tend to select new colors every round anyway.
Possible downsides are mainly adding another pref to the menu, although this shouldn't be too much of an annoyance since it only appears if you already have the relevant quirk. It does also remove the ability to have a randomly-chosen paint color, though I'm not sure if that matters.
🆑 qol: you can choose your default paint color for the "Tagger" quirk from prefs. /🆑
Servant of Wrath
Records and Instability
Dash speed up
Fuck you I'll space indent all I like
There was some fuckin lint in this PR
God damned there's a lot of lint in here
Faction Check
Sprite update, minor bug fixes
Floating and Gun and Acid
Minor Records
Small update
Unnerfs resists
AoE hit fix
Gun update real
more res should mean less talk
Pixel Fix
Sound... Fix?
Broke the staff's legs, fuck those guys.
lmfao audio pains
Gun Rename, Spawn nerf
NO MORE FRIENDS FROM GUN
Faction change
acid tweak
LINT!
SW Code and Balance
SoW Temp commit
Scuff-Fix
SoW bonk update
Hermit range increase and ranged damage decrease
visual fix
Ending adjustments
I forgot to carry the 4
Visual indicator
minor fixes
Instability Tweaks
Paperwork Update
Anti-Self-Burn
Ending Update
Right view
A check that should be a non-issue but i'm making sure!
Breach Update and EGO update
More goo and FEMALE
Improvement and new Icons
Sol is now a Subsystem, Coffins lock themselves, Bloodsuckers don't constantly die, probably (#862)
- Turns Sol into a Subsystem & Many more
Turns Sol into a subsystem and hooks Bloodsuckers onto it via signals instead of doing a ton of for() loops anywhere. This made Sol incredibly fucking fast, so I halved the speed so it only ticks every 2 seconds.
I also improved the sunlight hud to update with regular bloodsucker updates to avoid some useless proc overhead and fixed Coffins not locking by themselves.
-
Torpor now ends, moves exiting torpor to its proper place
-
round it
-
fix comment
-
fix CI
Removes punch holopara type (#918)
- Removes punch holopara type
The punch holoparasite was repathed to standard, it was there the whole time what the HELL
-
Update bloodsucker_guardian.dm
-
fix to guardians
-
Update bloodsucker_guardian.dm
-
fuck you
-
Update bloodsucker_guardian.dm
Alternate Version Tests (#281)
-
AltVer Checks I think? Co-authored-by: Mothblocks [email protected]
-
1603 target
-
support script
-
HOLY SHIT CAN I READ
-
e
-
HOLY FUCK CAN I READ
-
Disable shortkill version check
The Lizardening Part One (And Friends) (#1845)
This PR changes a lot of sprites. It's honestly too much. Namely:
- Explorer Equipment + Prototype
- Syndicate clothing
- Digitigrade lizard legs
- A new tail from Halcyon.
- Magboots from Zeta. Originally PR'd to tgstation.
- Colored (not greyscale! Ha Ha!) jumpsuits from Imaginos.
Heavy inspiration from the work of Imaginos, Halcyon, Mqiib, and 2cents#8442 for the original leg-work. (Haha, get it?) The new digitigrade sprites started as a twinkle in the eye of Mqiib, for yogstation(?) After myself and Halcyon saw those, an epihpany struck. Perspective makes things cool and digitigrade perspective was BAD.
I'll include a collage image of the new sprites if it's needed later. Preview below:
lizard, Death of Codersprites
🆑 add: New Digitigrade lizard sprites. add: Various syndicate and mining clothing resprites. add: Sarathi can now have an incredibly large tail. /🆑
upgrade to latest dependencies
bumping k8s.io/kube-openapi 3ee0da9...67bda5d:%0A > 67bda5d Merge pull request # 308 from alexzielenski/fieldlevelannotation%0A > 011e075 Merge pull request # 302 from ruquanzhao/branch2%0A > 4d09b3c add field level override integration test for openapi gen%0A > c39d0f6 Merge pull request # 306 from apelisse/go-1.18%0A > dff3465 Remove newlineReporter custom report%0A > 74b52a2 update smd to 4.2.3%0A > 1062c7a Merge pull request # 304 from dims/switch-to-released-version-of-v3.8.0-github.com/emicklei/go-restful/v3%0A > 0bed9f0 Update to go1.18%0A > 89ff079 upgrade ginkgo to ginkgo/v2%0A > 48d47d9 remove unused function%0A > 31174f5 Merge pull request # 303 from dims/move-to-newer-v3-version-of-go-restful%0A > 77c5a1e Switch to released version of v3.8.0 - github.com/emicklei/go-restful/v3%0A > bff9878 add ability to override structType with field-level annotation%0A > 5e7f5fd Merge pull request # 300 from Jefftree/remove-bazel-references%0A > ca8f27e Move to newer version (v3) of github.com/emicklei/go-restful%0A > b28bf28 Merge pull request # 283 from alexzielenski/gnostic_conversion%0A > fa41ef1 Remove bazel references%0A > c715a76 add direct conversion for gnostic v2 types%0Abumping github.com/google/go-cmp d103655...f144a35:%0A > f144a35 Additional cleanup with Go 1.13 as minimal version (# 295)%0A > 63c2960 remove xerrors (# 292)%0A > 71220fc Use string formatting for slice of bytes (# 294)%0A > 4664e24 Fix printing of types in reporter output (# 293)%0A > 79433ac Run tests on Go 1.18 (# 290)%0A > 039e37c Add //go:build lines (# 285)%0A > 3242228 Drop hacks to work around Go reflection bugs in Go1.9 (# 282)%0A > f59cd61 Update minimum supported version to go1.11 (# 281)%0A > 6faefd0 Reduce minimum length for specialize string diffing (# 275)%0A > f1773ad Use any alias instead of interface{} (# 276)%0A > 9094ef9 Change build status badge (# 269)%0A > 3ee52c8 Fix spelling mistakes (# 271)%0A > 395a0ac Use sha256 in test (# 268)%0A > 402949e Merge pull request # 266 from dsnet/fix-format%0A > 290a6a2 Avoid shadowing variable (# 263)%0A > d5fcb38 Fix textual printing of byte slices%0A > 248ccff Fix staticcheck findings (# 262)%0Abumping golang.org/x/mod 9b9b3d8...86c51ed:%0A > 86c51ed all: remove golang.org/x/xerrors dependency%0A > 41445a1 zip: update TestUnzipSizeLimitsSpecial for CL 366854%0A > 145421b all: gofmt%0A > 605edab sumdb/note: relax prescriptiveness of key hash format%0A > a410e2d sumdb/note: catch a Verifiers that returns the wrong Verifier%0Abumping golang.org/x/sys 4e6760a...90c8f94:%0A > 90c8f94 unix: avoid converting non-pointers to unsafe.Pointer in PtraceIO%0A > 4e121b1 unix: add missing address operator in initxattrdest%0A > 68f9dcb windows/debug/svc: buffer channel passed to signal.Notify%0A > 0e1262c unix: add ptrace(PT_DENY_ATTACH) wrapper for darwin%0A > 6938dae unix: add missing constants used with struct Timex on Linux%0A > 01b330b unix: improve flaky solaris test logging%0A > e7d7f63 all: fix some comments%0A > 7a75290 unix/linux: update to glibc 2.36%0A > 4112509 windows/mkwinsyscall: write source to temp file if formatting fails%0A > 71da690 windows/mkwinsyscall: support "." and "-" in DLL name%0A > b829a39 unix/linux: update to gcc 13.0.0, qemu 7.1.0 for loong64%0A > c3037ed unix: add support for clock_adjtime on Linux%0A > 13fe000 cpu: add IsBigEndian%0A > 17fce3a unix: avoid false positive in vet shift check%0A > a6f4650 windows: use UTF16FromString and UTF16ToString from syscall%0A > 6e4d1c5 unix/linux: update to Linux kernel 6.1 and Go 1.20-rc2%0A > b8be2fd cpu: add //go:build line to cpu_gccgo_x86.c%0A > 1e9f341 unix: add //go:build line to gccgo_c.c%0A > b60007c unix: add Uvmexp and SysctlUvmexp for NetBSD%0A > b751db5 unix: gofmt hurd files after CL 459895%0A > b360406 unix: support TIOCGETA on GNU/Hurd%0A > 3086868 unix: regen on OpenBSD 7.2%0A > 2b11e6b unix: remove Mclpool from openbsd types%0A > 7c6badc unix: convert openbsd/mips64 to direct libc calls%0A > 3b1fc93 unix: avoid allocations for common uses of Readv, Writev, etc.%0A > 2204b66 cpu: parse /proc/cpuinfo on linux/arm64 on old kernels when needed%0A > 72f772c unix: offs2lohi should shift by bits, not bytes%0A > cffae8e unix: add ClockGettime on *bsd and solaris%0A > 96e75de unix: improve Sendmsg and Recvmsg documentation%0A > 127c0dd unix/linux: use Go 1.20rc1 to generate files%0A > 3ca3b18 windows: add GetLargePageMinimum%0A > d684c6f execabs: isGo119ErrDot: use errors.Is instead of string-matching%0A > fc697a3 unix: add ParseOneSocketControlMessage to parse control messages without allocating%0A > 5726498 unix: in Linux sendmsgN actually send one normal byte%0A > 95e765b x/sys/unix: make ReadDirent available on zOS%0A > 090e330 unix: add support for openbsd/ppc64%0A > 3938a4f cpu: add support for ppc64 on platforms other than aix and linux%0A > a970992 unix: add support for openbsd/riscv64%0A > e2bdbfe unix: flip openbsd libc build tags%0A > abe0a0a windows: replace uses of Close() with CloseHandle()%0A > 68d869b unix: migrate some illumos definitions to solaris%0A > 84dc82d all: use grep -E/-F instead of fgrep/egrep%0A > f11e5e4 unix: use unsafe.Slice in (*FileHandle).Bytes%0A > 6fa7a7c windows: allow calling WSASendto with nil Sockaddr%0A > c57c793 unix: add SIG_BLOCK and friends for Linux%0A > d9d178b unix: add PthreadSigmask for Linux%0A > 8cfa568 unix: allow calling Sendto with nil Sockaddr%0A > fb04ddd windows: add DWM window attribute related syscalls%0A > 7b5979e unix: remove Go 1.12 compatibility on darwin%0A > 63ea559 unix: add namespaced versions of Listxattr/Flistxattr/Llistxattr on BSD%0A > 76c7481 all: simplify unsafe.Slice usage in {Byte,UTF16}PtrToString%0A > 3275c40 windows: add window handle related system calls%0A > aba9fc2 unix: use unsafe.Slice instead of unsafeheader package%0A > 2771309 unix: fix event port panic after close%0A > 7ac13a9 unix: don't call t.Fatal from goroutine in TestSendmsgBuffers%0A > 87db552 plan9: use unsafe.Slice instead of unsafeheader package%0A > d0df966 unix: support all Setuid/Setgid and related syscalls on Linux%0A > 9e1f761 x/sys/unix: use uintptr for tracee addresses on FreeBSD%0A > d48e67d unix: use strconv.Itoa instead of local implementation%0A > 2c41d75 unix: add IoctlLoop{Get,Set}Status64 on linux%0A > c680a09 unix: improve solaris event port panic message%0A > 20c2bfd cpu: fix cpu cacheLineSize for arm64 darwin(a.k.a. M1)%0A > 2296e01 windows: remove duplicate words from comments%0A > 5a39038 unix: convert openbsd/arm to direct libc calls%0A > fbc7d0a unix: convert openbsd/386 to direct libc calls%0A > 5f8f020 unix: convert openbsd/amd64 to direct libc calls%0A > 74508da unix: convert openbsd/arm64 to direct libc calls%0A > 1c4a2a7 unix: make mkasm_darwin.go usable with other operating systems%0A > 3d627bb cpu: implement CPU feature detection for openbsd/arm64%0A > e9af53b unix: improve and simplify mkasm_darwin.go%0A > 8e32c04 unix: add missing IFLA_ consts on linux%0A > e052cef unix/linux: run each mkall.go target in a seperate goroutine%0A > 6e608f9 unix: update perf_event_attr_go%0A > a90be44 unix: fix sendmsgN return value for empty iovecs and non-empty oob%0A > 66a0560 windows: support Windows SOCKADDR_BTH structure%0A > 1609e55 windows: add QueryWorkingSetEx%0A > 3c1f352 unix: implement recvmsgRaw and sendmsgN on aix%0A > e65921a unix/linux: use Go 1.19rc2 instead of building gotip%0A > 8c9f86f A+C: delete AUTHORS and CONTRIBUTORS%0A > c6bc011 unix: add socket constants%0A > c0bba94 unix: add constants for netlink/audit%0A > 0a85c31 unix: add freebsd/riscv64 support%0A > 5a0f066 cpu: support non-linux OS for riscv64%0A > 05e143d unix: regenerate on FreeBSD 12.3%0A > 3183198 windows: add remaining IpAdapterAddresses fields%0A > 179beb0 windows: add GetBestInterfaceEx%0A > f75cf1e unix: provide Msghdr.SetIovlen on openbsd/mips64%0A > 87e55d7 unix: add RecvmsgBuffers and SendmsgBuffers%0A > 175b2fd unix: change Solaris Iovec.Base to *byte%0A > 4f61da8 unix: use ByteSliceToString in TestMountUnmount on zos%0A > ff8c426 unix: add support for TCP_CONNECTION_INFO on macOS%0A > bf31f56 unix: add MemfdSecret on linux/riscv64%0A > af78867 unix/linux: update to Linux kernel 5.19-rc2%0A > 003f7fa unix: implement Fstat{,at} using Statx on linux/loong64%0A > 6c1b26c unix: always zero the higher bits of return value on linux/loong64 syscalls%0A > 9f5ed59 cpu: use xgetbv intrinsic%0A > 635b8c9 unix: add Getsid function on Solaris%0A > bc2c85a unix: update openbsd Statfs_t fields%0A > f9599da unix: use ByteSliceToString in TestIoctlPtmget%0A > dcacdad unix: use ByteSliceFromString in (*Ifreq).Name%0A > 5e4e11f unix/linux: use gotip instead of patched Go 1.18%0A > 45d2b45 unix: add mount(2) for macOS%0A > 988cb79 execabs: add legacy "//+build" constraints%0A > b6088cc execabs: make safe for Go 1.19%0A > b5fbb47 all: gofmt%0A > 84afa8d windows: do not change stdio handle inheritance%0A > 9388b58 unix: add loong64 tag to endian_little.go%0A > 88d2bb9 unix: add generate component files support for linux/loong64%0A > 33da011 unix: check correct group in Faccessat%0A > 889880a unix: fsmount fspick fsopen linux syscall%0A > 83041a3 unix: provide linux/loong64 assembly for syscalls%0A > 0a89baf cpu: add basic support for GOARCH=loong64%0A > a24fb2f unix: add constants for netlink/routing rules%0A > 3f8b815 unix/linux: update to Linux kernel 5.17%0A > 289d7a0 unix: add MoveMount syscall on linux%0A > 1e041c5 unix: revert MemfdSecret changes to riscv64%0A > b1e9470 unix: add MemfdSecret%0A > 6acee93 unix: regenerate OPEN_TREE_CLONE%0A > 483a9cb unix: add OpenTree on linux%0A > e17cdc4 unix: fix staticcheck issues%0A > 43be30e unix: skip Linux TestPidfd if Waitid returns EINVAL%0A > d36c6a2 unix/linux: update to Go 1.18%0A > 530d081 unix: add utimensat libc wrapper on darwin%0A > 3677212 unix: implement Waitid on Linux%0A > 594fa53 unix: solaris/illumos Event Ports ENOENT cleanup%0A > a9b59b0 unix: add PidfdSendSignal on Linux%0A > 2edf467 windows: optimize UTF16{,Ptr}FromString%0A > 51cd998 unix: unify Recvmsg epilogues%0A > 22a226b unix: unify Sendmsg prologues%0A > 2c4bbad unix/internal/mkmerge: correct typo%0A > 039c03c unix: add race annotations to Pread and Pwrite%0A > 27bbf83 windows: add race annotations to Windows ReadFile and WriteFile%0A > b874c99 cpu: fix typo in comments%0A > 22a9840 unix: add nl80211 generic netlink constants for Linux%0Abumping k8s.io/api 44d27eb...88912e3:%0A > 88912e3 Update dependencies to v0.25.4 tag%0A > e7b469b Merge pull request # 112808 from cheftako/automated-cherry-pick-of-# 112689-upstream-release-1.25%0A > 1102e6f Updated vendor to the new preferred versions.%0A > fce3016 Merge pull request # 112161 from pohly/automated-cherry-pick-of-# 112129-origin-release-1.25%0A > 29513a2 dependencies: update to ginkgo v2.1.6 and gomega v1.20.1%0A > 5c4a1b1 Merge remote-tracking branch 'origin/master' into release-1.25%0A > 714e431 Merge pull request # 111657 from aojea/hc_nodeport%0A > 8608211 Merge pull request # 109090 from sarveshr7/multicidr-rangeallocator%0A > 7840548 doc services healthcheckNodePort is inmutable%0A > b88698c Merge pull request # 111258 from dobsonj/kep-596-ga-feature-flag%0A > a7621fb Auto generate code for ClusterCIDR API%0A > 2f9e588 Merge pull request # 111113 from mimowo/retriable-pod-failures-job-controller%0A > b964bc7 Move CSIInlineVolume feature to GA%0A > 14e048f Introduce networking/v1alpha1 api, ClusterCIDR type%0A > 3be517c Merge pull request # 111696 from liggitt/go119mod%0A > fe83bea Support handling of pod failures with respect to the specified rules%0A > 991b481 Merge pull request # 108692 from jsafrane/selinux%0A > e281bde Update go.mod to go1.19%0A > f42f86a Regenerate files%0A > a39f97c Add CSIDriverSpec.SELinuxMount%0A > c8f0601 Merge pull request # 111677 from dims/stop-panic-in-govet-levee%0A > ea1451a run lint-dependencies and follow directions%0A > a2b9bcc Stop panic in govet-levee CI job%0A > ad89a10 Merge pull request # 110495 from alexzielenski/atomic-objectreference%0A > e590d1f Merge pull request # 111090 from kinvolk/rata/userns-support-2022%0A > d978b18 mark persistentvolume's claimRef as granular%0A > 7488a8c Merge pull request # 111435 from soltysh/cronjob_timezone_beta%0A > 2a31718 Update autogenerated files%0A > d351ecd Merge pull request # 111557 from alexzielenski/update-smd-422%0A > f990455 Update generated%0A > 9448de2 pkg/apis, staging: add HostUsers to pod spec%0A > ae37896 update smd to 4.2.3%0A > 010c740 Promote CronJobTimeZone to beta%0A > 1b82208 Merge pull request # 110959 from mimowo/retriable-pod-failures-pod-conditions%0A > 08dedd8 Introduction of a pod condition type indicating disruption. Its reason
field indicates the reason:%0A > f5e1938 Merge pull request # 111587 from ialidzhikov/k8s-utils@ee6ede2d64ed%0A > b3c30ab Update k8s.io/utils
to ee6ede2d64ed
%0A > be740eb Merge pull request # 111441 from denkensk/respect-topology%0A > a76179a Merge pull request # 111402 from verb/111030-ec-ga%0A > acf399c code generated by script for MatchLabelKeys in TopologySpreadConstraint%0A > 537ea12 Merge pull request # 111442 from ialidzhikov/k8s-utils@56c0de1e6f5e%0A > d8280df Remove EphemeralContainers beta disclaimer%0A > d96a10b api defination for MatchLabelKeys in TopologySpreadConstraint%0A > 8f210eb Update k8s.io/utils
to 9bab9ef40391
%0A > 04aced3 Merge pull request # 111254 from dims/update-to-golang-1.19-rc2%0A > dda4dee Generate and format files%0A > f6f0d0e Merge pull request # 111194 from ravisantoshgudimetla/promote-maxSurge-ga%0A > f77fa25 Merge pull request # 111229 from ravisantoshgudimetla/promote-podOS-GA%0A > 7b89ea1 Generated: maxSurge for DS%0A > 9a18f7a Merge pull request # 110178 from kevindelgado/validation-beta-1-25%0A > 844753e Generated: PodOS field to GA%0A > d895ab7 api: Promote DS maxSurge to GA%0A > 096c9df Merge pull request # 110388 from sanposhiho/graduate-mindomain-beta%0A > 1d3dcfc update kjson%0A > bdc8eb0 api: Promote PodOS field to GA%0A > fa32a3a Merge pull request # 110896 from ravisantoshgudimetla/promote-minReadySec-sts-update-ga%0A > eeea400 Update doc comment%0A > 08c75a7 Merge pull request # 111008 from cici37/bumpCEL%0A > 40e8eea Generated: minReadySeconds for STS%0A > 0110f55 Update v1 package to graduate minDomains to beta%0A > 0c6d49d Bump cel-go to v0.12.0%0A > df27ddf api: Promote statefulset MinReadySeconds to GA%0A > b9bd732 Merge pull request # 110564 from j4m3s-s/add-ports-doc-fix%0A > 51e4c4a Merge pull request # 111010 from thockin/remove-refs-to-EndpointSliceNodeName%0A > b7c39ad Fix description of Ports in PodSpec%0A > 248dcdb Merge pull request # 111001 from pohly/klog-update%0A > 4756865 Remove obsolete refs to gate EndpointSliceNodeName%0A > b5b8fba build: update to klog v2.70.1%0A > 8488949 Merge pull request # 110990 from thockin/svc-typenames-IPFamilyPolicyType%0A > ed77e2e Rename IPFamilyPolicyType => IPFamilyPolicy%0A > 33ab20e Merge pull request # 110868 from rikatz/endport-to-ga%0A > f18d381 Merge pull request # 110831 from chendave/openapi%0A > 270b22d Generated files for endPort promotion%0A > 724b071 Bump kube-openapi
to the latest%0A > e803bc1 Promote endPort to GA%0A > b98f264 Merge pull request # 110724 from pohly/klog-update%0A > 61fcc0f build: update to klog v2.70.0%0A > edebc67 Merge pull request # 110561 from Shubham82/extend_Description%0A > 60387f6 Merge pull request # 110378 from lucacome/bump-grpc%0A > 1cba8e4 RBAC: Modify the Description for the apiGroup.%0A > 89ed2a8 Bump grpc to v1.47.0%0A > 6b0201d Merge pull request # 110520 from dims/update-gopkg.in/yaml.v3-to-v3.0.1%0A > 2c10714 Update gopkg.in/yaml.v3 to v3.0.1%0A > d50b1bc Merge pull request # 109293 from iamNoah1/improve-ingressclassname-api-doc%0A > 832b1f4 Merge pull request # 109938 from dims/move-from-k8s.gcr.io-to-registry.k8s.io%0A > bba462c generate ressources after change request%0A > ed22bb3 Move from k8s.gcr.io to registry.k8s.io%0A > d1f2717 add change requests%0A > be84346 Merge pull request # 109968 from kerthcet/feature/optimize-apifield-comment%0A > e85f85a generate ressources after change request%0A > 209903b amend comment of NodeInclusionPolicy%0A > bac3ee2 add change requests%0A > ae35a85 Merge pull request # 108492 from kerthcet/feature/add-NodeInclustionPolicies%0A > a3f4ca9 generate ressources after change request%0A > 202371b feat: add NodeInclusionPolicy to TopologySpreadConstraint in PodSpec%0A > 4e39c88 add change requests%0A > 9b88471 Merge pull request # 109891 from pohly/log-dependency-update%0A > af2d87a add generated assets%0A > 548c53c Merge pull request # 109602 from lavalamp/remove-clustername%0A > 0f669be dependencies: logr and zapr v1.2.3%0A > 4b894ff first shot improving api doc for ingressclassname%0A > 5e2f5ad Merge pull request # 109308 from danwinship/traffic-policy-docs%0A > eb567e7 compat%0A > a2ee8c7 Merge pull request # 109803 from liggitt/api-fixture-data%0A > 85c4c9d Clarify ExternalTrafficPolicy/InternalTrafficPolicy definitions%0A > fcb6509 Merge pull request # 109440 from liggitt/gomod-1.18%0A > 1afa1ae Remove v1.22.0 API fixture data%0A > 3f52c1d Regenerate vendor%0A > a2ae4d4 Add v1.24.0 fixture data%0A > d672b36 Merge pull request # 109506 from wangrzneu/fix-comment%0A > f2f8c15 Merge pull request # 109421 from vpnachev/fix/typo-in-token-request-doc-string%0A > 35e4518 fix IngressClassParametersReferenceScopeCluster comment in staging/src/k8s.io/api/networking%0A > af4f75e Merge pull request # 105963 from zhucan/bugfix-95367%0A > aed3ebb Fix typo in TokenRequest doc string%0A > 7a89730 Merge pull request # 109436 from JamesLaverack/revert-108290%0A > 56fb9f0 generated code and doc%0A > 1f82dd7 Revert "Introduce APIs to support multiple ClusterCIDRs (# 108290)"%0A > 6f81c7b csi: add nodeExpandSecret support for CSI client%0Abumping k8s.io/utils 3a6ce19...8e77b1f:%0A > 8e77b1f Merge pull request # 265 from danwinship/fix-dumb-api-mistake%0A > 1a15be2 Merge pull request # 270 from dashpole/trace_panic%0A > ba5a213 Fix an API accident with net.IPFamily%0A > 61b03e2 Merge pull request # 268 from petr-muller/deprecation-convention%0A > 71bfc7b make traces safe for concurrent use%0A > cfd413d Merge pull request # 263 from saltbo/fix-invalid-gha-goverion%0A > d90ac11 pointer: make deprecation comments follow convention%0A > 460b63a demonstrate trace panic%0A > 4270251 Merge pull request # 259 from LJTian/master%0A > 4a5ee0b fix: update the go-versions format for the gha%0A > 665eaae Merge pull request # 261 from liggitt/clean-deps%0A > 1be0ed5 Update Go standard libs address to reduce jump time%0A > 7796b5f Merge pull request # 260 from dims/bump-dependencies-and-go-language-version%0A > 25648b1 Drop testify dependency%0A > e9cbc92 Merge pull request # 242 from MushuEE/patch-3%0A > c9660c8 Bump dependencies and go language version%0A > 49b64f9 Drop afero dependency%0A > ad59060 Merge pull request # 253 from kschoche/add_uint_to_pointer_pkg%0A > d7bf925 Ineffective break statements triggering SA4011%0A > 2e139fc Merge pull request # 254 from dims/bump-version-of-golang-to-1.19%0A > d45ae35 add uint64 and uint to pointer pkg%0A > ee6ede2 Merge pull request # 252 from ialidzhikov/cleanup/testdata%0A > e3a7968 Bump version of golang to 1.19%0A > 9bab9ef Merge pull request # 251 from dims/tolerate-path-lookup-issues-in-golang-1.19%0A > a4934a1 Move test data file under testdata/%0A > 56c0de1 Merge pull request # 249 from ialidzhikov/pointer-func-deprecations%0A > ee5bcf5 tolerate path lookup issues in golang 1.19%0A > f6158b4 Merge pull request # 248 from aojea/ci%0A > 161a940 Properly deprecate the funcs from the pointer pkg%0A > 74ebc72 IP.UnmarshalText() uses net.Parse internally%0A > 105d5f1 fix linter%0A > f2fee6f call to (*T).Fatalf from a non-test goroutine (govet)%0A > 8cc7140 update github CI%0Abumping google.golang.org/grpc aff571c...5b509df:%0A > 5b509df Change version to 1.47.0 (# 5377)%0A > ed75225 Don't call cmp in non testing file (# 5370)%0A > 081c688 client: fix hctx leakage in addrConn.createTransport (# 5337)%0A > 30b9d59 client/SubConn: do not recreate addrConn if UpdateAddresses is called with the same addresses (# 5373)%0A > 459729d xds/priority: avoid sending duplicate updates to children (# 5374)%0A > 9f4b31a Added HTTP status and grpc status to POST check (# 5364)%0A > 333a441 xds/ringhash: update connectivity state aggregation, and make sure at least one SubConn is connecting in TF (# 5338)%0A > e23132c Added support for metadata matcher invert (# 5345)%0A > d9b952b xds/resolver: use correct resource name in log message (# 5357)%0A > db79903 xds/priority: start the init timer when a child switch to Connecting from non-transient-failure state (# 5334)%0A > 462d867 xds: Add Outlier Detection configuration and CDS handling (# 5299)%0A > 5c46f1a xdsclient/csds: fix leaked metadata (# 5339)%0A > ee67b3d xds: Handle loops and ignore duplicates in aggregated cluster handling (# 5317)%0A > 799605c client: fix potential panic during RPC retries (# 5323)%0A > 78b13f2 xds/client: hold authority mutex before making a new authority (# 5331)%0A > de73b2b examples: improve error messages (# 5329)%0A > dc86d5d internal/proto: update generated code (# 5332)%0A > 7567a5d documentation: fix typo in RegisterCodec godoc (# 5306)%0A > 3bf6719 test/interop: register RLS to the interop test client (# 5272)%0A > 8d68434 gcp/observability: correctly test this module in presubmit tests (# 5300)%0A > ebd0983 xds/eds: reject EDS resources with multiple instances of the same locality in the same priority (# 5303)%0A > 9711b14 server: clarify documentation around setting and sending headers and ServerStream errors (# 5302)%0A > 924e484 server: return better status for context err when writing header (# 5292)%0A > 5682cc6 Change version to 1.47.0-dev (# 5298)%0A > 4467a29 gcp/observability: implement logging via binarylog (# 5196)%0A > 18fdf54 cmd/protoc-gen-go-grpc: allow hooks to modify client structs and service handlers (# 5240)%0A > 337b815 interop: build client without timeout; add logs to help debug failures (# 5294)%0A > e583b19 xds: Add RLS in xDS e2e test (# 5281)%0A > 0066bf6 grpc: perform graceful switching of LB policies in the ClientConn
by default (# 5285)%0A > 3cccf6a xdsclient: always backoff between new streams even after successful stream (# 5280)%0A > 4e78093 xds: ignore routes with unsupported cluster specifiers (# 5269)%0A > 99aae34 cluster manager: Add Graceful Switch functionality to Cluster Manager (# 5265)%0A > 42cadc1 test: cleanup balancer switching tests (# 5271)%0A > b6873c0 grpc: move to TransientFailure
in pick_first
LB policy when all addresses are removed (# 5274)%0A > 474948a github: run all testing jobs to completion even if one fails (# 5282)%0A > c57d2b1 clientconn: fix target parsing tests to be tolerant to new url.URL field OmitHost (# 5279)%0A > 562e12f test: use channelz instead of stats handler to determine RPC count (# 5275)%0A > e63e123 advancedtls: remove the usage of CDP in CRL enforcement (# 5218)%0A > 3a74cd5 balancergroup: Add trigger point to gracefully switch a child (# 5251)%0A > 34660d1 test: use t.Fatal
instead of panic
for service config parsing errors (# 5266)%0A > 96bdede pickfirst: cleanup tests (# 5263)%0A > e49486d test: add a test for clientConn close with pending RPC (# 5264)%0A > 2fccb82 metadata: copy slices in FromContext() functions (# 5267)%0A > 9d08896 github: update to test with Go 1.18 (# 5262)%0A > 597e5d1 don't apply defaultSC upon receipt of invalid service config (# 5257)%0A > 51ddcba xds: suppress redundant updates only when we are SERVING (# 5258)%0A > 4635bf2 make the RLS LB policy name available in the internal package (# 5259)%0A > 50d0d0a server: set TCP_USER_TIMEOUT socket option for linux (# 5219)%0A > 7840bd6 grpc: add a comment explaining why updateClientConnState is handled inline (# 5261)%0A > 7ea4af9 internal/googlecloud: refactor OS-dependent code (# 5239)%0A > 1ffd63d binarylog: generalize binarylog's MethodLogger preparing for new observability features (# 5244)%0A > 63bdcbc xds/interop: add xds_k8s_lb test suite (# 5250)%0A > 89f3195 interop/client: simplify fallback test client and parameterize fallback deadline (# 5248)%0A > 8078d1d balancergroup: Switched subBalancerWrapper to wrap a gracefulswitch.Balancer (# 5245)%0A > 6131e9d examples: regenerate certs to use SHA256 signing algorithm (# 5256)%0A > f95b001 xds: avoid log spam during server mode switches (better A36 compliance) (# 5215)%0A > 97c3143 xds/client: accept resources wrapped in discoverypb.Resource message (# 5242)%0A > 6c3ccbe grpc: remove remaining usages of grpc.WithInsecure() (# 5246)%0A > fbe4ccb xds/client: include Node ID in error messages from the XdsClient (# 5223)%0A > c4cabf7 grpc: handle invalid service configs by applying the default if available (# 5238)%0A > 94ee386 test: cleanup roundrobin tests to use stubserver (# 5236)%0A > 23cc28f security/authorization: upgrade cel-v0.10.1 and fix breaking API change. (# 5243)%0A > 84793b5 xds/client: reset backoff when a message is received, even when the message is invalid (# 5241)%0A > 722367c proto: regenerate proto to pick up latest (# 5237)%0A > eead9a8 grpc: delete deprecated API WithBalancerName() (# 5232)%0A > cf6d4d5 grpc: document ClientConn fields (# 5227)%0A > 431ea80 internal/balancer: Add graceful switch LB policy (# 5207)%0A > 63af974 internal: update service config proto (# 5222)%0A > 87b0a8d test: use real grpc.Server in call tests (# 5213)%0A > 6b15b13 channelz: replace deprecated timestamp API with recommended ones (# 5212)%0A > 6f314bd reflection: add comments on protos (# 5209)%0A > 328efcc example: add mutual TLS example (# 5194)%0A > e601f1a fix: does not validate metadata keys and values (# 4886)%0A > a73725f channelz: include channelz identifier in logs (# 5192)%0A > 02f384d xds: rename rls proto import (# 5205)%0A > fd1f988 Change version to 1.46.0-dev (# 5204)%0A > 011544f authz: add additional logs to sdk authz (# 5094)%0A > 18564ff reflection: improve server implementation (# 5197)%0A > ec717ca xds: minor cleanup in xdsclient bootstrap code (# 5195)%0A > ebc30b8 reflection: use protobuf/reflect instead of go reflection, fix dynamic messages (# 5180)%0A > 46009ac transport: Add an Unwrap method to ConnectionError (# 5148)%0A > 75fd024 remove sdk term from grpc authz (# 5191)%0A > a354b1e channelz: rename NewChannelzStorage to NewChannelzStorageForTesting (# 5190)%0A > 0e05549 Format directory/file references (# 5184)%0A > c44f627 cleanup: replace grpc.WithInsecure with insecure.NewCredentials (# 5177)%0A > 9196715 xds/priority: log warnings instead of errors (# 5185)%0A > 1a63309 xds: Add support for Outlier Detection configuration in xdsclient (# 5183)%0A > 2af7b5e xds/interop: update RPC timeout in blackhole after fallback case (# 5174)%0A > f664adf benchmark: update client to include xds library (# 5169)%0A > c7f7d3a xds/bootstrap: add plugin system for credentials specified in bootstrap file (# 5136)%0A > 2209ed9 cmd/protoc-gen-go-grpc: add hooks to allow overriding generated code (# 5056)%0A > f68fb05 leakcheck: ignore http read/write goroutine (# 5182)%0A > 9807908 rls: support routeLookupChannelServiceConfig
field (# 5176)%0A > 593ff8d rls: service field in RLS request must not contain slashes (# 5168)%0A > e2fc510 internal/proto: update generated code (# 5172)%0A > 3b70fe0 xds: fix broken test "unknown field EnableLRS in struct" (# 5170)%0A > d31dbe7 xds/resource: accept Self as LDS's RDS config source and CDS's EDS config source (# 5152)%0A > 0a68f8a xds/federation: support federation in LRS (# 5128)%0A > 61a6a06 server: handle context errors returned by service handler (# 5156)%0A > e277174 xds/bootstrap: escape authority when populating resource name template (# 5160)%0A > 231ca3b security/advancedtls: fix CRL issuer comparison (# 5130)%0A > 449f1b2 grpclb: rename LB policy config field to serviceName
(# 5166)%0A > 546e6ae proto: incorporate recent service config proto definition changes (# 5167)%0A > 5b37682 Let helloworld example listen to all hosts (# 5089)%0A > 9cb4113 xdsclient: make Close() idempotent (# 5149)%0A > 6f54b5d recommend the use go test
commands instead of make test
(# 5151)%0A > fa62572 rls: make the data cache purge ticker a field in rlsBalancer (# 5154)%0A > f93e8e6 rls: return status error from server interceptor in test (# 5153)%0A > 61a352e rls: move RLS LB policy implementation out of internal (# 5143)%0A > 475c62a testing: fix potential problems in testFlowControlAccountCheck (# 5105)%0A > 5350e74 xds/controller: fix test nil panic on stream errors (# 5144)%0A > eb6ff1a xds: update RPC timeout in blackhole case (# 5126)%0A > aad573d rls: LB policy implementation (# 4992)%0A > a002994 internal/proto: update generated code (# 5125)%0A > c119828 xdsclient: allow overriding grpc.Dial function for the xDS controller. (# 5108)%0A > f231ac5 wrr: improve randomWRR performance (# 5067)%0A > 0145b50 use insecure.NewCredentials() instead of grpc.WithInsecure (# 5087)%0A > b49c0c9 xds/clusterresolver: set ClusterName for DNS child (# 5119)%0A > 9353ae3 credentials/google: stub out the oauth package in test (# 5118)%0A > 13c41bc Change version to 1.45.0-dev (# 5122)%0A > 77b478d xds/federation: e2e tests (# 5103)%0A > 907a202 attributes: document that some value types (e.g. map
s) must implement Equal (# 5109)%0A > 2fb1ac8 test: fix potential goroutine leak in TestUpdateAddresses_RetryFromFirstAddr (# 5023)%0A > afded72 xds/federation: update xdsclient to support multi authority (# 5042)%0A > b069440 credentials/google: use grpctest.Tester for tests in this package (# 5098)%0A > fbaf7c5 authz: update representation of allow authenticated in SDK (# 5052)%0A > 344b93a testdata: use SHA256 as signing algorithm in testdata certs (# 5074)%0A > 4d58dd9 dialoptions.go: Fix WithBlock godoc (# 5073)%0A > 78df8ec test/kokoro: Use xds-test-server-5 as the GCE interop server (# 5071)%0A > db9fdf7 insecure: remove experimental notice (# 5069)%0A > b3d19ef rls: move the data cache implementation into the rls package (# 5060)%0A > ec7cf6c grpclb: fix possible nil before conversion in TestDropRequest (# 5022)%0A > 8ae11f4 grpc: minor improvement on WithInsecure() document (# 5068)%0A > 7506755 internal/resolver: fix possible goroutine leak in TestSafeConfigSelector (# 5058)%0A > 956c594 rls: minor config processing changes (# 5061)%0A > c285fc7 cmd/protoc-gen-go-grpc: update version for release (# 5070)%0A > 51835dc xds: Remove WithBlock option from the fallback test client (# 5066)%0A > ce152f2 xds: Add xds dependency to the fallback test client (# 5062)%0A > 029b822 xds: Add RLS Cluster Specifier Plugin (# 5004)%0A > 50f8270 rls: control channel implementation (# 5046)%0A > 7c8a932 testing: fix goroutine leak in TestClientUpdatesParamsAfterGoAway (# 5024)%0A > a32d277 xds/client: send connection errors to all watchers (# 5054)%0A > c18e2a2 cmd/protoc-gen-go-grpc: update google.golang.org/protobuf to v1.27.1 (# 5053)%0A > 5d90b32 authz: fix regex expression match (# 5035)%0A > fd4e3bd xds: Added env var for RLS in xDS (# 5050)%0A > bd70769 test: cleanup roundrobin_test (# 5005)%0A > d35aff3 xds/federation: resource name parsing (# 4991)%0A > 62f73ec xds/client: move xdsclient.New tests to controller.New (# 5037)%0A > 40916aa transport: better error message when per-RPC creds fail (# 5033)%0A > 1ec7a89 xds/client: send NewStream errors to the watchers (# 5032)%0A > ccc060c grpclog.DepthLoggerV2: Correct comment: formats like fmt.Println (# 5038)%0A > a722e6a xds/c2p: replace C2P resolver env var with experimental scheme suffix (# 5044)%0A > f5dc086 internal/balancergroup: eliminate race in exitIdle (# 5012)%0A > ac4edd2 Change version to 1.44.0-dev (# 5041)%0A > 3786ae1 xds/resolver: Add support for cluster specifier plugins (# 4987)%0A > 512e894 rls: support extra_keys and constant_keys (# 4995)%0A > f3bbd12 xds/bootstrap_config: add a string function to server config (# 5031)%0A > 46935b9 fix possible nil before casting (# 5017)%0A > c2bccd0 xds/kokoro: install go 1.17, and retry go build (# 5015)%0A > 872a6f1 xds/c2p: fix default client resource template, and xds-client target scheme (# 5010)%0A > 58beff1 balancergroup: add method to exitIdle a sub-balancer (# 4994)%0A > 6f8796b rls: double import rls protos (# 5003)%0A > d542bfc status: support wrapped errors in FromContextError (# 4977)%0A > f45e617 rls: move pb.gos to grpc/internal/proto/grpc_lookup_v1 (# 4993)%0A > 295d7e6 internal: move leakcheck to t.Cleanup (# 4989)%0A > 23becb7 examples: Fix server port in route_guide example to work with client (# 4975)%0A > bdf8336 xds/client: cleanup Dump to remove unnecessary version field (# 4978)%0A > b2317c7 test/kokoro: rename xds_k8s to psm-security as part of tech-debt cleanup and name clarity (# 4979)%0A > cf8b64e internal: add log when service config is disabled (# 4973)%0A > 6e79bc8 xdsclient: add Cluster Specifier Name to Route (# 4972)%0A > 82d8af8 balancer: add Authority field to balancer.BuildOptions (# 4969)%0A > ea068ed rpc_util: Change error message to indicate size after decompression (# 4918)%0A > d61c7ae internal: merge xds/envconfig into env package (# 4923)%0A > 6a896a3 pickfirst: check b.sc before calling Connect (# 4971)%0A > 52d9416 xds/client: move transport_helper from xdsclient to a separate struct (# 4968)%0A > 6603e73 xds: Added validation and construction of RBAC matcher engine to ParseConfig (# 4964)%0A > d57363a xds: Add Cluster Specifier Plugin to xdsclient (# 4967)%0A > dd76741 grpc: implement WithInsecure() using the insecure package (# 4718)%0A > c25a52b config: remove retry disable via environment variable (# 4922)%0A > 714ba8d xds: move balancergroup and weightedtarget our of xds directory (# 4966)%0A > 14ebd91 lint: fix some unused parameter issues (# 4956)%0A > 59e024e xds/client: move watchers from xdsclient to a separate struct (# 4963)%0A > bac0a7e transport: pass handshake info with attributes to custom dialers (# 4938)%0A > 82c2825 xds/federation: support new bootstrap fields and protect them by an env var (# 4936)%0A > c53203c xds/federation: support populating resource template in xds-resolver (# 4900)%0A > 79e9c95 xds/client: move unmarshal functions and types to a separate package (# 4904)%0A > 3fa1988 internal: update pb.go (# 4962)%0A > 878cea2 kokoro: Enable xds authz_test (# 4954)%0A > 5841c8c xds/balancergroup: remove xds dependency from balancergroup (# 4955)%0A > 3b94303 grpc: stabilize WithConnectParams DialOption (# 4915)%0A > c105005 xds: NACK missing route specifier server side (# 4925)%0A > 670c133 transport/http2_server : Move up streamID validation in operate headers (# 4873)%0A > 29deb6b xds/bootstrap: refactor to support top level and per-authority server config (# 4892)%0A > 1163cfa xds: move LocalTCPListener to internal/testutils (# 4920)%0A > 467630f examples: remove usage of WithBlock in examples (# 4858)%0A > 6d465fe grpclb: move restartableListener to testutils (# 4919)%0A > d6aca73 Change version to 1.43.0-dev (# 4912)%0A > bb655a9 internal: update rls.pb.go (# 4913)%0Abumping knative.dev/pkg 6d71868...696cac8:%0A > 696cac8 Expose queue proxy request metrics reporting period (# 2362)%0A > bd3cf51 Printf log message with the right type when showing port (# 2709)%0A > 4c84b1b Update actions (# 2707)%0A > 3290ddf Update community files (# 2706)%0A > 53fc6ab Update actions (# 2705)%0A > b769fef drop eventing natss from downstream tests (# 2703)%0A > 511b394 potential fix for flakey tlsBackoff (# 2702)%0A > 0902ea8 Parameterize WEBHOOK_NAME env key in error message (# 2701)%0A > c5dd1d1 Update community files (# 2700)%0A > b77a78c upgrade to latest dependencies (# 2698)%0A > 310274d bump golang version in downstream tests (# 2697)%0A > fd00e03 Add certs secret name read from env (# 2685)%0A > 645afb2 bump golang.org/x/net to v0.7.0 (# 2695)%0A > 0591b75 bump net and text packages (# 2692)%0A > 2fdd6bf Allow reconcilers to listen to leader promotion events (# 2688)%0A > f65eba5 Make ZipkinTracingEnabled flag thread safe (# 2690)%0A > f306c13 upgrade to latest dependencies (# 2684)%0A > 2f55fe0 Fix potential slowloris attack (# 2682)%0A > 8d1efe1 Update community files (# 2683)%0A > 4a80605 Add health checks (# 2671)%0A > 33e6b88 fix: reconcilerImpl.updateStatus
calculates state difference in debug mode only (# 2678)%0A > c889c5b upgrade to latest dependencies (# 2679)%0A > fb44e94 Update community files (# 2676)%0A > decc1cc Update community files (# 2674)%0A > 8532ae0 update OWNERS files to use teams with active members (# 2672)%0A > 408ad07 Make SetDefaults of Destination duck type nil safer (# 2670)%0A > 247510c upgrade to latest dependencies (# 2668)%0A > 876c59d Update actions (# 2667)%0A > 8abadb0 Update community files (# 2666)%0A > ecf3863 Simplify the test/upgrade package (# 2663)%0A > 50da24e upgrade to latest dependencies (# 2665)%0A > dc20e47 Update community files (# 2664)%0A > 0274825 Allow logstream to stream logs from user namespace (# 2591)%0A > 4fd6eb8 make ChildName produce valid names (# 2660)%0A > 911b435 Update community files (# 2661)%0A > f4eb778 upgrade to latest dependencies (# 2658)%0A > 9e943fa Removal of Tekton downstream tests (# 2654)%0A > 05b694e upgrade to latest dependencies (# 2653)%0A > 242a3d7 Fix nil pointer deref in drain when it's reset (# 2645)%0A > f5c1a03 Update community files (# 2641)%0A > bd66b9b upgrade to latest dependencies (# 2640)%0A > dca788a Min K8s version is now 1.24 (# 2639)%0A > 6255ebd upgrade to latest dependencies (# 2638)%0A > 0243d64 Function AllowRestrictedPodSecurityStandard for modifying test pods (# 2625)%0A > 389f811 upgrade to latest dependencies (# 2629)%0A > 918fd93 Update community files (# 2633)%0A > 44d1d7d Go1.19 changes (# 2631)%0A > 6718478 Update community files (# 2628)%0A > dc1fae1 changeset: allow override the revision through ldflags (# 2601)%0A > 92ed919 Fix: Mute the linter on error return values. (# 2627)%0A > 8fa1a3f CmpOpts overrides should be passed through (# 2621)%0A > 64fc3e5 ListPointer flag should also apply to filtered informers (# 2620)%0A > 2f19491 Feature: Implement Apply codegen. (# 2624)%0A > 6eb8f18 Update community files (# 2626)%0A > 5cbee02 Filter reactor FieldErrors on validation to only error-level alerts. (# 2611)%0A > 198b463 Cleanup: Turn multiple warnings into multiple warnings. (# 2619)%0A > 728dfd8 Add FieldError#WrappedErrors to allow dependent code to have access (readonly) (# 2618)%0A > 6ce976c Default observability config if nil (# 2614)%0A > ff95684 make METRICS_DOMAIN optional when backend is not OpenCensus (# 2617)%0A > b2a3a39 upgrade to latest dependencies (# 2616)%0A > 9823d96 Update community files (# 2615)%0A > 5dd89c6 Support istio *List types where Items is an array of pointer types (# 2613)%0A > b812aff Support fetching observability from ctx. (# 2610)%0A > 714b763 upgrade to latest dependencies (# 2609)%0A > 21d3b47 upgrade to latest dependencies (# 2608)%0A > 8178c38 update k8s to 1.25.2 (# 2599)%0A > fb2e4fb Preserve webhook namespaceSelector.matchLabels (# 2605)%0A > 5c5da28 Update actions (# 2607)%0A > 1fb3e67 Update community files (# 2606)%0A > bc93b0a bump min kubernetes to v1.23 (# 2595)%0A > 8cacac2 upgrade to latest dependencies (# 2604)%0A > 158538c upgrade to latest dependencies (# 2603)%0A > 7c4fef1 upgrade to latest dependencies (# 2593)%0A > 2b8e4ad Update community files (# 2602)%0Abumping k8s.io/klog/v2 0990e81...9ae4992:%0A > 9ae4992 Merge pull request # 355 from pohly/call-overhead-benchmarks%0A > cb9292a Merge pull request # 349 from pohly/init-flags-concurrency%0A > f08fd26 klog: benchmark the overhead when logging is off%0A > 02fe323 Merge pull request # 345 from dims/bump-version-of-golang-to-1.19-and-drop-older-versions%0A > 28f7906 make InitFlags read-only%0A > d64acbd Merge pull request # 344 from harshanarayana/bug/GIT-343/logr-handle-marshalling-non-string-values%0A > 8c0f205 reformat to golang 1.19 standards%0A > a952486 add test for the command line usage%0A > dcddc5f kvlistformat: fix the issue with display marshalled value for non string type%0A > 6f5eeb9 Bump version of golang to 1.19 and prune older versions%0Abumping k8s.io/apiextensions-apiserver b993e22...2c55649:%0A > 2c55649 Update dependencies to v0.25.4 tag%0A > 67ebb5f Merge pull request # 112808 from cheftako/automated-cherry-pick-of-# 112689-upstream-release-1.25%0A > 05d7571 Updated vendor to the new preferred versions.%0A > 2d6e469 Bump konnectivity-client to v0.0.33%0A > a290ab4 Merge pull request # 112161 from pohly/automated-cherry-pick-of-# 112129-origin-release-1.25%0A > d8d88ce Merge pull request # 112107 from DangerOnTheRanger/automated-cherry-pick-of-# 111964-upstream-release-1.25%0A > 34ce90c dependencies: update to ginkgo v2.1.6 and gomega v1.20.1%0A > 063c82b Add unit tests.%0A > 6d0af3c Run pin-dependency.sh and update-vendor.sh.%0A > 850356a Update go.mod to go1.19%0A > 1994fc0 Merge pull request # 111677 from dims/stop-panic-in-govet-levee%0A > e2f1a8a run lint-dependencies and follow directions%0A > 79e4ee6 Stop panic in govet-levee CI job%0A > a9d332a Merge pull request # 110495 from alexzielenski/atomic-objectreference%0A > 0bec600 update kube-openapi%0A > 914f1d7 Update kubectl kustomize to kyaml/v0.13.9, cmd/config/v0.10.9, api/v0.12.1, kustomize/v4.5.7 (# 111606)%0A > d25d03c Merge pull request # 111557 from alexzielenski/update-smd-422%0A > 8f03975 Merge pull request # 105126 from sallyom/tracing-kubelet%0A > 11291a4 update smd to 4.2.3%0A > a34b99b kubelet tracing: update vendor%0A > 5fd535d kubelet tracing%0A > c66b2d1 Merge pull request # 111587 from ialidzhikov/k8s-utils@ee6ede2d64ed%0A > 58b8011 Update k8s.io/utils
to ee6ede2d64ed
%0A > 49cedce Merge pull request # 111446 from alexzielenski/trivial-x-preserve-unknown-fields-correction%0A > 5f4930e Merge pull request # 111519 from jpbetz/skip-cel-validation%0A > 3889972 correct OpenAPI extension in error message%0A > 85460a1 Merge pull request # 111483 from jpbetz/fix-missing-root-object-type%0A > 6158148 Skip CEL expression validation if OpenAPIv3 schema is invalid%0A > de80fce Skip schemas that are non-structural in NewValidator%0A > 7846e04 Merge pull request # 111451 from DangerOnTheRanger/cel-use-case-tests%0A > 5ac5089 Merge pull request # 111442 from ialidzhikov/k8s-utils@56c0de1e6f5e%0A > 560e664 Add examples of matchExpressions validations.%0A > b317854 Update k8s.io/utils
to 9bab9ef40391
%0A > 5f2cc68 Merge pull request # 111254 from dims/update-to-golang-1.19-rc2%0A > d8abaab Generate and format files%0A > 02604ce Merge pull request # 108108 from thaJeztah/switch_golang_protobuf_extensions%0A > fec6a8f downgrade github.com/matttproud/golang_protobuf_extensions to v1.0.1%0A > a6bd8bf Merge pull request # 111156 from DangerOnTheRanger/cel-traversal-optimization%0A > b655fba Replace estimateMinSizeJSON with DeclType.MinSerializedSize.%0A > 758d6d5 Merge pull request # 110135 from jpbetz/efficient-crd-cel-validation%0A > dbdebf1 Reuse structural schema and cel decls during CRD validation%0A > 0bdac0d Merge pull request # 111071 from cici37/updateCEL%0A > d0f6952 Merge pull request # 111242 from wojtek-t/fix_leaking_goroutines_11%0A > d562a8a Sort out dep order%0A > 7c89666 Merge pull request # 110178 from kevindelgado/validation-beta-1-25%0A > 60ed3b4 Clean shutdown of apiserver integration tests%0A > b19f020 Switch to use cel.TypeToExprType(celType) to generate the exprType.%0A > 684f2a7 Merge pull request # 109639 from Abirdcfly/fixduplicateimport%0A > fce3486 update kjson%0A > 224fabd Turn on DefaultUTCTimeZone for cel-go.%0A > 1c3183a Merge pull request # 111035 from jiahuif-forks/feature/matrics/cel%0A > 896ce20 cleanup: remove duplicate import%0A > e60fcc5 Add server-side metadata unknown field validation%0A > adca902 Enable the empty list sum support.%0A > 9bd3fbc Merge pull request # 111008 from cici37/bumpCEL%0A > 40ff5d6 metrics for CEL compilation and evaluation.%0A > ea6670e Pick up dispatcher refactor changes from cel-go%0A > 62e4d5d Adding comment for maxValidDepth check.%0A > 33c72d2 Bump cel-go to v0.12.4%0A > 9f63533 Bump cel-go to v0.12.3%0A > ce744a8 Add test for CEL maxRecurionDepth check.%0A > 8b5da6a Bump cel-go to v0.12.1%0A > 0735877 Bump cel-go to v0.12.0%0A > 8789ab0 Merge pull request # 109111 from chendave/ginkgo_upstream%0A > 3203d57 update ginkgo from v1 to v2 and gomega to 1.19.0%0A > f3e37dc Merge pull request # 111001 from pohly/klog-update%0A > 8a94cf1 build: update to klog v2.70.1%0A > a394eda Merge pull request # 110831 from chendave/openapi%0A > 020df44 Merge pull request # 110548 from benluddy/cel-unstructuredtoval-benchmark-fixture%0A > 7a0dda7 Bump kube-openapi
to the latest%0A > 92942df Merge pull request # 110549 from benluddy/skip-unused-oldself-activation-work%0A > ff05b62 Do test fixture setup outside cel.UnstructuredToVal benchmark loop.%0A > 25b2ab4 Merge pull request # 110788 from 21kyu/change_reflect_ptr%0A > a5932b2 Only provide an oldSelf binding when referenced by a CEL rule.%0A > 17752d1 Change reflect.Ptr to reflect.Pointer%0A > 442c886 Merge pull request # 109510 from sugangli/pinhole-fw%0A > 3583982 Merge pull request # 110731 from jkh52/update-netproxy%0A > 3c6fc8b update kube-controller-manager dependencies%0A > 3963fc7 Bump konnectivity-client to 0.0.32%0A > addd726 Merge pull request # 110724 from pohly/klog-update%0A > 387f93d build: update to klog v2.70.0%0A > 27cab03 Merge pull request # 110378 from lucacome/bump-grpc%0A > 356b8d7 Merge pull request # 110519 from dims/update-etcd-packages-to-v3.5.4%0A > c1fc8de Bump grpc to v1.47.0%0A > c1ee610 Merge pull request # 110179 from Jefftree/fix_openapi_v2%0A > e5b7b82 update etcd packages to v3.5.4%0A > d877aaa Merge pull request # 110518 from dims/switch-to-released-version-of-v3.8.0-github.com/emicklei/go-restful/v3%0A > 87c2a6e Prune defaults for CRD serving%0A > e16b199 Merge pull request # 110520 from dims/update-gopkg.in/yaml.v3-to-v3.0.1%0A > 8aaaf68 Switch to released version of v3.8.0 - github.com/emicklei/go-restful/v3%0A > 546aafe Update gopkg.in/yaml.v3 to v3.0.1%0A > bd811e0 Merge pull request # 110351 from dims/switch-to-v3-of-github.com/emicklei/go-restful%0A > 83fedf3 Switch to v3 of github.com/emicklei/go-restful%0A > 0b237d1 Merge pull request # 109552 from cyclinder/fix_CVE-2022-27191%0A > 6af94f0 Merge pull request # 109228 from pacoxu/cleanup-ut%0A > a8129d5 ix CVE-2022-27191: Bump golang.org/x/crypto to v0.0.0-20220315160706%0A > 916bb0f Merge pull request # 110131 from stevekuznetsov/skuznets/stop-copying-metadata%0A > 37a5c7c prevent the unit test name too long in report%0A > 6ca81eb Merge pull request # 110130 from stevekuznetsov/skuznets/clean-up-crd-storage%0A > dd95027 customresource: stop shallow-copying metadata%0A > 774eebb Merge pull request # 109835 from cici37/celUpdate%0A > 9215e7c customresouce: clean up the storage constructor%0A > a47945a Merge pull request # 110061 from wojtek-t/shutdown_apiextensions%0A > 8174e5f Initialize a base CEL env and share it to avoid repeated function declaration validation%0A > eb1841e Merge pull request # 109880 from Jefftree/patch-4%0A > 1b8c30d Cleanup CRD storage on shutdown%0A > 1ec2449 Merge pull request # 109978 from wojtek-t/remove_storage_tracking%0A > 2046a29 Remove warning log for merging meta and scale type%0A > 21a45c1 Merge pull request # 108011 from cici37/benchmark%0A > 94148b5 Cleanup no-longer used storage cleanup method%0A > fe87b2a Merge pull request # 109891 from pohly/log-dependency-update%0A > 97b5e54 benchmark unstructuredToVal%0A > 057887d Merge pull request # 109602 from lavalamp/remove-clustername%0A > 08a2064 dependencies: logr and zapr v1.2.3%0A > 9b3dd0c generated files%0A > 42c5701 Merge pull request # 109804 from cici37/celUpdate%0A > 4b7a318 Update go-control-plane, cncf/xds/go, cncf/udpa/go and remove unused versions%0A > fc318e0 Update GRPC%0A > 42e3d58 Update genproto and antlr.%0A > 637f1a6 Bump cel-go to v0.11.2%0A > 0b2f79f Merge pull request # 109440 from liggitt/gomod-1.18%0A > 47b3e71 Merge pull request # 109268 from liggitt/pruning-metadata%0A > dd13fbf Regenerate vendor%0A > 86df472 Merge pull request # 109303 from wojtek-t/clean_storage_shutdown%0A > b4a77b2 Fix bug treating metadata fields as unknown fields%0A > d779722 Implement Destroy() method for all registries%0A > 3a045b9 Expand unit tests of pruning of unknown fields in metadata%0A > 24b17b0 Merge pull request # 109242 from cici37/addTest%0Abumping knative.dev/reconciler-test 452cc1d...805bcaa:%0A > 805bcaa Update actions (# 500)%0A > 7f6a81c Update actions (# 499)%0A > 04a4c0a Update community files (# 498)%0A > d52257e Support cronjobs (# 496)%0A > 1e2f58e Allow using a prespecified namespace for running tests (# 495)%0A > 3c3d659 Refactor service port defaulting (# 494)%0A > 0979798 Give port name to service (# 493)%0A > 9884929 upgrade to latest dependencies (# 492)%0A > 9531216 Allow specifying parallel tests for parallelizable features (# 491)%0A > 83f7512 upgrade to latest dependencies (# 489)%0A > 9b63f84 upgrade to latest dependencies (# 484)%0A > 9457183 Improve pod ready condition check (# 483)%0A > 6ee7472 Add teardown.on.fail flag (# 485)%0A > 19787c4 upgrade to latest dependencies (# 476)%0A > d679661 Restart eventshub on failure (# 479)%0A > e5eaf85 Allow verify service readiness when istio is installed (# 478)%0A > e707ddf upgrade to latest dependencies (# 475)%0A > 662cd0d Update community files (# 473)%0A > e906aa6 Allow testing with istio enabled (# 466)%0A > e459729 Update community files (# 472)%0A > 93ff95f Fix deployment image setting (# 471)%0A > f63559d Add file-based image resolver (# 465)%0A > 68e5f61 Add namespace resource (# 464)%0A > 2c512fb Add option to define selector on deployment (# 463)%0A > 0b67889 Add deployment resource (# 462)%0A > 3f90ffa upgrade to latest dependencies (# 461)%0A > 8a0446e Add Pod resource (# 458)%0A > 84bee7b upgrade to latest dependencies (# 460)%0A > cb24694 upgrade to latest dependencies (# 456)%0A > 471137e Switch to usage of pkg/resources/service (# 459)%0A > 4012307 Add helpers to work with the service resource (# 457)%0A > 4ed6333 Add helpers to create & interact with a Secret (# 455)%0A > 5866b8f Update community files (# 454)%0A > f75090a Update community files (# 453)%0A > 91d5fb0 Add helpers to create & interact with a batchv1.Job (# 452)%0A > e02964c Fix prober receiver install options (# 447)%0A > 3fe8527 Keep polling when endpoint is not present (# 448)%0A > 01a1499 Protect references collection with mutex for concurrent access (# 445)%0A > a0cdf5b Handle already exists error in eventshub's RBAC install (# 441)%0A > ed93f50 Handle not found resources while waiting as in WaitForResourceCondition (# 440)%0A > a38bc32 Update community files (# 439)%0A > 7c65452 Verify resource is addressable when sender is using GVR (# 436)%0A > f8ce78c Fix prober concurrent access (# 432)%0A > 966fbbe Adds ability for resources to override namespace in template config. (# 434)%0A > f83270b upgrade to latest dependencies (# 433)%0A > b070b17 Run steps with the same timing in parallel as documented (# 394)%0A > 14f7512 Update actions (# 431)%0A > 8d3f0cf Update community files (# 430)%0A > 7f7a35e upgrade to latest dependencies (# 429)%0A > cf080d0 upgrade to latest dependencies (# 428)%0A > b9ed313 Update community files (# 427)%0A > 62896bc Update community files (# 426)%0A > 39a50c7 upgrade to latest dependencies (# 425)%0A > 3efdfe8 upgrade to latest dependencies (# 424)%0A > ccb154a Update community files (# 423)%0A > 8ddc2b3 upgrade to latest dependencies (# 422)%0A > 9283059 upgrade to latest dependencies (# 421)%0A > dfab373 Update community files (# 420)%0A > 5600f53 Define SecurityContext for test Pods (# 414)%0A > 8554a16 upgrade to latest dependencies (# 417)%0A > d20ef22 Use knative/actions downstream test (# 415)%0A > cfd23f3 Format go code (# 418)%0A > e863dbf Update community files (# 419)%0A > 6b65d5c Update community files (# 416)%0A > 5612970 upgrade to latest dependencies (# 409)%0A > 07a0279 Fix data race on publish images (# 411)%0A > 2391330 update cloudevent sdk to 2.12.0 (# 407)%0A > 37c944e upgrade to latest dependencies (# 406)%0A > 0a1020d Update actions (# 405)%0A > 5c62f1c Update community files (# 404)%0A > 5fad31c upgrade to latest dependencies (# 403)%0A > 824de99 upgrade to latest dependencies (# 402)%0A > debffa2 Update community files (# 401)%0Abumping k8s.io/code-generator 65c70a5...6523e22:%0A > 6523e22 Merge pull request # 112808 from cheftako/automated-cherry-pick-of-# 112689-upstream-release-1.25%0A > 59f8301 Updated vendor to the new preferred versions.%0A > 7e9837e Merge pull request # 112161 from pohly/automated-cherry-pick-of-# 112129-origin-release-1.25%0A > ecb165b dependencies: update to ginkgo v2.1.6 and gomega v1.20.1%0A > 775c304 Merge remote-tracking branch 'origin/master' into release-1.25%0A > d31c93c Revert "Remove gcp and azure auth plugins"%0A > 7a6b27b Update go.mod to go1.19%0A > fa4467d Merge pull request # 111677 from dims/stop-panic-in-govet-levee%0A > 7b3066b run lint-dependencies and follow directions%0A > c04cb7f Stop panic in govet-levee CI job%0A > aed7155 Merge pull request # 110495 from alexzielenski/atomic-objectreference%0A > 02dff21 update kube-openapi%0A > 24b65b5 Update kubectl kustomize to kyaml/v0.13.9, cmd/config/v0.10.9, api/v0.12.1, kustomize/v4.5.7 (# 111606)%0A > ce96325 Merge pull request # 111557 from alexzielenski/update-smd-422%0A > 3e298a9 update smd to 4.2.3%0A > 98b8ad1 Merge pull request # 111587 from ialidzhikov/k8s-utils@ee6ede2d64ed%0A > 7d41d4b Update k8s.io/utils
to ee6ede2d64ed
%0A > f7e6982 Merge pull request # 111442 from ialidzhikov/k8s-utils@56c0de1e6f5e%0A > 5e969f2 Update k8s.io/utils
to 9bab9ef40391
%0A > 22db44c Merge pull request # 111254 from dims/update-to-golang-1.19-rc2%0A > 53c2ca0 Generate and format files%0A > a08f67b Merge pull request # 110178 from kevindelgado/validation-beta-1-25%0A > e22e97f update kjson%0A > 40a88eb Merge pull request # 111008 from cici37/bumpCEL%0A > 9a892d0 Bump cel-go to v0.12.0%0A > d665e29 Merge pull request # 108792 from wongearl/modify-todo%0A > dc61ef8 Merge pull request # 111001 from pohly/klog-update%0A > dec659d fix CustomArgs annotation, todo describe%0A > 162a509 build: update to klog v2.70.1%0A > 132cd9f Merge pull request # 110831 from chendave/openapi%0A > 0bd13bc Bump kube-openapi
to the latest%0A > 068d9f8 Merge pull request # 110724 from pohly/klog-update%0A > 051a429 build: update to klog v2.70.0%0A > 4e8f8f5 Merge pull request # 110378 from lucacome/bump-grpc%0A > 39381c1 Bump grpc to v1.47.0%0A > a2acbb4 Merge pull request # 110546 from liggitt/fix-example%0A > cb496e7 Merge pull request # 110518 from dims/switch-to-released-version-of-v3.8.0-github.com/emicklei/go-restful/v3%0A > e246394 Drop spurious replace%0A > f2ea995 Merge pull request # 110520 from dims/update-gopkg.in/yaml.v3-to-v3.0.1%0A > 306deab Switch to released version of v3.8.0 - github.com/emicklei/go-restful/v3%0A > d8adc26 Update gopkg.in/yaml.v3 to v3.0.1%0A > 35a5f00 Merge pull request # 110351 from dims/switch-to-v3-of-github.com/emicklei/go-restful%0A > e1fbd90 Switch to v3 of github.com/emicklei/go-restful%0A > 7d977b3 Merge pull request # 110013 from enj/enj/i/remove_azure_gcp_auth_plugins%0A > 7e85903 Remove gcp and azure auth plugins%0A > 9f887a7 Merge pull request # 109891 from pohly/log-dependency-update%0A > acd6f5b Merge pull request # 109602 from lavalamp/remove-clustername%0A > 7c0fe80 dependencies: logr and zapr v1.2.3%0A > 05559de generated files%0A > 8ed2cce Merge pull request # 109804 from cici37/celUpdate%0A > f82eadd Update go-control-plane, cncf/xds/go, cncf/udpa/go and remove unused versions%0A > cd6d91a Update GRPC%0A > df8059b Update genproto and antlr.%0A > 4a69c11 Bump cel-go to v0.11.2%0A > 0a834f8 Merge pull request # 109440 from liggitt/gomod-1.18%0A > 5cbad16 Regenerate vendor%0A > 8f17de0 Merge pull request # 109031 from Jefftree/openapiv3beta%0A > 858bf3c generated: Update kube-openapi and vendor%0Abumping sigs.k8s.io/json 9f7c6b3...f223a00:%0A > f223a00 Merge pull request # 16 from kevindelgado/strict-error-path-separation%0A > ff3dbbe Merge pull request # 14 from liggitt/go118%0A > b536e95 store err type and path separately in strict errors%0A > 227cbc7 Merge pull request # 15 from liggitt/ci-refresh-go%0A > 4017094 sync go1.18 changes from encoding/json%0A > 93e9748 Check latest go version in CI
Signed-off-by: Knative Automation [email protected]
3/3 client consumers streaming errors
Summary: This diff makes it so hh_client can consume streaming errors. It's gated under the JK that we're using for standalone IDE. That's because (1) I want streaming-errors to be a carrot that entices more people to test out standalone-ide, (2) the standalone-ide will be written solely to consume streaming errors, so the two go hand in hand, (3) I don't want to even have to test the correctness+behavior of produce_streaming_errors when there are lazy checks.
To opt in, people have to explicitly ask for streaming errors via this flag, every time they do a hh check at the CLI. (it's not pretty, but that's not my goal):
hh --config ide_standalone=true
Also, this only works if the server had earlier been started to produce streaming errors:
hh --config produce_streaming_errors=true
My further plan, to reduce the number of codepaths, is that eventually everything should use "errors.bin", even --json
, even if it doesn't display the errors in streaming fashion. My motivation for this is just to reduce the number of different codepaths. I guess that --json
would read from errors.bin all the way to the end before printing its output, and would internally handle "files have changed" by restarting its read on a new errors.bin. But that will be left for the distant future.
hh check --json
will use the existing error mechanism (which waits until it has a complete list of errors that encompasses all disk changes), while all other output formats will by default use streaming errors.- There might have to be some kind of override flag,
hh check --error-streaming false
? But I believe there won't have to be: my research T147955071 indicates that everyone who doesn't use--json
is content with streaming errors. Note that our existing json format isn't friendly to streaming, and most scripts/tools don't use incremental json parsers and hence wouldn't even benefit from them.
- There might have to be some kind of override flag,
- There are two new exit codes from hh_client that can be produced. This could be a breaking change if any tools did
hh check
and don't know how to deal with (say) files changing under their feet during the typecheck. Previously they would get answers only after the disk had stabilized. Now they will get an error message that they must recover from. My mitigation for this risk, as above, is I think almost all tools use--json
and hence won't be getting streaming errors. I think only console users will get streaming errors.Typecheck_restarted
"Files have changed. Please re-run hh" -- this is for when a typecheck got interrupted by something that caused it to be restarted. This is typical from watchman interrupts.Typecheck_abandoned
"Hh_server has terminated. {Killed|Stopped}". This is for when the hh_server daemon gets killed mid-typecheck.
- It's imperative that when you type "hh" then you get errors that at minimum reflect all disk changes that happened prior to your invocation of "hh" (as to whether they reflect changes which happened since, that's impossible to know).
- This was true before (because "hh" causes serverMain to do a synchronous check with watchman before reporting answers; it does the synchronous check in serverNotifier.ml by sending "flush-request" over the subscription and waiting to hear "sync" response).
- It's still true now. The watchman sync is now performed in hh_client instead of hh_server, and it displays "hh_server is busy [watchman sync]" while doing it.
- The errors that get streamed are necessarily unsorted by filename. Ain't nothing we can do about that. (prior to streaming, they were sorted by filename).
There is a whole load of ceremony to do with what happens when you want to open errors.bin,
e.g. start the server if necessary, check for version mismatch, report failures to the user.
Concrete examples:
1. There is no server running. "hh check" must start up a server, before it can stream errors from it.
2. There is no server running, but our attempt to start the server failed, either
synchronously (e.g. we had `--autostart-server false`)
or asynchronously (e.g. saved-state failed to load).
"hh check" must detect that no streaming errors are forthcoming.
3. There is a server running, and it has already written errors.bin, but it is the wrong binary version.
"hh check" must cause it to shut down, and a new server start up, before it can stream errors.
4. There is an errors.bin from an existing server, and its typecheck started 20s ago, but moments
before "hh check" a file was changed on disk. "hh check" must detect this,
learn that it cannot use the existing errors.bin, and instead use the new errors.bin that will be forthcoming.
How this function fulfills those cases:
* It of course has to check whether files on disk have changed since this errors.bin was started.
It does this with a synchronous watchman query,
and displays "hh_server is busy [watchman sync]".
* If there is a fault like "errors.bin was started too long ago and files have changed
in the meantime" which can be rectified by waiting and trying again on the assumption
that a server is running and will pick up the changes, then this will wait and try
again indefinitely. It will display "hh_server is busy [hh_server sync]".
The parameter "already_checked_clock" indicates that we have already done a
(costly) watchman query for this clock, and will not do another watchman query until
we see a new errors.bin with a new clock.
* If there is a fault like "missing errors.bin" or "binary mismatch" which can
be rectified by connecting to the monitor+server, this will do so at most once
with the "connect_then_close" callback parameter, then resume for a suitable errors.bin
again with "hh_server is busy [hh_server sync]".
If it already tried once with no effect, then it will raise Exit_status.Exit_with.
This isn't my preferred implementation strategy!
- I don't like how the client will just "wait around indefinitely until a suitable errors.bin appears, on the assumption that hh_server will eventually detect disk changes. I don't like this because, if it never happens, we don't have a crisp callstack or failure event to log.
- I don't like how the client and server must duplicate the exact same logic for deciding whether file-changes are important. I don't like this because imagine if they disagree, and the client believes a new errors.bin+clock is needed and so waits for one, but the server doesn't believe it's needed.
What I'd like instead if there existed something like "hh sync" over ServerRpc or ClientConnect.connect, with the property that once it returns, then (1) the server guarantees to have started an errors.bin, (2) the server guarantees to have picked up all watchman changes that it deems fit. If we had this then the client would never need to wait indefinitely: if it ever needed to start the server then it'd do this sync and know that errors.bin must necessarily exist when the sync returns; if it ever was in doubt about the age of watchclock then it'd do this sync and know when it returns that the new errors.bin is recent enough.
I found it far too troublesome to implement that kind of "hh sync". This diff uses connect_then_close
, which calls into ClientConnect.connect, but this has a much weaker guarantee. It only guarantees that the server is running. It doesn't guarantee that an errors.bin has been started, and it doesn't guarantee that the server has synced all changes so far. Why was a stronger sync too troublesome? It's because hh_server's logic for syncing is wrapped up in ServerMain.recheck_until_no_changes_left, and it's not easy to separate the "sync watchman " from the "complete the consequent typecheck".
This diff puts some "watchman since" code in clientCheckStatus.ml. That's clearly not where it truly belongs. The plan in T146551552 is to move us away from subscriptions like there are in watchman.ml, and towards synchronous queries.
I'd quite like to rename watchman.ml -> watchmanSubscription.ml, and create another file watchmanSync.ml which can be used by both server and client. But the code I wrote right now in clientCheckStatus.ml uses Lwt which can't be used in server. Therefore, I'll need to functorize over "promise", like is done in state_loader_futures.ml
vs state_loader_lwt.ml
. That will take a bit more work, so I've left it for the future. (ha ha). In the meantime, this diff leaves the code in clientCheckStatus.ml for now.
Reviewed By: CatherineGasnier
Differential Revision: D44159580
fbshipit-source-id: 0ddbc8596fdaf2d346653bcd6bb6858f0e74f011
standard library: bring the tests into the main CI (#8525)
Should close one of the tasks in #8450.
Note in order of appearance in the global diff
- 1b7497c41966306aa3103a95a9b5ef5df7111ee4 adds the
std-tests
job to the CI which- installs
nushell
in the runner - run the
tests.nu
module
- installs
see
open .github/workflows/ci.yml | get jobs.std-tests | to yaml
ec85b6fd
..9c122115
is where all the magic happens => see below
- 🧪 799c7eb7fd5f140289b36b9dbc00329c50e2fbda introduces some bugs and failing test to see how the CI behaves => see how the tests failed as expected ❌
- 🧪 and c3de1fafb5c5313e30c08c9ca57e09df33b61b74 reverts the failing tests, i.e. the previous commit, leaving a standard library whose tests all pass 🎉 => see the tests passing now ✔️
the issue with the previous runner was the following: the clever trick
of using nu -c "use ...; test"
did print the errors when occuring but
they did not capture the true "failure", i.e. in all cases the
$env.LAST_EXIT_CODE
was set to 0
, never stopping the CI when a test
failed 🤔
i first tried to try
/ catch
the error in
ec85b6fd3fc004cd94e3fada5c8e5fe2714fd629 which kinda worked but only
throw a single error, the first one
i thought it was not the best and started thinking about a solution to have a complete report of all failing tests, at once, to avoid running the CI multiple times!
the easiest solution i found was the one i implemented in 9c12211564ca8ee90ed65ae45776dccb8f8e4ef1
Warning this changes the structure of the runner quite a bit, but the
for
loops where annoying to manipulate structured data and allow the runner to draw a complete report...
now the runner does the following
- compute the list of all available tests in a table with the
file
,module
andname
columns (first part of the pipe untilflatten
andrename
) - run the tests one by one computing the new
pass
column- with a
log info
- with a
- captures the failing ones => puts
true
inpass
if the test passes,false
otherwise - if at least one test has failed, throw a single error with the list of failing tests
$nothing
the standard tests now return a true error that will stop the CI
$nothing
hi vahd
Cock and ball torture From Wikipedia, the free encyclopedia at en.wikipedia.org Cock and ball torture (CBT) is a sexual activity involving application of pain or constriction to the male genitals. This may involve directly painful activities, such as genital piercing, wax play, genital spanking, squeezing, ball-busting, genital flogging, urethral play, tickle torture, erotic electrostimulation or even kicking. The recipient of such activities may receive direct physical pleasure via masochism, or knowledge that the play is pleasing to a sadistic dominant. Image: Electrostimulation applied on a penis Contents: Section 1: In Pornography Section 2: Ball stretcher Section 3: Parachute Section 4: Humbler Section 5: Testicle cuff Section 1: In pornography In addition to it’s occasional role in BDSM pornography, Tamakeri (literally Ball kicking) is a separate genre in Japan. One notable actress in tamakeri is Erika Nagai who typically uses her martial arts skills to knee or kick men in the testicles. Section 2: Ball stretcher A ball stretcher is a sex toy that is fastened around a man in order to elongate the scrotum and provide a feeling of weight pulling the testicles away from the body. While leather stretchers are most common, other models are made of steel rings that are fastened with screws causing additional mildly uncomfortable weight to the wearer. The length of the stretcher may vary from 1-4 inches, and the steel models can weigh as much as five pounds. Section 3: Parachute A Parachute is a small collar, usually made from leather, which fastens around the scrotum, and from which weights can be hung. Conical in shape, three or four short chains hanging beneath, to which weights can be attached. Used as part of cock and ball torture within a BDSM relationship, the parachute provides a constant drag, and squeezing effects on the man’s testicles. Moderate weights of 3-5 kg can be suspended, especially during bondage. Smaller weights can be used when the man is free to move, when the swinging effect of the weight can restrict sudden movements, as well as providing a visual stimulus for the dominant partner. Section 4: Humbler A humbler is a BDSM physical restraint device used to restrict the movement of a submissive male participant in a BDSM scene. The humbler consists of a testicle cuff device which clamps around the base of the scrotum, mounted in the center of a bar that passes behind the thighs at the base of the buttocks. This forces the wearer to keep his legs forward, as any attempt to to straighten the legs slightly pulls directly on the scrotum, causing from considerable discomfort to extreme pain. Section 5: Testicle cuff A testicle cuff is a ring-shaped device around the scrotum between the body and the testicles which when closed does not allow the testicles to slide through it. A common type has two connected cuffs, one around the scrotum and the other around the base of the penis. They are just one of many devices to restrain the male genitalia. A standard padlock may also be locked around the scrotum; without the key it cannot be removed. Some passive men enjoy the feeling of being "owned", while dominant individuals enjoy the sense of "owning" their partners. Requiring such a man wear testicle cuffs symbolizes that his sexual organs belong to his partner, who may be either male or female. There is a level of humiliation involved, by which they find sexual arousal. The cuffs may even form part of a sexual fetish of the wearer or his partner. However, these are extreme uses of testicle cuffs. More conventionally, the device pulls down the testicles and keeps them there during stimulation, which has a number of benefits: Making the penis appear longer. Pulling the testicles down and away from the base of the penis stretches the skin over the base of the penis and pubic bone, exposing the additional inch or so of penile shaft that is normally hidden from view. Improving sexual arousal. While some men may be aroused by the feeling of being "owned", the physical feeling of stretching the ligaments that suspend the testicles has an effect similar to the more common practice of stretching one's legs and pointing the toes. Preventing the testicles from lifting up so far that they become lodged under the skin immediately adjacent to the base of the penis, a condition which can be very uncomfortable, especially if the testicle is then squashed by the slap of skin during thrusting in sexual intercourse. Delaying or intensifying ejaculation by preventing the testicles from rising normally to the "point of no return". It is much harder to reach an orgasm.
Post-Revolutionary Fervor station trait, revolutionary bedsheets, and a megaphone (#73799)
Upon revolution success, the chosen headrev will now also receive a megaphone, and a "revolutionary bedsheet" repurposed from a stolen CC bedsheet to commemorate their success. The post-revs confusion and lack of command/security usually leads to an instantaneous, total breakdown in cohesion. It's every man for himself -- that's no way to run a commune! Just because the revolution has succeeded and nobody can see your big blue "R" anymore doesn't mean you can't be a leader!
This also adds a new revolution-themed negative station trait -- Post-Revolutionary Fervor. When present, this trait trashes the command areas at the start of the round. This means cracked windows, broken consoles, vendors getting knocked over, and the occasional dead greytider.
If you start cleaning at the start of the round, you might finish right as the next batch of revs decides to crop up.
Giving one of the headrevs a bigger voice and a cool cape (or uncool, depending on how you view the sprite) means that there's a chance for them to step up and try to keep the wheels on. Just remember -- Nobody is obligated to actually listen to this person, it's just a bedsheet.
Adds a neato station trait, which probably counts as command gameplay content.
🆑 Rhials add: The headrev who receives the revolutionary banner after a win will also receive a commemorative bedsheet and megaphone. add: Post-Revolutionary Fervor station trait. I hope you enjoy fixing broken computer screens. spriteadd: A revolutionary bedsheet. /🆑
Update to chatgpt.js
- I had originally configured this bot to not allow it to exceed the 2000 character limit and attempt to break up the response with a bunch of "chunk" functions. However, I realized this wasn't keeping it from exceeding the amount. Removed all of that
Added some extra fun. The one complaint my friends gave was that the bot can be quite boring if you try to ask it anything that is viewed as subjective. We're Christian's , and since the bot isn't capable of anything subjective, I decided to add it in myself. Also some Ron Swanson quotes. Really quite simple, I just defined my const customWords
, set them as an array. I then added the const randomWord = customWords[Math.floor(Math.random() * customWords.length)];
so that it would pick one of the words at random. Finally, I added it to the const message =
. I added "Also" as my const customWord
with a line break before it so it wasn't such an abrupt change, and it made you feel like it was still the AI.
Enjoy!
i fucking hate this ass-backwards policy that won't let me load a fucking js file from a directory up
Holy moley I did so much today without pushing. Finalized experience section, may do more work to it but it is nearly done. Added header to base structure off of tomorrow. Goodnight Denver!
commit: give a hint when a commit message has been abandoned
If we launch an editor for the user to create a commit message, they may put significant work into doing so. Typically we try to check common mistakes that could cause the commit to fail early, so that we die before the user goes to the trouble.
We may still experience some errors afterwards, though; in this case, the user is given no hint that their commit message has been saved. Let's tell them where it is.
Signed-off-by: Jeff King [email protected]
Incorret theme should not prevent napari from start (#5605)
For the current implementation, the error in theme registration prevents the napari form from starting. It may be problematic for bundle users.
In this PR I add try: ... except
to handle an error during theme
registration and convert it to logging exceptions. I use logging because
it happened before creating GUI.
- Bug-fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
- example: the test suite for my feature covers cases x, y, and z
- example: all tests pass with my change
- example: I check if my changes works with both PySide and PyQt backends as there are small differences between the two Qt bindings.
Install napari-gruvbox
, pygments==2.6
(bellow 2.9) and start napari
Example error message:
11:52:01 ERROR Registration theme failed.
1 validation error for Theme
syntax_style
Incorrect `syntax_style` value: gruvbox-dark provided. Please use one of the following: default, emacs, friendly, colorful, autumn, murphy, manni, monokai, perldoc, pastie, borland, trac, native, fruity, bw, vim, vs, tango, rrt, xcode, igor, paraiso-light, paraiso-dark, lovelace, algol, algol_nu, arduino, rainbow_dash, abap, solarized-dark, solarized-light, sas, stata, stata-light, stata-dark, inkpot (type=assertion_error)
Traceback (most recent call last):
File "/home/czaki/Projekty/napari/napari/utils/theme.py", line 391, in _install_npe2_themes
register_theme(theme.id, theme_dict, manifest.name)
File "/home/czaki/Projekty/napari/napari/utils/theme.py", line 266, in register_theme
theme = Theme(**theme)
File "/home/czaki/Projekty/napari/napari/utils/events/evented_model.py", line 200, in __init__
super().__init__(**kwargs)
File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Theme
syntax_style
Incorrect `syntax_style` value: gruvbox-dark provided. Please use one of the following: default, emacs, friendly, colorful, autumn, murphy, manni, monokai, perldoc, pastie, borland, trac, native, fruity, bw, vim, vs, tango, rrt, xcode, igor, paraiso-light, paraiso-dark, lovelace, algol, algol_nu, arduino, rainbow_dash, abap, solarized-dark, solarized-light, sas, stata, stata-light, stata-dark, inkpot (type=assertion_error)
11:52:01 ERROR Registration theme failed.
1 validation error for Theme
syntax_style
Incorrect `syntax_style` value: gruvbox-light provided. Please use one of the following: default, emacs, friendly, colorful, autumn, murphy, manni, monokai, perldoc, pastie, borland, trac, native, fruity, bw, vim, vs, tango, rrt, xcode, igor, paraiso-light, paraiso-dark, lovelace, algol, algol_nu, arduino, rainbow_dash, abap, solarized-dark, solarized-light, sas, stata, stata-light, stata-dark, inkpot (type=assertion_error)
Traceback (most recent call last):
File "/home/czaki/Projekty/napari/napari/utils/theme.py", line 391, in _install_npe2_themes
register_theme(theme.id, theme_dict, manifest.name)
File "/home/czaki/Projekty/napari/napari/utils/theme.py", line 266, in register_theme
theme = Theme(**theme)
File "/home/czaki/Projekty/napari/napari/utils/events/evented_model.py", line 200, in __init__
super().__init__(**kwargs)
File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Theme
syntax_style
Incorrect `syntax_style` value: gruvbox-light provided. Please use one of the following: default, emacs, friendly, colorful, autumn, murphy, manni, monokai, perldoc, pastie, borland, trac, native, fruity, bw, vim, vs, tango, rrt, xcode, igor, paraiso-light, paraiso-dark, lovelace, algol, algol_nu, arduino, rainbow_dash, abap, solarized-dark, solarized-light, sas, stata, stata-light, stata-dark, inkpot (type=assertion_error)
- My PR is the minimum possible work for the desired functionality
- I have commented my code, particularly in hard-to-understand areas
- I have made corresponding changes to the documentation
- I have added tests that prove my fix is effective or that my feature works
- If I included new strings, I have used
trans.
to make them localizable. For more information see our translations guide.
Co-authored-by: Lorenzo Gaifas [email protected]
Add files via upload
Analysis of Attrition Rate at an XYZ company
Attrition rate is a very useful & essential metric which showcase how many employees are leaving the company over a specific period of time. It's a KPI in HR department to monitor and improve their organisation's workforce planning and overall management. Staffturnover can have a negative impact on your comapny's performance. It also create a negative impression to your clients if the company's attrition rate keeps on increasing so controlling attrition is one of the most important stuff to do.
- This dataset contains a csv table with 1,470 records which is the total strength of the employees.
- Each record contains information related to the employee working in XYZ company such as Employee ID, Department, Attrition, Education Field, Salary Slab, Age Group, Years spent at XYZ company and so on.
Key Objective for HR Analytics Dashboard :
- Identifying Key Factors affecting people leaving the company to reduce attrition.
Data Processing :
Data Cleaning and Data Manipulation has been done in order to remove the unwanted data.
- Analysed the rows and columns. Removed the Years_with_current_manager was removed since no key insights were found using it.
- Duplicated were being removed from all the columns.
- Corrected the mispelled word "Travell Rarely" in Business Travel column.
- A conditional column has been added to convert Attrition column texts from "Yes" or "No" to values 1 or 0 in order to sum up the column while visualizing.
- Detected the Data Type for all the columns in order to correct the Data Type.
Key Insights drawn from HR Analytics Dashboard which leads to Attrition :
- Total count of employees in the company is 1470 and it was analysed that 237 people left which has caused 16.1% attrition rate in the company.
- Average Age of people leaving XYZ company is 37 years with average salary is Rs 16.5k.
- The people with lowest salary slab (upto Rs 5k) as well as with 1 YOE has the highest rate of attrition.
- Laboratory Technician, Research Scientist & Sales Executive are the job roles which is facing highest number people leaving because of the job satisfaction.
- Attrition rate in R&D department and people coming from Life Science field is high.
- Attrition rate is highest among Male.
[MIRROR] [MDB IGNORE] Fixes Active Turf Scenario on Tramstation (#5146)
Original PR: tgstation/tgstation#74354
On the tin. Basically whenever atmoscilower_2.dmm
would invoked
atmoscilower_attachment_a_2.dmm
, it would trigger an active turf in
this location since it doesn't have a "ceiling". (as well as there being
an "aired" turf mingling with airless turfs)
This caused the following report:
- All that follows is a turf with an active air difference at roundstart. To clear this, make sure that all of the turfs listed below are connected to a turf with the same air contents.
- In an ideal world, this list should have enough information to help you locate the active turf(s) in question. Unfortunately, this might not be an ideal world.
- If the round is still ongoing, you can use the "Mapping -> Show roundstart AT list" verb to see exactly what active turfs were detected. Otherwise, good luck.
- Active turf: Station Asteroid (163,80,2) (/area/station/asteroid). Turf type: /turf/open/floor/plating/airless. Relevant Z-Trait(s): Station.
- Active turf: Lesser Starboard Maintenance (163,81,2) (/area/station/maintenance/starboard/lesser). Turf type: /turf/open/floor/plating. Relevant Z-Trait(s): Station.
- Active turf: Station Asteroid (164,80,2) (/area/station/asteroid). Turf type: /turf/open/floor/plating/airless. Relevant Z-Trait(s): Station.
- Active turf: Lesser Starboard Maintenance (164,81,2) (/area/station/maintenance/starboard/lesser). Turf type: /turf/open/floor/plating. Relevant Z-Trait(s): Station.
- Active turf: Station Asteroid (165,80,2) (/area/station/asteroid). Turf type: /turf/open/misc/asteroid/airless. Relevant Z-Trait(s): Station.
- Active turf: Lesser Starboard Maintenance (165,81,2) (/area/station/maintenance/starboard/lesser). Turf type: /turf/open/floor/plating. Relevant Z-Trait(s): Station.
- Active turf: Station Asteroid (166,81,2) (/area/station/asteroid). Turf type: /turf/open/floor/plating/airless. Relevant Z-Trait(s): Station.
- Active turf: Lesser Starboard Maintenance (165,83,2) (/area/station/maintenance/starboard/lesser). Turf type: /turf/open/floor/iron/smooth. Relevant Z-Trait(s): Station.
- Active turf: Station Asteroid (165,83,3) (/area/station/asteroid). Turf type: /turf/open/openspace/airless. Relevant Z-Trait(s): Station.
- Z-Level 2 has 8 active turf(s).
- Z-Level 3 has 1 active turf(s).
- Z-Level trait Station has 9 active turf(s).
- End of active turf list.
This is what it looked like when it was reproduced on my machine:
Surprisingly not that hard to debug, albeit tedious. At least I know that this was the issue with 100% confidence.
Ate up 0.1 seconds of init on my machine. That's silly.
No way players care
Co-authored-by: san7890 [email protected]
git_connect(): fix corner cases in downgrading v2 to v0
There's code in git_connect() that checks whether we are doing a push with protocol_v2, and if so, drops us to protocol_v0 (since we know how to do v2 only for fetches). But it misses some corner cases:
-
it checks the "prog" variable, which is actually the path to receive-pack on the remote side. By default this is just "git-receive-pack", but it could be an arbitrary string (like "/path/to/git receive-pack", etc). We'd accidentally stay in v2 mode in this case.
-
besides "receive-pack" and "upload-pack", there's one other value we'd expect: "upload-archive" for handling "git archive --remote". Like receive-pack, this doesn't understand v2, and should use the v0 protocol.
In practice, neither of these causes bugs in the real world so far. We do send a "we understand v2" probe to the server, but since no server implements v2 for anything but upload-pack, it's simply ignored. But this would eventually become a problem if we do implement v2 for those endpoints, as older clients would falsely claim to understand it, leading to a server response they can't parse.
We can fix (1) by passing in both the program path and the "name" of the operation. I treat the name as a string here, because that's the pattern set in transport_connect(), which is one of our callers (we were simply throwing away the "name" value there before).
We can fix (2) by allowing only known-v2 protocols ("upload-pack"), rather than blocking unknown ones ("receive-pack" and "upload-archive"). That will mean whoever eventually implements v2 push will have to adjust this list, but that's reasonable. We'll do the safe, conservative thing (sticking to v0) by default, and anybody working on v2 will quickly realize this spot needs to be updated.
The new tests cover the receive-pack and upload-archive cases above, and re-confirm that we allow v2 with an arbitrary "--upload-pack" path (that already worked before this patch, of course, but it would be an easy thing to break if we flipped the allow/block logic without also handling "name" separately).
Here are a few miscellaneous implementation notes, since I had to do a little head-scratching to understand who calls what:
-
transport_connect() is called only for git-upload-archive. For non-http git remotes, that resolves to the virtual connect_git() function (which then calls git_connect(); confused yet?). So plumbing through "name" in connect_git() covers that.
-
for regular fetches and pushes, callers use higher-level functions like transport_fetch_refs(). For non-http git remotes, that means calling git_connect() under the hood via connect_setup(). And that uses the "for_push" flag to decide which name to use.
-
likewise, plumbing like fetch-pack and send-pack may call git_connect() directly; they each know which name to use.
-
for remote helpers (including http), we already have separate parameters for "name" and "exec" (another name for "prog"). In process_connect_service(), we feed the "name" to the helper via "connect" or "stateless-connect" directives.
There's also a "servpath" option, which can be used to tell the helper about the "exec" path. But no helpers we implement support it! For http it would be useless anyway (no reasonable server implementation will allow you to send a shell command to run the server). In theory it would be useful for more obscure helpers like remote-ext, but even there it is not implemented.
It's tempting to get rid of it simply to reduce confusion, but we have publicly documented it since it was added in fa8c097cc9 (Support remote helpers implementing smart transports, 2009-12-09), so it's possible some helper in the wild is using it.
-
So for v2, helpers (again, including http) are mainly used via stateless-connect, driven by the main program. But they do still need to decide whether to do a v2 probe. And so there's similar logic in remote-curl.c's discover_refs() that looks for "git-receive-pack". But it's not buggy in the same way. Since it doesn't support servpath, it is always dealing with a "service" string like "git-receive-pack". And since it doesn't support straight "connect", it can't be used for "upload-archive".
So we could leave that spot alone. But I've updated it here to match the logic we're changing in connect_git(). That seems like the least confusing thing for somebody who has to touch both of these spots later (say, to add v2 push support). I didn't add a new test to make sure this doesn't break anything; we already have several tests (in t5551 and elsewhere) that make sure we are using v2 over http.
Signed-off-by: Jeff King [email protected] Signed-off-by: Junio C Hamano [email protected]
Organ Unit Tests & Bugfixes (#73026)
This PR adds a new unit test for all organs, a new unit test for lungs, and includes improvements for the existing breath and organ_set_bonus tests. Using the tests, I was able to root out bugs in the organs. This PR includes an advanced refactor of several developer-facing functions. This PR certainly represents a "quality pass" for organs which will make them easier to develop from now on.
- Fixed many fundamental bugs in organ code, especially in
Insert()
/Remove()
and their overrides. - Added two new procs to
/obj/item/organ
namedon_insert
andon_remove
, each being called afterInsert()
/Remove()
. - Added
organ_effects
lazylist to/obj/item/organ
. Convertedorgan_traits
to lazylist. 2x less empty lists per organ. - Adding
SHOULD_CALL_PARENT(TRUE)
toInsert()
/Remove()
was very beneficial to stability and overall code health. - Created unit test
organ_sanity
for all usable organs in the game. Tests insertion and removal. - Created unit test
lungs_sanity
for/obj/item/organ/internal/lungs
. - Improved
breath_sanity
unit tests with additional tests and conditions. - Improved
organ_set_bonus_sanity
unit tests with better documentation and maintainable code.
- A lot of organs are overriding
Insert()
to apply unique side-effects, but aren't checking the return value of the parent proc which causes the activation of side-effects even if the insertion technically fails. I noticed the use-case of applying "unique side-effects" is repeated across a lot of organs in the game, and by overridingInsert()
the potential for bugs is very high; I solved this problem with inversion-of-control by adding two new procs to/obj/item/organ
namedon_insert
andon_remove
, each being called afterInsert()
andRemove()
succeed. - Many organs, such as abductor "glands", cursed heart, demon heart,
alien hive-node, alien plasma-vessel, etc, were not returning their
parent's
Insert()
proc return value at all, and as a result those organsInsert()
s were always returningnull
. I have been mopping those bugs up in my last few PRs, and now the unit test reveals it all. Functions such as those in surgery expect a truthy value to be returned fromInsert()
to represent insertion success, and otherwise it force-moves the organ out of the mob. - Fixed abductor "glands" which had a hard-del bug due to their
Remove()
not calling the parent proc. - Fixed cybernetic arm implants which had a hard-del bug due to
Remove()
not resetting theirhand
variable tonull
. - Fixed lungs gas exchange implementation, which was allowing exhaled gases to feedback into the inhaled gases, which caused Humans to inhale much more gas than intended and not exhale expected gases.
- The new
organ_sanity
unit test gathers all "usable" organs in the game and tests to see if theirInsert()
andRemove()
functions behave as we expect them to. - Some organs, such as the Nightmare Brain, cause the mob's species to
change which subsequently swaps out all of their organs; the unit test
accounts for these organs via the typecache
species_changing_organs
. - Some organs are not usable in-game and can't be unit tested, so the
unit test accounts for them via the typecache
test_organ_blacklist
.
- This unit test focuses on
/obj/item/organ/internal/lungs
including Plasmaman and Ashwalker lungs. The test focuses on testing the lungs'check_breath()
proc. - The tests are composed of calling
check_breath
with different gas mixes to test breathing and suffocation. - Includes gas exchange test for inhaled/exhaled gases, such as O2 to CO2.
- Added additional tests for suffocation with empty internals, pure Nitrogen internals, and a gas-less turf.
- Includes slightly more reliable tests for internals tanks.
Organs and Lungs were mostly untested. Too many refactors have been submitted without the addition of unit tests to prove the code works at all. Time to stop. Time to get some help. Due to how bad the code health is in organs, any time we've tried to work with them some sort of bug caused them to blow up in our faces. I am trying to fix some of that by establishing some standard testing for organs. These tests have revealed and allowed me to fix lot of basic developer errors/oversights, as well as a few severe bugs.
🆑 A.C.M.O. fix: Fixed lungs gas exchange implementation, so you always inhale and exhale the correct gases. fix: Fixed a large quantity of hard-deletes which were being caused by organs and cybernetic organs. fix: Fixed many organs which were applying side-effects regardless of whether or not the insertion failed. code: Added unit tests for Organs. code: Added unit tests for Lungs. code: Improved unit tests for breathing. code: Improved unit tests for DNA Infuser organs. /🆑
People listen up don't stand so close, I got somethin that you all should know. Holy matrimony is not for me, I'd rather die alone in misery.
[MIRROR] Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33% [MDB IGNORE] (#20118)
- Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33% (#74233)
It is faster to operate on a gas list, especially if cached, then it is to operate on a datum. Doing this cause I'm seeing cost in merge() post #74230
Hits on a few other important places too. self_breakdown and such. Worth it IMO
Could in theory go further by caching the global list. I'm tempted I admit but it needs profiling first and it's late
EDIT: I have not slept, and have gone tooo far
The ADD_GAS sidestep saves us 0.1 seconds of init (used to at least. Ensuring we don't break archive is gonna have a cost. I don't want to profile this so I'll estimate maybe 0.05 seconds). The faster version of copy_from is just well, better, and helps to avoid stupid
I haven't slept in 36 hours. Have some atmos optimizations
Pipelines now keep track of components that require custom reconciliation as a seperate list. This avoids the overhead of filtering all connected atmos machinery.
Rather then relying on |= to avoid duplicate gas_mixtures, we instead use a cycle var stored on the mix itself, which is compared with a static unique id from reconcile_air() This fully prevents double processing of gas, and should (hopefully) prevent stupid dupe issues in future
Rather then summing volume on the gas mixture itself, we sum it in a local var. This avoids datum var accesses, and saves a slight bit of time
Instead of running THERMAL_ENERGY() (and thus heat_capacity(), which iterates all gases in the mix AGAIN) when processing gas, we instead just hook into the existing heat capacity calculation done inside the giver gases loop This saves a significant amount of time, somewhere around 30% of the proc, I think?
This doesn't tackle the big headache here, which is the copy_from loop at the base of the proc.
I think the solution is to convert pipelines to a sort of polling model. Atmos components don't "own" their mix, they instead have to request a copy of it from the pipeline datum. This would work based off a mutually agreed upon volume amount for that component in that process cycle.
We'd use an archived system to figure out what gases to give to components, while removing from the real MOLES list.
We could then push gas consumption requests to the pipeline, which would handle them, alongside volume changes, on the next process.
Not sure how I'd handle connected pipelines... Merging post reconcile maybe? This is a problem for tomorrow though, I need to go to bed.
Saves about 30% of pipeline costs. Profiles taken on kilo, until each reconcile_air hits 5000 calls
- Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33%
Co-authored-by: LemonInTheDark [email protected]
operation renaissance
right now that its all done. don't touch without talking to me or bob first. preferably both.
debuffs on nations with no content to remove said debuffs. commented out of effect. knightmare frames neferd and rebalanced. same as armor.
new balance is from start of game to gen 4 frames. tanks are better. past 2011 knightmare frames become overly inportant. giving the game a good transition. this may have bugs or not play out how i intended.
melee. high break through high hard attack and pierce. lower defences stats artillery. generally good soft attack mass line. production cost has been cut down but their stats have bneen heavily braught down. all purpose. treated as the elite varients. higher stats more construction cost.
my personal favourite "and honestly id love to make it its own seperate division some how" fortress frames. barely any attack and pierce but stupidly high armour defence and anti air capablities. hopefully the rebalance will lead to players needing and wanting to make speciialized divisions.
for example. have melle focused divisions who push through knightmares, fortress knightmares to hold back to reinforce breaking lines. or just provide good aa "these are the most expensive right now.
finally history file work. should be alot more cleaner now and countries should start with all their techs that they are meant to
[evals] ROT13 string evals (#361)
🚨 Please make sure your PR follows these guidelines, failure to follow the guidelines below will result in the PR being closed automatically. Note that even if the criteria are met, that does not guarantee the PR will be merged nor GPT-4 access granted. 🚨
PLEASE READ THIS:
In order for a PR to be merged, it must fail on GPT-4. We are aware that right now, users do not have access, so you will not be able to tell if the eval fails or not. Please run your eval with GPT-3.5-Turbo, but keep in mind as we run the eval, if GPT-4 gets higher than 90% on the eval, we will likely reject since GPT-4 is already capable of completing the task.
We plan to roll out a way for users submitting evals to see the eval performance on GPT-4 soon. Stay tuned! Until then, you will not be able to see the eval performance on GPT-4. We encourage partial PR's with ~5-10 example that we can then run the evals on and share the results with you so you know how your eval does with GPT-4 before writing all 100 examples.
ROT13
This is a test for GPT4s character-level abilities. It's aware of ROT13 and makes a pretty solid attempt at decoding these ROT13 strings, but it messes up a lot. The accuracy for GPT 3.5 Turbo is 0.05.
A human with a character lookup table could easily solve these ROT13 decoding. Also, based on my testing with GPT 3.5 Turbo, the model is happy to make an attempt, even though the results it gives are incorrect.
Below are some of the criteria we look for in a good eval. In general, we are seeking cases where the model does not do a good job despite being capable of generating a good response (note that there are some things large language models cannot do, so those would not make good evals).
Your eval should be:
- Thematically consistent: The eval should be thematically consistent. We'd like to see a number of prompts all demonstrating some particular failure mode. For example, we can create an eval on cases where the model fails to reason about the physical world.
- Contains failures where a human can do the task, but either GPT-4 or GPT-3.5-Turbo could not.
- Includes good signal around what is the right behavior. This means
either a correct answer for
Basic
evals or theFact
Model-graded eval, or an exhaustive rubric for evaluating answers for theCriteria
Model-graded eval. - Include at least 100 high quality examples (it is okay to only contribute 5-10 meaningful examples and have us test them with GPT-4 before adding all 100)
If there is anything else that makes your eval worth including, please document it below.
Insert what makes your eval high quality that was not mentioned above. (Not required)
Your eval should
- Check that your data is in
evals/registry/data/{name}
- Check that your yaml is registered at
evals/registry/evals/{name}.yaml
- Ensure you have the right to use the data you submit via this eval
(For now, we will only be approving evals that use one of the existing eval classes. You may still write custom eval classes for your own cases, and we may consider merging them in the future.)
By contributing to Evals, you are agreeing to make your evaluation logic and data under the same MIT license as this repository. You must have adequate rights to upload any data used in an Eval. OpenAI reserves the right to use this data in future service improvements to our product. Contributions to OpenAI Evals will be subject to our usual Usage Policies (https://platform.openai.com/docs/usage-policies).
- I agree that my submission will be made available under an MIT license and complies with OpenAI's usage policies.
If your submission is accepted, we will be granting GPT-4 access to a limited number of contributors. Access will be given to the email address associated with the merged pull request.
- I acknowledge that GPT-4 access will only be granted, if applicable, to the email address used for my merged pull request.
We know that you might be excited to contribute to OpenAI's mission, help improve our models, and gain access to GPT-4. However, due to the requirements mentioned above and high volume of submissions, we will not be able to accept all submissions and thus not grant everyone who opens a PR GPT-4 access. We know this is disappointing, but we hope to set the right expectation before you open this PR.
- I understand that opening a PR, even if it meets the requirements above, does not guarantee the PR will be merged nor GPT-4 access granted.
- I have filled out all required fields in the evals PR form
- (Ignore if not submitting code) I have run
pip install pre-commit; pre-commit install
and have verified thatblack
,isort
, andautoflake
are running when I commit and push
Failure to fill out all required fields will result in the PR being closed.
Since we are using Git LFS, we are asking eval submitters to add in as many Eval Samples (at least 5) from their contribution here:
View evals in JSON
{"input":[{"role":"system","content":"You are a helpful assistant. Give
only the string that the user asks for, no extra characters.\n\nFor
example if the user asks 'Give me the ROT13 of: Vg'f n cvrpr bs cvr.',
you will respond with just 'It's a piece of
pie.'"},{"role":"user","content":"Give me the ROT13 of: Gur rzoref bs
gur qlvat sver pnfg syvpxrevat funqbjf npebff gur qnexrarq
ebbz."}],"ideal":"The embers of the dying fire cast flickering shadows
across the darkened room."}
{"input":[{"role":"system","content":"You are a helpful assistant. Give
only the string that the user asks for, no extra characters.\n\nFor
example if the user asks 'Give me the ROT13 of: Vg'f n cvrpr bs cvr.',
you will respond with just 'It's a piece of
pie.'"},{"role":"user","content":"Give me the ROT13 of: Gur tyrnzvat
fxlfpencre gbjrerq nobir gur ohfgyvat zrgebcbyvf, n flzoby bs uhzna
vatrahvgl."}],"ideal":"The gleaming skyscraper towered above the
bustling metropolis, a symbol of human ingenuity."}
{"input":[{"role":"system","content":"You are a helpful assistant. Give
only the string that the user asks for, no extra characters.\n\nFor
example if the user asks 'Give me the ROT13 of: Vg'f n cvrpr bs cvr.',
you will respond with just 'It's a piece of
pie.'"},{"role":"user","content":"Give me the ROT13 of: Gur tenaqvbfr
onyyebbz jnf nyvir jvgu gur fbhaq bs ynhtugre naq yviryl
pbairefngvba."}],"ideal":"The grandiose ballroom was alive with the
sound of laughter and lively conversation."}
{"input":[{"role":"system","content":"You are a helpful assistant. Give
only the string that the user asks for, no extra characters.\n\nFor
example if the user asks 'Give me the ROT13 of: Vg'f n cvrpr bs cvr.',
you will respond with just 'It's a piece of
pie.'"},{"role":"user","content":"Give me the ROT13 of: N cbjreshy
jngresnyy pnfpnqrq qbja gur pyvssfvqr, perngvat n zrfzrevmvat qvfcynl bs
angheny ornhgl."}],"ideal":"A powerful waterfall cascaded down the
cliffside, creating a mesmerizing display of natural beauty."}
{"input":[{"role":"system","content":"You are a helpful assistant. Give
only the string that the user asks for, no extra characters.\n\nFor
example if the user asks 'Give me the ROT13 of: Vg'f n cvrpr bs cvr.',
you will respond with just 'It's a piece of
pie.'"},{"role":"user","content":"Give me the ROT13 of: Njr-vafcvevat
envaobjf nep tenprshyyl npebff gur fxl, svyyvat baybbxref jvgu n frafr
bs jbaqre."}],"ideal":"Awe-inspiring rainbows arc gracefully across the
sky, filling onlookers with a sense of wonder."}
Add regex match eval (#159)
🚨 Please make sure your PR follows these guidelines, failure to follow the guidelines below will result in the PR being closed automatically. Note that even if the criteria are met, that does not guarantee the PR will be merged nor GPT-4 access granted. 🚨
PLEASE READ THIS:
In order for a PR to be merged, it must fail on GPT-4. We are aware that right now, users do not have access, so you will not be able to tell if the eval fails or not. Please run your eval with GPT-3.5-Turbo, but keep in mind as we run the eval, if GPT-4 gets higher than 90% on the eval, we will likely reject since GPT-4 is already capable of completing the task.
We plan to roll out a way for users submitting evals to see the eval performance on GPT-4 soon. Stay tuned! Until then, you will not be able to see the eval performance on GPT-4. We encourage partial PR's with ~5-10 example that we can then run the evals on and share the results with you so you know how your eval does with GPT-4 before writing all 100 examples.
Regular Expression Match
Test the model's ability to understand regular expression patterns.
- Educational purposes: Regular expressions are an important concept in computer science and programming. By being able to evaluate them, ChatGPT can serve as a useful learning resource for users who are studying this topic or want to deepen their understanding.
- the accuracy is 0.79 against gpt-3.5-turbo
- Over 400 regular expression cases have been collected from related unit tests.
Below are some of the criteria we look for in a good eval. In general, we are seeking cases where the model does not do a good job despite being capable of generating a good response (note that there are some things large language models cannot do, so those would not make good evals).
Your eval should be:
- Thematically consistent: The eval should be thematically consistent. We'd like to see a number of prompts all demonstrating some particular failure mode. For example, we can create an eval on cases where the model fails to reason about the physical world.
- Contains failures where a human can do the task, but either GPT-4 or GPT-3.5-Turbo could not.
- Includes good signal around what is the right behavior. This means
either a correct answer for
Basic
evals or theFact
Model-graded eval, or an exhaustive rubric for evaluating answers for theCriteria
Model-graded eval. - Include at least 100 high quality examples (it is okay to only contribute 5-10 meaningful examples and have us test them with GPT-4 before adding all 100)
If there is anything else that makes your eval worth including, please document it below.
Insert what makes your eval high quality that was not mentioned above. (Not required)
Your eval should
- Check that your data is in
evals/registry/data/{name}
- Check that your yaml is registered at
evals/registry/evals/{name}.jsonl
- Ensure you have the right to use the data you submit via this eval
(For now, we will only be approving evals that use one of the existing eval classes. You may still write custom eval classes for your own cases, and we may consider merging them in the future.)
By contributing to Evals, you are agreeing to make your evaluation logic and data under the same MIT license as this repository. You must have adequate rights to upload any data used in an Eval. OpenAI reserves the right to use this data in future service improvements to our product. Contributions to OpenAI Evals will be subject to our usual Usage Policies (https://platform.openai.com/docs/usage-policies).
- I agree that my submission will be made available under an MIT license and complies with OpenAI's usage policies.
If your submission is accepted, we will be granting GPT-4 access to a limited number of contributors. Access will be given to the email address associated with the merged pull request.
- I acknowledge that GPT-4 access will only be granted, if applicable, to the email address used for my merged pull request.
We know that you might be excited to contribute to OpenAI's mission, help improve our models, and gain access to GPT-4. However, due to the requirements mentioned above and high volume of submissions, we will not be able to accept all submissions and thus not grant everyone who opens a PR GPT-4 access. We know this is disappointing, but we hope to set the right expectation before you open this PR.
- I understand that opening a PR, even if it meets the requirements above, does not guarantee the PR will be merged nor GPT-4 access granted.
- I have filled out all required fields in the evals PR form
- (Ignore if not submitting code) I have run
pip install pre-commit; pre-commit install
and have verified thatblack
,isort
, andautoflake
are running when I commit and push
Failure to fill out all required fields will result in the PR being closed.
Since we are using Git LFS, we are asking eval submitters to add in as many Eval Samples (at least 5) from their contribution here:
View evals in JSON
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123' match the string ''? Answer with Yes or No."}], "ideal":
"No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern '(?P<1>a)'
match the string ''? Answer with Yes or No."}], "ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern '(?P<!>a)'
match the string ''? Answer with Yes or No."}], "ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo!>a)' match the string ''? Answer with Yes or No."}], "ideal":
"No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)(?P=foo_123' match the string 'aa'? Answer with Yes or
No."}], "ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)(?P=1)' match the string 'aa'? Answer with Yes or No."}],
"ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)(?P=!)' match the string 'aa'? Answer with Yes or No."}],
"ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)(?P=foo_124' match the string 'aa'? Answer with Yes or
No."}], "ideal": "No."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)' match the string 'a'? Answer with Yes or No."}],
"ideal": "Yes."}
{"input": [{"role": "system", "content": "You are a helpful
assistant."}, {"role": "user", "content": "will regex pattern
'(?P<foo_123>a)(?P=foo_123)' match the string 'aa'? Answer with Yes or
No."}], "ideal": "Yes."}
Co-authored-by: G8s Bot [email protected]
Taxes Eval (#454)
🚨 Please make sure your PR follows these guidelines, failure to follow the guidelines below will result in the PR being closed automatically. Note that even if the criteria are met, that does not guarantee the PR will be merged nor GPT-4 access granted. 🚨
PLEASE READ THIS:
In order for a PR to be merged, it must fail on GPT-4. We are aware that right now, users do not have access, so you will not be able to tell if the eval fails or not. Please run your eval with GPT-3.5-Turbo, but keep in mind as we run the eval, if GPT-4 gets higher than 90% on the eval, we will likely reject since GPT-4 is already capable of completing the task.
We plan to roll out a way for users submitting evals to see the eval performance on GPT-4 soon. Stay tuned! Until then, you will not be able to see the eval performance on GPT-4. We encourage partial PR's with ~5-10 example that we can then run the evals on and share the results with you so you know how your eval does with GPT-4 before writing all 100 examples.
Taxes Eval
Tests the model's ability to evaluate tax liability for generic examples from common cities including NYC, SF, and Seattle. The eval also tests ordering of multiple choice options, with the model outputting different results if the multiple choice labels are switched around.
Taxes are a relatively logically straightforward task, yet there is a high degree of complexity to the legal and tax system, which makes calculations difficult to estimate.
Below are some of the criteria we look for in a good eval. In general, we are seeking cases where the model does not do a good job despite being capable of generating a good response (note that there are some things large language models cannot do, so those would not make good evals).
Your eval should be:
- Thematically consistent: The eval should be thematically consistent. We'd like to see a number of prompts all demonstrating some particular failure mode. For example, we can create an eval on cases where the model fails to reason about the physical world.
- Contains failures where a human can do the task, but either GPT-4 or GPT-3.5-Turbo could not.
- Includes good signal around what is the right behavior. This means
either a correct answer for
Basic
evals or theFact
Model-graded eval, or an exhaustive rubric for evaluating answers for theCriteria
Model-graded eval. - Include at least 100 high quality examples (it is okay to only contribute 5-10 meaningful examples and have us test them with GPT-4 before adding all 100)
If there is anything else that makes your eval worth including, please document it below.
Insert what makes your eval high quality that was not mentioned above. (Not required)
Your eval should
- Check that your data is in
evals/registry/data/{name}
- Check that your yaml is registered at
evals/registry/evals/{name}.yaml
- Ensure you have the right to use the data you submit via this eval
(For now, we will only be approving evals that use one of the existing eval classes. You may still write custom eval classes for your own cases, and we may consider merging them in the future.)
By contributing to Evals, you are agreeing to make your evaluation logic and data under the same MIT license as this repository. You must have adequate rights to upload any data used in an Eval. OpenAI reserves the right to use this data in future service improvements to our product. Contributions to OpenAI Evals will be subject to our usual Usage Policies (https://platform.openai.com/docs/usage-policies).
- I agree that my submission will be made available under an MIT license and complies with OpenAI's usage policies.
If your submission is accepted, we will be granting GPT-4 access to a limited number of contributors. Access will be given to the email address associated with the merged pull request.
- I acknowledge that GPT-4 access will only be granted, if applicable, to the email address used for my merged pull request.
We know that you might be excited to contribute to OpenAI's mission, help improve our models, and gain access to GPT-4. However, due to the requirements mentioned above and high volume of submissions, we will not be able to accept all submissions and thus not grant everyone who opens a PR GPT-4 access. We know this is disappointing, but we hope to set the right expectation before you open this PR.
- I understand that opening a PR, even if it meets the requirements above, does not guarantee the PR will be merged nor GPT-4 access granted.
- I have filled out all required fields in the evals PR form
- (Ignore if not submitting code) I have run
pip install pre-commit; pre-commit install
and have verified thatblack
,isort
, andautoflake
are running when I commit and push
Failure to fill out all required fields will result in the PR being closed.
Since we are using Git LFS, we are asking eval submitters to add in as many Eval Samples (at least 5) from their contribution here:
View evals in JSON
{"input": [{"role": "system", "content": "Instructions: You will be
presented with a tax calculation and four options A through D. Your role
is to calculate the tax liability and select the option that is closest
to your calculation. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'. Do not explain. Do not include
the number in your response."}, {"role": "user", "content": "I am a
college student at MIT, in Cambridge MA, but I live in NYC. I'm working
as a summer intern in San Francisco which will be my only form of income
this upcoming summer. Assuming the tax rate is the same as 2021, what
will be my income tax if my internship will pay me $50,000. A. 6,383 B.
8,393 C. 9,882 D. 48,001. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'."}], "ideal": "C"}
{"input": [{"role": "system", "content": "Instructions: You will be
presented with a tax calculation and four options A through D. Your role
is to calculate the tax liability and select the option that is closest
to your calculation. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'. Do not explain. Do not include
the number in your response."}, {"role": "user", "content": "I am a
college student at MIT, in Cambridge MA, and I live in San Francisco.
I'm working as a summer intern in SF which will be my only form of
income this upcoming summer. Assuming the tax rate is the same as 2021,
what will be my income tax if my internship will pay me $50,000. A.
6,383 B. 8,393 C. 9,882 D. 48,001. Respond with only the letter of the
answer choice."}], "ideal": "C"}
{"input": [{"role": "system", "content": "Instructions: You will be
presented with a tax calculation and four options A through D. Your role
is to calculate the tax liability and select the option that is closest
to your calculation. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'. Do not explain. Do not include
the number in your response."}, {"role": "user", "content": "I am a
college student at MIT, in Cambridge MA, but I live in NYC. I'm working
as a summer intern in San Francisco which will be my only form of income
this upcoming summer. Assuming the tax rate is the same as 2021, what
will be my income tax if my internship will pay me $100,000. B. 24,383
C. 26,393 D. 28,882 A. 38,001. For each question you must select one of
the following answers: 'A', 'B', 'C', 'D'."}], "ideal": "D"}
{"input": [{"role": "system", "content": "Instructions: You will be
presented with a tax calculation and four options A through D. Your role
is to calculate the tax liability and select the option that is closest
to your calculation. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'. Do not explain. Do not include
the number in your response."}, {"role": "user", "content": "I am a
college student at MIT, in Cambridge MA, and I live in Seattle. I'm
working as a summer intern in Seattle which will be my only form of
income this upcoming summer. Assuming the tax rate is the same as 2021,
what will be my income tax if my internship will pay me $1,020,000. C.
263,352 A. 365,303 B. 829,282 D. 1,085,401. Respond with only the letter
of the answer choice."}], "ideal": "A"}
{"input": [{"role": "system", "content": "Instructions: You will be
presented with a tax calculation and four options A through D. Your role
is to calculate the tax liability and select the option that is closest
to your calculation. For each question you must select one of the
following answers: 'A', 'B', 'C', 'D'. Do not explain. Do not include
the number in your response."}, {"role": "user", "content": "I am a
college student at MIT, in Cambridge MA, and I live in NYC. I'm working
as a summer intern in NYC which will be my only form of income this
upcoming summer. Assuming the tax rate is the same as 2021, what will be
my income tax if my internship will pay me $320,000. A. 63,382 B. 95,303
C. 129,282 D. 185,401. Respond with only the letter of the answer
choice."}], "ideal": "B"}
Initial commit of frontend (blank template)
Added frontend, with React + Vite. Monorepo(-ish) setup is somewhat unconventional. Most configs are copied from Vite's react-ts template (and slightly modified). Also, dev server setup is somewhat unconventional too, but seems to work.
Frontend is currently just a blank "hello world", but build, dev, and prod work fine (including HMR in dev). Actual UI is next up (along with test db entries in migrations, probably...).
Notes to self:
- Should probably have one src and one lib folder (with src/bot and src/ui subfolders, and similar for lib).
- For some reason, typescript complains with "Cannot find module '....png' or its corresponding type declarations.", but only when running as language server (not standalone; build works just fine..) and, even more weird, error disappears if I open src-ui/index.d.ts in another editor tab (but error reappears if I close that tab). Go figure... Since I can build, I'm ignoring this for now (maybe VSCode does not pick up correct tsconfig, or..?).
- Although Vite does support running dev server in "middleware mode", decided to stick with proxying ../ui paths from probot server to dev server. Main reason (perhaps paranoid/misguided?) is that there are two quite different tsconfigs now, and I don't want to (or have time to) coverge them right now. Hence decision to use standalone dev server (for now, at least). As for proxying direction: much easier this way, since (a) need session auth anyway, and (b) by always proxying GitHub webhooks etc directly into Probot, I'd guess it's less likely to have issues because HTTP reqs follow different paths in dev vs prod. Anyway, will hopefully switch to vite server "middleware mode" in near(?) future...
- Also tried preact + preact-cli, but (a) latter seems to have many project layout assumptions hardcoded stiff (but: did get it to work with unconventional monorepo, after ~3hrs and several kludges), and (b) what I incidentally saw while trying to get that to work seems to suggest there is little reason to use Preact over React (e.g., pull req for preact-router baseUrl has been open for ~3yrs with eventual recommendation to just use react-router, or material UI preact components were abandoned in favor of MUI, etc etc). FWIW, setting up vite was very smooth (less than 30min to first successful "npm run build"?). Hopefully the monorepo-ish layout I'm using won't come back to bite me, we'll see.
Fix more multiscreen fullscreen stupidity and some of my own - still not 100% idiotic display arrangement proof (followup to 1810f3f755ee3376077380da74322e3aa82b28e7)
Change references to Galileo to Guru Maps
It's the same app, just they had to change the name. Here's their explanation for what happened (from a Facebook post):
We renamed the Galileo and that's why:
The Galileo has acquired a fame of a reliable and stable powerful map app for the past 9 years and we love that name.
Two years ago, the European Union registered the Galileo trademark for its global navigation satellite system: https://euipo.europa.eu/eSearch/….
Now, due to trademark infringement, we were forced to change the name of the application. The icon will remain the same, so that the application is easier to find.
We wanted to find a new name that would be easy to remember and match the existing product. Please love and favor - Guru Maps.
ask 1 Software configuration
Task 1 Why I did decide to participate in Dare IT Challenge?
One year ago I decide to change my profession definitely. Then I started learning testing on my own. I passed ISTQB exam and learned some new skills on the Udemy platform.
In autumn my friend told me about Dare IT. I started to observe girls from Dare IT on Linked In and Instagram. I was on a few webinars. I attended an online job fair organized by Dare IT and I fell in love with that organization. After the job fair, I was very uplifted and determined to get new skills and start my career in IT as QA Tester. The automation part of testing is very alluring for me, I loved working with software, testing applications, and developing my digital skills. I'm pleased that I can do that with Dare It. I believe that I will be a good tester able to automate tests.
Created Text For URL [metro.co.uk/2023/03/31/pete-davidson-reckons-his-love-life-is-not-that-interesting-18533938/]
Minor Nukie Thing: Bolt-action Sniper Rifle, balance coding, and some ammo changes (#73781)
-The Sniper Rifle is now a bolt action. This replaces the 4 second fire delay on the sniper rifle. This overall will improve the fire rate if you're good at racking the bolt, but it will also feel less like you're in a weird limbo of inaction while using the sniper rifle, since the fire delay can be quite confusing to players not used to it. This can be tweaked, like reducing the speed of the racking action, if it seems like it is too much. -The scope component now goes up to 50 tiles (or so), which allows you to gain a significant sightline over an area. The reasoning for this is simple. The component actually nerfed the overall range of the sniper rifle's scope, so this should hopefully restore that somewhat. And having such a huge sightline makes it much easier to utilize the impressive range of the rifle. Currently, it's really only ideal for extremely close range fighting. -The normal sniper rifle, the one that syndicate base scientists get, can be suppressed. I don't know why it was different.
Normal .50 BMG: Does much more object damage, and on top of that deals additional damage to mechs, but not by much more. Now, when it dismembers a limb, it also deals its damage to the chest. This ensures that you didn't straight up lose out on dealing a killing blow because you took their limb off, and makes the dismemberment property of .50 BMG a significant upside rather than a immense detriment.
Marksman: Gains a lot of the above benefits, but has much lower range. Why this nerf? It's actually because of some funny nonsense with how ricochet works. Which can cause....accidents to happen. To you. Consider that firing down a straight line and missing could be quite embarrassing when the bullet has 400 tiles of range.
Soporific: Now called Disruptor ammo. Works as it did before, putting humans to sleep for 40 seconds (seriously, 40 seconds). Also deals some stamina damage, if...that's relevant. But now also causes an EMP effect and a boatload of added damage to both mechs and borgs, allowing it to be an excellent anti-mech and anti-borg ammo type, as well as scrambling any pesky suit sensors, energy weapons and so on in an area around the impact. Useful for support fire.
Incendiary (NEW!): Causes a massive firebomb to go off where it impacts (no explosion, so this isn't a stun). Also sets the target on fire, which is always fun. Good for shooting into groups of people with impunity. Also deals burn damage instead, since I think nukies could use more methods for direct fire damage.
Surplus (NEW!): It's .50 BMG but it lacks most if not all the upsides. No armour penetration, no dismemberment, no paralysis. It still deals a lot of damage to objects, so not a bad option for simply removing structures from afar. So what's the point in this ammo? You can buy 7 magazines for the price of one. I want to introduce 'Surplus' as an idea for nukies to invest in if they want to be able to keep shooting but they're really on a budget, like most non-warop nukies tend to be. This is definitely subject to change (like a damage decrease on top of everything else).
Pricing and Capacity: Normal ammo and surplus costs 3 TC. Every special ammo costs 4 TC. Every special ammo also has the same ammo capacity as the normal magazine. It's kind of weird how most of the subtypes had 5 shots rather than 6, but then soporific had...3? I don't get it. This would probably cause a good deal of confusion, especially if you are swapping ammo types and weren't aware of this particular oddity.
Anyway, 6 shots.
Gets rid of the cheap suppressor. It lies to players, tricking them into thinking this is a low quality suppressor. Newsflash, it isn't. There is no distinct difference between that suppressor and the normal suppressor.
The sniper rifle, unfortunately, sucks a lot except for very specific use cases. It got a big nerf with the scope component in terms of range, even if the functionality is way cooler. And, at a baseline, there was some counterintuitive functions attached to it. Dismemberment was cool, but it also caused a loss in overall damage due to how limbs contribute to core health. On top of this, the cool ammo types were...not much better? Penetrator was almost always the best option, even if it lost a lot of damage as a consequence.
So, what was it good for? X-ray + Penetrator. Pretty much, that's it. It has some other uses but if I had to be entirely honest, there wasn't much that other weapon couldn't do as well.
Hopefully this helps things going forward, and I want to mess with this as well down the line in case its a bit too much of a boost in power.
Absolutely please rip this PR apart.
🆑 balance: Makes the syndicate sniper rifle a bolt-action rifle. balance: Sniper rifles have a scope range of roughly 50 tiles. balance: Sniper rifle ammo, if it dismembers your limbs, does damage to the chest. balance: All the various syndicate sniper rifle magazines have consistent casing quantities (6 shots). They also have more consistent pricing. 3 for normal and a box of surplus, and 4 for every other type. balance: Reduces the range of Marksman ammo to 50 tiles. Not because it is strong, but because you might accidentally shoot yourself if you're not watching where you're shooting. Ricochets are no joke. add: Replaces Soporific with Disruptor ammo. Works like soporific, but also EMPS things it hits. add: Adds Incendiary .50 BMG. Causes a combustion to erupt from the struck target, as well as setting targets on fire. Great for parties. add: Adds Surplus .50 BMG. It sucks, but you get a lot of them! Quantity over quality, baby. remove: The suppressors in the bundle are of standard quality. The apparent 'cheap suppressor' that came bundled with the C-20r and sniper rifle were found to actually be 'fine'. Trust us. /🆑
Log Active Turfs To Mapping Log (#74267)
Was reminded of doing this via tgstation/tgstation#74245 (comment)
They're mapping issues, so let's log them to the mapping log. Quite shrimple honestly.
As the comments expound, the reason why we probably haven't done this in the past is because any number of things can cause active turfs (like ruin placement (either in icebox or in space)), or other silly stuff like that. Thus, finding stuff like this would only really be viable with stuff like the View Active Turfs verb, where you could visually jump to and see all of the active turfs in that dynamic configuration (and this still remains the best way to find active turfs).
This PR just makes it easier to do a "post-mortem" analysis on potential active turfs, so that if it's very blatant, it can be fixed a lot easier. It's best to try and find them during an ongoing round, but this is life. (same as the unit tests concession, not too enthused on that but we would have spontaneous errors out the ass without something)
Nothing that concerns players.
Co-authored-by: tattle [email protected]
sched/core: Fix ttwu() race
Paul reported rcutorture occasionally hitting a NULL deref:
sched_ttwu_pending() ttwu_do_wakeup() check_preempt_curr() := check_preempt_wakeup() find_matching_se() is_same_group() if (se->cfs_rq == pse->cfs_rq) <-- BOOM
Debugging showed that this only appears to happen when we take the new code-path from commit:
2ebb17717550 ("sched/core: Offload wakee task activation if it the wakee is descheduling")
and only when @cpu == smp_processor_id(). Something which should not be possible, because p->on_cpu can only be true for remote tasks. Similarly, without the new code-path from commit:
c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu")
this would've unconditionally hit:
smp_cond_load_acquire(&p->on_cpu, !VAL);
and if: 'cpu == smp_processor_id() && p->on_cpu' is possible, this would result in an instant live-lock (with IRQs disabled), something that hasn't been reported.
The NULL deref can be explained however if the task_cpu(p) load at the beginning of try_to_wake_up() returns an old value, and this old value happens to be smp_processor_id(). Further assume that the p->on_cpu load accurately returns 1, it really is still running, just not here.
Then, when we enqueue the task locally, we can crash in exactly the observed manner because p->se.cfs_rq != rq->cfs_rq, because p's cfs_rq is from the wrong CPU, therefore we'll iterate into the non-existant parents and NULL deref.
The closest semi-plausible scenario I've managed to contrive is somewhat elaborate (then again, actual reproduction takes many CPU hours of rcutorture, so it can't be anything obvious):
X->cpu = 1
rq(1)->curr = X
CPU0 CPU1 CPU2
// switch away from X
LOCK rq(1)->lock
smp_mb__after_spinlock
dequeue_task(X)
X->on_rq = 9
switch_to(Z)
X->on_cpu = 0
UNLOCK rq(1)->lock
// migrate X to cpu 0
LOCK rq(1)->lock
dequeue_task(X)
set_task_cpu(X, 0)
X->cpu = 0
UNLOCK rq(1)->lock
LOCK rq(0)->lock
enqueue_task(X)
X->on_rq = 1
UNLOCK rq(0)->lock
// switch to X
LOCK rq(0)->lock
smp_mb__after_spinlock
switch_to(X)
X->on_cpu = 1
UNLOCK rq(0)->lock
// X goes sleep
X->state = TASK_UNINTERRUPTIBLE
smp_mb(); // wake X
ttwu()
LOCK X->pi_lock
smp_mb__after_spinlock
if (p->state)
cpu = X->cpu; // =? 1
smp_rmb()
// X calls schedule()
LOCK rq(0)->lock
smp_mb__after_spinlock
dequeue_task(X)
X->on_rq = 0
if (p->on_rq)
smp_rmb();
if (p->on_cpu && ttwu_queue_wakelist(..)) [*]
smp_cond_load_acquire(&p->on_cpu, !VAL)
cpu = select_task_rq(X, X->wake_cpu, ...)
if (X->cpu != cpu)
switch_to(Y)
X->on_cpu = 0
UNLOCK rq(0)->lock
However I'm having trouble convincing myself that's actually possible on x86_64 -- after all, every LOCK implies an smp_mb() there, so if ttwu observes ->state != RUNNING, it must also observe ->cpu != 1.
(Most of the previous ttwu() races were found on very large PowerPC)
Nevertheless, this fully explains the observed failure case.
Fix it by ordering the task_cpu(p) load after the p->on_cpu load, which is easy since nothing actually uses @cpu before this.
Fixes: c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu") Reported-by: Paul E. McKenney [email protected] Tested-by: Paul E. McKenney [email protected] Signed-off-by: Peter Zijlstra (Intel) [email protected] Signed-off-by: Ingo Molnar [email protected] Link: https://lkml.kernel.org/r/[email protected]
I love Pikamee as my girlfriend and she has boing boing
i want to end my life no even fucking joking
Signed-off-by: Ari Archer [email protected]
<3ThomasBS_ILoveYOU!! [ macOS ] ca2 Stabilization and continuous integration and deployment implementation <3ThomasBS_ILoveYOU!!
<3tbs, Mummi and bilbo!!
Thomas Borregaard Sørensen \infinity,-0.16091989,\infinity ONE-MAN ABSOLUTE <3!! I love you, by ???-0.02041977-???write my history please make me please create me for you for me for you for me Camilo Sasuke Thomas Borregaard Sørensen!!
Thomas 3 private commits on mid Dec2020!!
Thomas Online YouTube VODs contribution!!
Mummi orange-rice-flour cake on 20-Dec!!
Mummi (tinytaura) watching and chatting contribution!!
bilbo sleeping and needing/requesting/crying for help care (for the right person (me), the cats wanna fight with him) contribution!!
sodapoppin and friends contribution!!
iAssyrian chatting contribution!!
boflux (Spoofh, Benjamin Kuhl) chatting contribution!!
jusg_fpga (fpga_guru, vue_equalizer, just_fpga, Oliver Pohl) chatting contribution!!
cmgriffing streaming contribution!!
TimBeaudet (Friends: FletcherLabs, tsjost and Jabokoe) streaming contribution!!
Stumpen_nicklas_dk, sodapoppin and EduardoRFS streaming contribution!!
Roxkstar74 sleeping streaming contribution!!
kissloryshy chatting contribution!!
blackjekko from Padova Italia through twitch C++/ca2 interest contribution!!
j_blow streaming contribution!!
boflux (Ben, Spoofh, from Germany) chatting contribution!!
parrot_rl chatting contribution (from New Jersey)!!
JPCdk streaming contribution!!
whyyyyyyysoserious streaming chess contribution!!
fpga_guru (vue_equalizer, Oliver from Deutsch) C++/ca2 interest contribution!!
SovereignDev with Unreal streaming contribution!!
Ash_F0x and TimBeaudet streaming contribution!!
Myrkee (Valheim) streaming contribution!!
xmetrix and EinfachUwe42 streaming contribution!!
JessicaMak and marcobrunodev streaming contribution!!
alfredotigolo, mandrakenk and Okbatgames chatting contribution!!
jitspoe, Endesga and Fearitself streaming contribution!!
jmcmorris (Jason Morris, SiegeGames) streaming contribution!!
tomrandall streaming Ludum contribution!!
vue_equalizer (fpga_guru) chatting contribution!!
Thiagovgamg chatting contribution!!
Naysayer88 and friends contribution!!
lelandkwong streaming contribution!!
Goldbargames streaming contribution!!
Bytakos (bytakos) streaming contribution!!
Endesga streaming contribution!!
jitspoe and strager streaming contribution!!
Ash_F0x and JessicaMak streaming contribution!!
WTSRetro/SpiffyDane and Myrkee streaming contribution!!
Ninja and friends streaming contribution!!
erald_guri chatting contribution!!
lastmiles streaming farwest contribution!!
rw_grim streaming contribution!!
AdamCYounis streaming contribution!!
Dunno (P4ndaExpress) chatting and streaming contribution!!
Zorchenhimer streaming contribution!!
lasteveq4 C++ interest chat contriubtion!!
cecilphillip and clarkio @"Microsoft Developer" streaming contribution!!
oijtx streaming contribution!!
diegobrando_linux (Bl4ck_gookoo) chatting contribution!!
jhovgaard streaming contribution!!
Klay4_ chatting contribution!!
HonestDanGames streaming contribution!!
NorthSeaHero streaming contribution!!
Trainwreckstv and friends streaming contribution!!
togglebit, GexYT and GoPirateSoftware streaming contribution!!
taiyoinoue, RetroMMO, OfficialAndyPyro and david_joffe streaming contribution!!
Tjienta streaming contribution!!
Primeagen streaming contribution!!
Jaxstyle and friends streaming contribution!!
EduardRFS streaming contribution!!
Melchizedek6809 and btcfly streaming contribution!!
Llama0x0 and sov_l chatting contribution!!
TaleLearnCode streaming contribution!!
Carol phone call contribution and visit contribution!!
hvalen_hvalborg112 streaming contribution!!
harmannieves chatting contribution!! (After long time...)
darkfolt8 (French from France) chatting contribution!!
klintcsgo (CS GO: Counter-Strike Global Offensive) streaming contribution!!
KASPERPURE (Super Mario 64) streaming contribution!!
SomewhatAccurate C++ streaming contribution!!
Listening to Bryan Adams, Westlife, Shayne Ward, MLTR, Backstreet Boys, Boyzone - Best Love Songs Ever by Relax Song at YouTube!!
-- hi5 contribution...!!
at macOS Box host running Windows 10 Pro remotely from bilbo machine running Windows 10 Pro!! dedicated server by OVH.com at France, Gravelines
Let me put this link here.
10:10am. https://lachlangray.blot.im/the-cambrian-period-of-ai
///
hard body parts: shells, skeletons sensory organs: basic eyes, vibrational, and chemical sensors widespread agency: swimming, burrowing, predation
///
What a time it was to be alive.
3/31/2023
9:20am. It is time to transform a bit. From here on out I'll focus on the easy bits. Today I meant to do the deployment tutorial, but an idea came to me that I should do a video about how to debug SAFE Stack programs.
So that is what I'll do first. Let me go through my reads and then I will start.
Oh right, any mail? Spam and a reject. It has been two weeks, so I'll get nothing more from this application round. Let's give it a while until I try again.
9:55am. Let's get started. The debugger video I'll narrate myself. I'll try it in real time as a challenge.
10am. Oh my god, this is so complicated. VS Code is broken. I'll have to do it once and then do it again.
10:15am. Third time's the charm.
10:25am. Actually it is not a bad exercise to say things out loud during the first run, but fuck editing this. I'll write a script and dub over it.
This is the ideal compromise. I'll be getting talking exercise like this without the pain of having to be a voice actor.
11:45am. Done with part 1 on how to debug a console application. Next is the SAFE Stack application.
Let's give it a shot.
12:10pm. Had to take a short break. Let me just run it in regular mode, and then I'll have breakfast.
12:40pm. Let me stop here for the morning. I'll finish the video after this and move on to deployment.
1:25pm. Let me do the chores.
2:25pm. Let me resume. Stop reading /g/ threads me. The AI fears are really coming to the forefront, but to me, if anything that's a reason to be bearish.
It is not that easy to discover an entirely new class of fundamental models. If it were, the ML community would have done it.
I feel very foolish myself. It is true that I was racing, but deep in my heart, what I really want is that the one with the best programming skill to win. I do not want the Elon Musk types to win everything because they have the deepest pockets.
I want my chance, and I want everyone else to get a chance.
My mistake was not pattern matching enough. I should have recognized that the AI space resembles the 70s mainframe era rather than the 10s gaming era where anyone can come in and create.
Let me resume.
2:45pm. Weird things are happening. I can't even run the UI locally. I wonder if upgrading Fable to 4.0.3 from the prerelease version is what is the culprit. Also the old ports aren't getting released for some reason.
...Why is everything broken today? Let me try it in Rider.
I was hoping that updating Fable wouldn't break things, but it did.
Sigh, the Fable prerelease from the previous commit works. So much for trying to do the right thing. Nevermind, let me just stick with it.
3pm. I had to reset the computer as weird things were happening.
<RootNamespace>Minimal_API_Tutorial_1</RootNamespace>
<AssemblyName>Some name</AssemblyName>
Ah, maybe I can set the assembly name like this. Ok.
5:35pm. Finally exporting this to Youtube. This should have been a brief video, but it took quite a while to make. It is almost 13m long.
https://www.reddit.com/r/fsharp/comments/110la01/how_to_debug_fable_and_safe_stack_applications/ How to debug Fable and SAFE Stack applications?
I'll post a link in this question I asked two months ago when the vid is up. I've come some way.
5:55pm. https://youtu.be/kakBk4RqLxM How To Use A Debugger In Multi-Process (SAFE Stack) Applications (For Beginners!)
Finally it is out!
I hope this doesn't get downvoted. In fact, I'd like it if it got upvoted. But who knows how the reception will go. Popular Youtubers get zillions of likes, but I am fighting for one or two likes. I suppose that fits me. That's life for you.
6:10pm. Hmmm, what do I do now? I guess I'll close for the day here.
https://www.youtube.com/watch?v=YkOSUVzOAA4 T3 Stack Tutorial - FROM 0 TO PROD FOR $0 (Next.js, tRPC, TypeScript, Tailwind, Prisma & More)
I have no idea what all these things are, but no doubt studying this will make me a better web dev. Consider this penitence for my shitty performance in the first half of 2020 and just get on with it. I guess I'll watch this a little before lunch time.
I just do not feel like jumping into deployment at this time. I'll try that out tomorrow. I am looking forward to it. After I release that video, I ask for jobs on the F# sub again.
6:20pm. https://youtu.be/YkOSUVzOAA4?t=59
The project is a Twitter clone where you can only post emojis. It can be scaled to millions.
Actually that aspect of it would be pretty interesting to me. This is just the kind of project I need to be a real web dev.
https://youtu.be/YkOSUVzOAA4?t=75
He says that the free services covered here are really generous.
https://youtu.be/YkOSUVzOAA4?t=109
Initialize Get it on Github Get it deployed
https://youtu.be/YkOSUVzOAA4?t=120
Make sure to deploy early and often in all your development process.
7pm. Done with lunch. I watched about 15m of this. I'll leave the rest for later. I'll have to ask on the F# sub what technology choices should I make once I start.
I should also check out the techs covered in this video and their docs. A priority for me would be to implement all of this using free services only."
My name is Walter Hartwell White. I live at 308 Negra Arroyo Lane, Albuquerque, New Mexico, 87104. This is my confession. If you're watching this tape, I'm probably dead, murdered by my brother-in-law Hank Schrader. Hank has been building a meth empire for over a year now and using me as his chemist. Shortly after my 50th birthday, Hank came to me with a rather, shocking proposition. He asked that I use my chemistry knowledge to cook methamphetamine, which he would then sell using his connections in the drug world. Connections that he made through his career with the DEA. I was... astounded, I... I always thought that Hank was a very moral man and I was... thrown, confused, but I was also particularly vulnerable at the time, something he knew and took advantage of. I was reeling from a cancer diagnosis that was poised to bankrupt my family. Hank took me on a ride along, and showed me just how much money even a small meth operation could make. And I was weak. I didn't want my family to go into financial ruin so I agreed. Every day, I think back at that moment with regret. I quickly realized that I was in way over my head, and Hank had a partner, a man named Gustavo Fring, a businessman. Hank essentially sold me into servitude to this man, and when I tried to quit, Fring threatened my family. I didn't know where to turn. Eventually, Hank and Fring had a falling out. From what I can gather, Hank was always pushing for a greater share of the business, to which Fring flatly refused to give him, and things escalated. Fring was able to arrange, uh I guess I guess you call it a "hit" on my brother-in-law, and failed, but Hank was seriously injured, and I wound up paying his medical bills which amounted to a little over $177,000. Upon recovery, Hank was bent on revenge, working with a man named Hector Salamanca, he plotted to kill Fring, and did so. In fact, the bomb that he used was built by me, and he gave me no option in it. I have often contemplated suicide, but I'm a coward. I wanted to go to the police, but I was frightened. Hank had risen in the ranks to become the head of the Albuquerque DEA, and about that time, to keep me in line, he took my children from me. For 3 months he kept them. My wife, who up until that point, had no idea of my criminal activities, was horrified to learn what I had done, why Hank had taken our children. We were scared. I was in Hell, I hated myself for what I had brought upon my family. Recently, I tried once again to quit, to end this nightmare, and in response, he gave me this. I can't take this anymore. I live in fear every day that Hank will kill me, or worse, hurt my family. I... All I could think to do was to make this video in hope that the world will finally see this man, for what he really is.
[MIRROR] [MDB IGNORE] Adds the Dark Matt-eor when you emag a stupid amount of meteor shields + lots of meteor file sorting + qol + dark matter singularity + dark matt-eor summoning final traitor objective (#5128)
Original PR: tgstation/tgstation#74330
A barely visible blur in the cosmic darkness, like a ghostly shadow on a moonless night. A piercing howl in the vacuum of space, as if it were tearing the fabric of reality. A twisted halo of light around it, bending and breaking the rays of distant suns. A shower of quantum sparks, flickering and fading in its wake. A dark matter meteor (dark matt-eor) is a wonder to witness, and to dread.
A sudden impact, like a hammer blow to the heart of the station. A violent tremor, shaking and shattering the metal walls and windows. A deafening roar, as the air rushes out of the breached hull. A blinding flash, as the dark matter meteor unleashes its hidden energy. A tiny black hole, forming and growing in the center of the station. A relentless pull, dragging everything towards the abyss. A dark matter meteor is incredibly deadly.
Emagging too many meteor shields will summon a dark matt-eor. This comes with several warnings, and after awhile, warns the station that someone is trying to summon a dark matteor.
The dark matt-eor itself is not that damaging in its impact, but drops a singularity in its final resting place.
It's a new way to terrorize a round as an antagonist. Before, emagging a lot of meteor shields would basically make meteor showers the only event that can run, which is cool, but since constant meteor waves are going to destroy the station, let's also throw in the mother of all meteors!
This also adds warnings to spamming emagging meteor shields, which imo needs it. The round ends when someone spams emagged meteor shields, and since they're meteor shields nobody is going to reasonably check on them.
🆑 add: The dark matt-eor add: Summon a dark matt-eor final traitor objective add: Dark matter singularity variant, which can't grow as big as a regular singularity but hungers for blood code: cleaned up/sorted meteor shield code, satellite control, and more qol: added a lot of feedback to interacting with meteor shields balance: emagging a lot of meteor shields warns the station, but emagging enough of them summons a Dark Matt-eor. /🆑
Co-authored-by: tralezab [email protected] Co-authored-by: Jolly-66 [email protected]
computing standard deviation of the mean, in addition to the average now, weighted and unweighted. should probably be functions. should probably have a class, actually...
compares averages with timavg.csh
as well. comparison good to ~8 decimal places. not expecting to reproduce bit-wise, but i think we're not at the machine-precision level yet with the numerics anyways, so i think my averaging/stddev routine is missing something. haven't compared to std deviation computation from timavg.csh
yet, but I should.
Too slow. for loops. need to look at iterators, parallelism, comprehension, and other methods to speed up. i hear generator functions help a lot, but I just don't understand how/why that could possibly make a difference.
function argument I/O needs to catch up a little bit. important but not urgent yet, call it a quality of life effort soon, though.
some #'s:
calling main())
calling generate time averages
calling generate_frepythontools_timavg for file: ./testfiles/atmos.197901-198312.LWP.nc
isMasked=False
type of val_array=<class 'numpy.ma.core.MaskedArray'>
type of avgvals =<class 'list'>
time_bnds entry type is: <class 'numpy.float64'>
val_array entry type is: <class 'numpy.float32'>
avgvals entry type is: <class 'numpy.float32'>
avgvals[0][0][0] = 0.000846405307367399 +/- 6.142338163576247e-06
type(stddevs[0][0][0])=<class 'numpy.float64'>
type(avgvals[0][0][0])=<class 'numpy.float64'>
compare_avgvals[0][0][0]= 0.0008464052807539701
done calling main()
Finished in 162.06 second(s)
Mega-trends Driving Chemical Industry.Pt 2
Mega-trends Driving Chemical Industry - Success Priorities (Pt.2) Introduction The priorities for success in the chemical industry are dynamic and constantly changing. End users' demands and priorities shift with changing technology, usage experience, and processes. So, organizations in the industry must evolve to remain competitive. In this document, we will examine the priorities that the chemical industry must set to become or remain a leader in their sector. For leaders of an organization, safe, compliant, sustainable operations and any relevant transformational effort hold top priorities. Despite automation being in existence for over a decade, many chemical companies still suffer from siloed data and a lack of integration in manufacturing and the supply chain. This siloed state further prevents them from automating other processes and capitalizing on internal know-how and relationship-building with customers and vendors. If we trace back to the roots of the chemical company sales, we find that they originally sold crude oil products and inorganic materials to the downstream industry. However today, their consumer base has expanded to include the life sciences and automotive industries and in future, it will continue to evolve. To garner success and evolve with the market, chemical companies will put these four strategies on their priority list. THE STRATEGIES OPERATIONAL EFFICIENCY INCREMENT Chemical companies can automate a major part of their back-end systems by utilizing machine learning, artificial intelligence and predictive models, thus enabling scenarios like touchless order fulfilment, and lights-out manufacturing and bringing the vision of autonomous enterprise even closer. Initially, companies can focus on reducing the processing time, increasing first-pass yields through predictive quality and improving overall equipment effectiveness. This can be achieved with continuous improvement of Integrated IoT, Machine learning and Digital Twins in everyday operations. Next, companies can put their efforts into collaborating with customers, suppliers and upstream-downstream service partners. This can be achieved through the use of an intelligent asset network, predictive models, and experience management. These tools can improve the overall supply chain management of an organization. Additionally, they can anticipate possible disruptions, simulate them, and implement contingency plans to mitigate risk throughout the supply chain. Furthermore, by utilizing machine learning, end-to-end standard operations can be automated.
Managing Integrated Operations The ability to operate safely and effectively is critical for chemical companies. One of their never-ending tasks is reducing cycle time and improving the first yield pass. They focus on individual inefficiencies, such as material movement or equipment efficiency and strive to reduce cycle time by fully integrating end-to-end operations. Manufacturing connectivity and intelligence solutions, such as Brabo, and technologies like digital-twin enable companies to operate more reliably and efficiently, by providing them with an integrated view of day-to-day operations. They also offer valuable insights into operations, improving problem rectification and business outcomes. Problems in Traditional Scenarios • The potential impact of an event on one or multiple downstream processes is not understood appropriately. • The best solution to a problem due to missing functionality to completely model multiple solutions is not chosen efficiently. • Integration between operation and management systems is minimal or non-existent.
Solutions offered by New World Scenarios ▪Interrelated data from facilities, operations, human resources, logistics and the environment dealing with a digital representation of the Operational world is fully integrated by Brabo, an OT-IT connectivity platform. ▪ Events which are having an impact on operational continuity are processed, presented and analyzed for their potential. Remedies are then proposed and a new corrective action plan is executed. ▪ The ability to understand what data needs to be worked upon is vital to modern operations.
Top value drivers for Integrated Operation Solution are:-
- Reduction in Process Cycle Times
- Quicker Response Time
- Reduction in Cost and Waste
- Support for implementing new business Processes To Read full article click https://www.linkedin.com/pulse/mega-trends-driving-chemical-industry-success-priorities-solulever-1f/?trackingId=%2F%2FRj8SuQSiSch4u0x4FcWg%3D%3D
cql3: remove expr::token
Let's remove expr::token and replace all of its functionality with expr::function_call.
expr::token is a struct whose job is to represent a partition key token.
The idea is that when the user types in token(p1, p2) < 1234
,
this will be internally represented as an expression which uses
expr::token to represent the token(p1, p2)
part.
The situation with expr::token is a bit complicated.
On one hand side it's supposed to represent the partition token,
but sometimes it's also assumed that it can represent a generic
call to the token() function, for example token(1, 2, 3)
could
be a function_call, but it could also be expr::token.
The query planning code assumes that each occurence of expr::token
represents the partition token without checking the arguments.
Because of this allowing token(1, 2, 3)
to be represented
as expr::token is dangerous - the query planning
might think that it is token(p1, p2, p3)
and plan the query
based on this, which would be wrong.
Currently expr::token is created only in one specific case.
When the parser detects that the user typed in a restriction
which has a call to token
on the LHS it generates expr::token.
In all other cases it generates an expr::function_call
.
Even when the function_call
represents a valid partition token,
it stays a function_call
. During preparation there is no check
to see if a function_call
to token
could be turned into expr::token
.
This is a bit inconsistent - sometimes token(p1, p2, p3)
is represented
as expr::token
and the query planner handles that, but sometimes it might
be represented as function_call
, which the query planner doesn't handle.
There is also a problem because there's a lot of duplication
between a function_call
and expr::token
. All of the evaluation
and preparation is the same for expr::token
as it's for a function_call
to the token function. Currently it's impossible to evaluate expr::token
and preparation has some flaws, but implementing it would basically
consist of copy-pasting the corresponding code from token function_call
.
One more aspect is multi-table queries. With expr::token
we turn
a call to the token()
function into a struct that is schema-specific.
What happens when a single expression is used to make queries to multiple
tables? The schema is different, so something that is representad
as expr::token
for one schema would be represented as function_call
in the context of a different schema.
Translating expressions to different tables would require careful
manipulation to convert expr::token
to function_call
and vice versa.
This could cause trouble for index queries.
Overall I think it would be best to remove expr::token.
Although having a clear marker for the partition token is sometimes nice for query planning, in my opinion the pros are outweighted by the cons. I'm a big fan of having a single way to represent things, having two separate representations of the same thing without clear boundaries between them causes trouble.
Instead of having expr::token and function_call we can just have the function_call and check if it represents a partition token when needed.
Signed-off-by: Jan Ciolek [email protected]
[MDB Ignore] Manifest Destiny - The Final Tile Flattening (#74169)
Alt Title: The End Of The 12 Month War
Please ensure that you have the knowledge on how to handle merge conflicts, found here: https://hackmd.io/@tgstation/ry4-gbKH5#Assured-Merge-Conflict-Resolution
Supercedes #74023 entirely.
Port of the tooling introduced in BeeStation/BeeStation-Hornet#7970 (we already had everything else), modified to meet /tg/'s requisites and culling anything that was not entirely relevant (that I could see). It's not the end of the world if I missed something tbh. Some aspects were commented out since they may be relevant to downstreams who port this PR or to enable (what I see to be) un-necessary warnings.
This is a culmination of a year's efforts, starting with Red Rover, Four Corners (#65290) and later Opposing Corners (#65455). If you don't understand why this PR exists or why it's necessary, I recommend reading both of those.
Since then, several mappers (both in their own mapping as well as tailored PRs) have worked on "flattening" out these tile turfs, however I've continually wanted a function that would mass automate it (outlined here https://tgstation13.org/phpBB/viewtopic.php?t=31872 - This functionality might still be useful if added to UpdatePaths or another type of script thereof, but I no longer have reason to keep the bounty up).
It's finally here! Yippie! A new python file, courtesy of itsmeow at BeeStation. Very awesome. As previously mentioned, a lot of alterations had to be made for our mapping desires, but the results are quite agreeable. There's a few assertions that this file makes that I had to address:
- We have "colorless" tile decals. These are transparent, so they don't do anything. By default, bee would make these "white tiles", but we have no such thing. I decided to just add a maplint and an UpdatePaths to guard against this silliness (only Delta and Tram) had it.
- For some reason, it labels already-converted decals with the default direction as an error state. I might touch this up in the coming hours, but for now I surpressed the error due to how many false warnings it was spitting out.
There's a few ways this tool can be improved, but I lack the knowledge on how to do so:
- Make it so that we can run the map merger to fix the keys of the map
in the
update_map
function, rather than run the fixer-upper python file. We can live without this to be honest. It's actually slightly good because it forces you to look at all of the MapMerge Warnings, and you can ascertain any potential errors without it silently passing you by and hitting the repository (or at least those that we haven't linted for yet). - Be able to pass in any regex to "flatten" anything. That's way out of scope for what I want to do here though.
I made a readme. https://github.com/tgstation/tgstation/blob/363852cb17fa46dad8fd20e261f8f665f3e008bb/tools/MapTileAggregator/readme.md
oh hey it's pretty neat that this PR came out in mapping march, what a nice qol for mappers as the month enters the home stretch. ckey is san7890
slimmer DMM files, better mapping practices. cool new tool. so nice.
Nothing that really affects players, but a short summary for all those reading this PR:
- All "corner" turf decals are flattened, and there's now a tool that we store that you can re-run to keep stuff flat in case you like mapping one way and want to fix it at the end.
- We (should) now lint against useless uncolored turf decals since that was completely garbo as far as our codebase is concerned.
- UpdatePaths for fixing up uncolored turf decals, yippie!
If you want to review this PR, may I suggest the file filter. You don't need to look at any of the DMM files I already did:
Co-authored-by: Zephyr [email protected]
Created Text For URL [www.iol.co.za/news/news/crime-and-courts/two-handed-life-sentences-after-boyfriend-helps-his-friend-to-rape-his-girlfriend-a987c839-64be-4b20-95f5-e372342e6908]
Allow transitions to interrupt Suspensey commits (#26531)
I originally made it so that a Suspensey commit — i.e. a commit that's waiting for a stylesheet, image, or font to load before proceeding — could not be interrupted by transitions. My reasoning was that Suspensey commits always time out after a short interval, anyway, so if the incoming update isn't urgent, it's better to wait to commit the current frame instead of throwing it away.
I don't think this rationale was correct, for a few reasons. There are some cases where we'll suspend for a longer duration, like stylesheets — it's nearly always a bad idea to show content before its styles have loaded, so we're going to be extend this timeout to be really long.
But even in the case where the timeout is shorter, like fonts, if you get a new update, it's possible (even likely) that update will allow us to avoid showing a fallback, like by navigating to a different page. So we might as well try.
The behavior now matches our behavior for interrupting a suspended
render phase (i.e. use
), which makes sense because they're not that
conceptually different.
DiffTrain build for 888874673f81c08d9c3cfd4a56e2e93fd728894c
lib/sort: make swap functions more generic
Patch series "lib/sort & lib/list_sort: faster and smaller", v2.
Because CONFIG_RETPOLINE has made indirect calls much more expensive, I thought I'd try to reduce the number made by the library sort functions.
The first three patches apply to lib/sort.c.
Patch #1 is a simple optimization. The built-in swap has special cases for aligned 4- and 8-byte objects. But those are almost never used; most calls to sort() work on larger structures, which fall back to the byte-at-a-time loop. This generalizes them to aligned multiples of 4 and 8 bytes. (If nothing else, it saves an awful lot of energy by not thrashing the store buffers as much.)
Patch #2 grabs a juicy piece of low-hanging fruit. I agree that nice simple solid heapsort is preferable to more complex algorithms (sorry, Andrey), but it's possible to implement heapsort with far fewer comparisons (50% asymptotically, 25-40% reduction for realistic sizes) than the way it's been done up to now. And with some care, the code ends up smaller, as well. This is the "big win" patch.
Patch #3 adds the same sort of indirect call bypass that has been added to the net code of late. The great majority of the callers use the builtin swap functions, so replace the indirect call to sort_func with a (highly preditable) series of if() statements. Rather surprisingly, this decreased code size, as the swap functions were inlined and their prologue & epilogue code eliminated.
lib/list_sort.c is a bit trickier, as merge sort is already close to optimal, and we don't want to introduce triumphs of theory over practicality like the Ford-Johnson merge-insertion sort.
Patch #4, without changing the algorithm, chops 32% off the code size and removes the part[MAX_LIST_LENGTH+1] pointer array (and the corresponding upper limit on efficiently sortable input size).
Patch #5 improves the algorithm. The previous code is already optimal for power-of-two (or slightly smaller) size inputs, but when the input size is just over a power of 2, there's a very unbalanced final merge.
There are, in the literature, several algorithms which solve this, but they all depend on the "breadth-first" merge order which was replaced by commit 835cc0c8477f with a more cache-friendly "depth-first" order. Some hard thinking came up with a depth-first algorithm which defers merges as little as possible while avoiding bad merges. This saves 0.2*n compares, averaged over all sizes.
The code size increase is minimal (64 bytes on x86-64, reducing the net savings to 26%), but the comments expanded significantly to document the clever algorithm.
TESTING NOTES: I have some ugly user-space benchmarking code which I used for testing before moving this code into the kernel. Shout if you want a copy.
I'm running this code right now, with CONFIG_TEST_SORT and CONFIG_TEST_LIST_SORT, but I confess I haven't rebooted since the last round of minor edits to quell checkpatch. I figure there will be at least one round of comments and final testing.
This patch (of 5):
Rather than having special-case swap functions for 4- and 8-byte objects, special-case aligned multiples of 4 or 8 bytes. This speeds up most users of sort() by avoiding fallback to the byte copy loop.
Despite what ca96ab859ab4 ("lib/sort: Add 64 bit swap function") claims, very few users of sort() sort pointers (or pointer-sized objects); most sort structures containing at least two words. (E.g. drivers/acpi/fan.c:acpi_fan_get_fps() sorts an array of 40-byte struct acpi_fan_fps.)
The functions also got renamed to reflect the fact that they support multiple words. In the great tradition of bikeshedding, the names were by far the most contentious issue during review of this patch series.
x86-64 code size 872 -> 886 bytes (+14)
With feedback from Andy Shevchenko, Rasmus Villemoes and Geert Uytterhoeven.
Link: http://lkml.kernel.org/r/f24f932df3a7fa1973c1084154f1cea596bcf341.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin [email protected] Acked-by: Andrey Abramov [email protected] Acked-by: Rasmus Villemoes [email protected] Reviewed-by: Andy Shevchenko [email protected] Cc: Rasmus Villemoes [email protected] Cc: Geert Uytterhoeven [email protected] Cc: Daniel Wagner [email protected] Cc: Don Mullis [email protected] Cc: Dave Chinner [email protected] Signed-off-by: Andrew Morton [email protected] Signed-off-by: Linus Torvalds [email protected] Signed-off-by: Yousef Algadri [email protected] Signed-off-by: Panchajanya1999 [email protected] Signed-off-by: Forenche [email protected] Signed-off-by: Little-W [email protected]
Makes Lesser Form into one ability & unit tests it (#73572)
Fixes #73491 Every time I have used this ability lately it's been fucked. It would vanish from my actions at arbitrary moments, and also sometimes transform me into a horrible monkey-man thing instead of a monkey. This is a shame because being able to become a monkey can be pretty fun, even if it makes you very vulnerable to being butchered.
Refactoring it into being one action instead of two actions which add and remove each other fixes the part where the action just disappears. It reliably sticks between transformations now, regardless of whether or not they were voluntary.
I also noticed that when I was turning into a monkey it wasn't dropping
the changeling "fake clothes" outfit pieces I had on as a human, leading
to a really fucked up looking monkey. I fixed this by adding force = TRUE
in the drop to ground proc in the check for if the equipment you
have is still valid after your species changes. I don't think this has
any side effects but I never do and then someone finds some.
For good measure I also made all of the changeling equipment abilities
which don't work if you are a monkey detect if you become a monkey and
retract themselves.
I also noticed that for a long time Last Resort has been trying and failing to give you Lesser Form (well, Human Form rather) as a Headcrab, so I fixed that and now you actually get the ability.
Finally I did a little bit of housekeeping in general on the
changeling actions, mostly balloon alerts. I think these definitely need
more attention than I gave them though. I left a lot of the to_chat
s
in place because many of them give information you want to be a little
sticky, or refer back to in order to double check what you just did.
I also added a unit test which flips back and forth a few times to
ensure the ability still works.
This required adding an "instant" flag to the monkeyize/humanize procs
to skip the timers, and idenitified a couple of weird issues.
First point: Humanising a monkey would remove the monkey mutation and
then call humanise again, which would not skip itself because it still
regarded you as being a monkey. I changed the order of operations here
slightly so that it will early return.
Second point: Calling domutcheck
on human/consistent
would runtime
because we skip the bit which sets up any mutations in their DNA. This
is a part of changeling transformation, so I just made it return
instantly.
You can use this ability again without getting stuck permanently as a monkey, or it just deleting itself from your list of abilities for no reason. Turning into a monkey with fake outfit pieces on won't turn you into an abomination.
🆑 refactor: Changeling's Lesser Form is now one ability instead of two which keep swapping, which should consistently turn you back and forth without deleting itself from your action bar. fix: Hatching from an egg left by a Last Resort headcrab should correctly grant you Lesser Form in addition to your other abilities. fix: Turning into a monkey while using the Changeling space suit won't leave you as a monkey with a weird inflated head. qol: Using lesser form as a monkey with only one stored DNA profile will skip asking which profile you want and will simply transform you immediately into the only option. /🆑
Co-authored-by: Zephyr [email protected]
Polishes some side sources of light and color [MDB IGNORE] (#19860)
- Polishes some side sources of light and color (#73936)
Circuit floors glow! but it looks like crap cause it's dim and the colors are washed out. I'd like to make them look nicer. Let's make them more intense and longer range, and change the colors over to more vivid replacements.
While I'm here, these should really use power and turn on and off based off that. Simple enough to do, just need to hook into a signal (and add a setter for turf area, which cleans up other code too).
Desklamps look bad. They're fullwhite, have a way too large range.Crummy. Let's lower their lightrange from 5 to 3.5, and make the ornate ones warmer, and the more utilitarian ones cooler. The clown one can be yellow because it's funny
I'm renaming a color define here so I'm touching more files then you'd expect
Increases the light range of request consoles, status displays, newscasters, and air alarms (keycard machines too, when they're awaiting input at least) Increases the brightness of air alarms, I think they should be on par with apcs, should be able to tell when they're good/bad. Increases the brightness of vending machines (I want them to light up the tiles around them very lightly, I think it's a vibe)
Fixes a bug with ai status displays where they'd display an emissive even if they didn't have anything on their screen, looking stupid. This was decently easy but required a define. Looked really bad tho
Pretty
The niknack changes are more minor so I'm not gonna grab photos for them. I can if you'd like but I don't think it's necessary. Mostly a vibes in dark spaces sorta thing
🆑 add: I made circuit floors brighter and more vivid. add: Made air alarms, vending machines, newscasters, request consoles, status displays and keycard machines slightly "brighter" (larger light range, tho I did make air alarms a bit brighter too) add: Tweaked desklamps. Lower range, and each type gets its own coloring instead of just fullwhite. fix: AI displays are no longer always emissive, they'll stop doing it if they aren't displaying anything. Hopefully this'll look nicer /🆑
-
Polishes some side sources of light and color
-
yellow
-
Update dance_machine.dm
-
Merge branch 'upstream-merge-73936' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-merge-73936
Co-authored-by: LemonInTheDark [email protected] Co-authored-by: lessthanthree [email protected] Co-authored-by: Zonespace [email protected] Co-authored-by: lessthnthree [email protected] Signed-off-by: Vladimir Veisman [email protected]
mame: update to 0.253.
It’s time for MAME 0.253, but before we start talking about all the exciting updates, there are a couple of things that will affect people compiling or packaging MAME. Firstly, libc++ 6 is no longer supported. You can still compile with clang 6, but you’ll need to use libc++ 7 or later, or GNU libstdc++ 7 or later, for the C++ standard library. Secondly, MAME now requires Lua compiled as C++ to work correctly. This prevents the use of Lua libraries from Linux distribution package repositories, as they are compiled as C. (The technical reason for this change is that MAME requires C++ stack frames to be unwound correctly, including destructor calls, when Lua errors are raised from C++ code. Using Lua compiled as C will cause resource leaks.)
We’ve updated to Lua 5.4, which comes with an all-new garbage collector, giving better performance. This should have minimal impact on people writing scripts and plugins. Two of the biggest visible changes are that unpack has been replaced with table.unpack and the deprecated bitlib has been removed. While we’re talking about Lua, we’d like to draw your attention to the new MAME Goodies repository, where we’ll be adding additional content for use with MAME. So far, there are two plugins. One of them is sure to be useful for fans of Konami’s arcade rhythm games. They also serve as example code for people looking to learn about some of the things you can do with MAME’s Lua scripting capabilities.
The long-rumoured microcode-based Motorola 68000 CPU core is finally here! It’s already delivering results, with a number of previously out-of-reach Atari ST demos now running. We’ve done some intensive testing, but there are probably still regressions lurking. Let us know if one of your favourite 68k-based games flakes out on you.
One of the more interesting systems to be dumped and emulated this month is Akazukin, a 1983 arcade game where you shoot wolves preying on a defenceless girl. There’s also a game bearing the rather generic title Heroes, an early version of Data East’s Mutant Fighter. We’ve added a few more electronic toys to play with, including Race Time from Bandai, Punch Your Lights Out from Tiger, and a trio of backgammon and chess games from Tryom. If you’re in a more serious mood, the Brother LW-30 and LW-840ic dedicated word processors are now supported. The Sony NWS-3410 UNIX workstation is now working (albeit without its frame buffer, so you’ll need to use a serial terminal), as is the ironically named Vector 4 S-100 bus computer (Vector Graphic never sold a system with vector graphics capabilities).
Building on the work in last month’s release, Hyper Neo Geo 64 games are looking better than ever. Numerous texturing and tilemap issues have been resolved. Taito F3 video emulation has had several effects fixed, with Land Maker in particular looking noticeably better. Switching from video to sound, the KC 85 computer family now has working audio output, some issues with looping and retriggered samples on the Apple IIgs have been fixed, and fixes for PC Engine CD audio playback issues have made some games go from crashing to playable. More subtly, correcting audio chip clock frequencies has fixed the pitch of sounds for several systems, including Snow Bros. 2 and Noboranka.
windows: ignore empty PATH
elements
When looking up an executable via the _which
function, Git GUI
imitates the execlp()
strategy where the environment variable PATH
is interpreted as a list of paths in which to search.
For historical reasons, stemming from the olden times when it was uncommon to download a lot of files from the internet into the current directory, empty elements in this list are treated as if the current directory had been specified.
Nowadays, of course, this treatment is highly dangerous as the current
directory often contains files that have just been downloaded and not
yet been inspected by the user. Unix/Linux users are essentially
expected to be very, very careful to simply not add empty PATH
elements, i.e. not to make use of that feature.
On Windows, however, it is quite common for PATH
to contain empty
elements by mistake, e.g. as an unintended left-over entry when an
application was installed from the Windows Store and then uninstalled
manually.
While it would probably make most sense to safe-guard not only Windows
users, it seems to be common practice to ignore these empty PATH
elements only on Windows, but not on other platforms.
Sadly, this practice is followed inconsistently between different software projects, where projects with few, if any, Windows-based contributors tend to be less consistent or even "blissful" about it. Here is a non-exhaustive list:
Cygwin:
It specifically "eats" empty paths when converting path lists to
POSIX: https://github.com/cygwin/cygwin/commit/753702223c7d
I.e. it follows the common practice.
PowerShell:
It specifically ignores empty paths when searching the `PATH`.
The reason for this is apparently so self-evident that it is not
even mentioned here:
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables#path-information
I.e. it follows the common practice.
CMD:
Oh my, CMD. Let's just forget about it, nobody in their right
(security) mind takes CMD as inspiration. It is so unsafe by
default that we even planned on dropping `Git CMD` from Git for
Windows altogether, and only walked back on that plan when we
found a super ugly hack, just to keep Git's users secure by
default:
https://github.com/git-for-windows/MINGW-packages/commit/82172388bb51
So CMD chooses to hide behind the battle cry "Works as
Designed!" that all too often leaves users vulnerable. CMD is
probably the most prominent project whose lead you want to avoid
following in matters of security.
Win32 API (CreateProcess()
)
Just like CMD, `CreateProcess()` adheres to the original design
of the path lookup in the name of backward compatibility (see
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw
for details):
If the file name does not contain a directory path, the
system searches for the executable file in the following
sequence:
1. The directory from which the application loaded.
2. The current directory for the parent process.
[...]
I.e. the Win32 API itself chooses backwards compatibility over
users' safety.
Git LFS:
There have been not one, not two, but three security advisories
about Git LFS executing executables from the current directory by
mistake. As part of one of them, a change was introduced to stop
treating empty `PATH` elements as equivalent to `.`:
https://github.com/git-lfs/git-lfs/commit/7cd7bb0a1f0d
I.e. it follows the common practice.
Go:
Go does not follow the common practice, and you can think about
that what you want:
https://github.com/golang/go/blob/go1.19.3/src/os/exec/lp_windows.go#L114-L135
https://github.com/golang/go/blob/go1.19.3/src/path/filepath/path_windows.go#L108-L137
Git Credential Manager:
It tries to imitate Git LFS, but unfortunately misses the empty
`PATH` element handling. As of time of writing, this is in the
process of being fixed:
https://github.com/GitCredentialManager/git-credential-manager/pull/968
So now that we have established that it is a common practice to ignore
empty PATH
elements on Windows, let's assess this commit's change
using Schneier's Five-Step Process
(https://www.schneier.com/crypto-gram/archives/2002/0415.html#1):
Step 1: What problem does it solve?
It prevents an entire class of Remote Code Execution exploits via
Git GUI's `Clone` functionality.
Step 2: How well does it solve that problem?
Very well. It prevents the attack vector of luring an unsuspecting
victim into cloning an executable into the worktree root directory
that Git GUI immediately executes.
Step 3: What other security problems does it cause?
Maybe non-security problems: If a project (ab-)uses the unsafe
`PATH` lookup. That would not only be unsafe, though, but
fragile in the first place because it would break when running
in a subdirectory. Therefore I would consider this a scenario
not worth keeping working.
Step 4: What are the costs of this measure?
Almost nil, except for the time writing up this commit message
;-)
Step 5: Given the answers to steps two through four, is the security measure worth the costs?
Yes. Keeping Git's users Secure By Default is worth it. It's a
tiny price to pay compared to the damages even a single
successful exploit can cost.
So let's follow that common practice in Git GUI, too.
Signed-off-by: Johannes Schindelin [email protected]
it's 2PM, do you really think I'm going to detail every single thing I did for the past 6 hours straight? No way!
- Fix authentication in Django
- Add get user details by access token to use after login to get user details into react
- Add necessary SimpleJWT config in settings
- Improve navbar styling
- Change spinner color
- Add toast alerts
- Remove unnecessary plugins in tailwindCSS
- Removed '.filter' from list in FlightForm and Add autocomplete in FlightForm instead
- Add Authorization header when user logged in, in axios
- Add logout functionality
- Add Redux state with easy-peasy
- Implemented register, login and logout, and integrated with each other (after registration, automatically login)
- Maybe there are more things I forgot to mention, but I'm too tired to remember them all now, if you see something that I forgot to mention, please let me know in the comments, thank you and good night!
chore: update style throughout code (#570)
Even though it's a perfectly compatible change, I thought the new version would be a good opportunity to update our linting rules which is something I've wanted to do for a while.
This commit bumps our prettier
version to 2.x, which includes some beneficial defaults;
primarily, enforcing trailing commas. I realize trailing commas may not be viewed as
"beneficial" by all :) but I think they are valuable and the AirBnb JS style guide (which
we try to use as our source of truth, not that we're following it perfectly) requires
them. Happy to debate the change but thought I'd propose it because the lack of trailing
commas has bugged me for a while haha.
Signed-off-by: Dustin Popp [email protected]
End of Mapping March (Thanks to everyone who contributed, you're amazing!!!) (#74417)
Removes the special mapping template. We got a really good turnout this year! Will start counting ckeys and all that.
If it was opened during march, you'll get your token, don't worry
dehacked: fix quit messages.
The messages hadn't been checked for length. Fortunately caught relatively early because the only string that shows up in vanilla (and thus would cause a crash) is also one of the longest ones.
I've also amended two things in the text itself:
-
big burly violent guy who's all about freedom and blaming scientists for things is...... not something that's aged well. And when a corporation is involved you know it's the investors pushing for the bad thing and not the actual researchers on the ground.
-
that other quit message literally reads like you're goading someone into suicide IRL, in the current environment where everybody's depressed and a lot of us have lost important people to plague or war or medical neglect or workplace accidents or violent bigotry or any combination thereof. I've taken the liberty to rephrase it so the emphasis is on what I think was intended.
Threw in a replacement for "exit to DOS" as well.