Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace BSQL with rust-g, paramaterize all queries #51255

Merged
merged 57 commits into from
Jun 8, 2020

Conversation

SpaceManiac
Copy link
Contributor

@SpaceManiac SpaceManiac commented May 24, 2020

🆑
refactor: BSQL has been replaced with rust-g, improving SQL reliability and safety.
/:cl:

Queries were parameterized as much as possible. Careful code read by someone else also versed in SQL would be a good idea. Things seemed fine spot-testing roundstart, library, bans, and polls, but more stress-testing may be useful.

Also updates rust-g to v0.4.5:

  • Improved Linux .so detection
  • Perlin noise functions

Also updates Travis script to bionic.

@SpaceManiac
Copy link
Contributor Author

I assume this will error if hardcoded VALUES are attempted?

Not sure what you mean.

Also this is failing to test merge, can you pull master please?

Done, but the conflict is probably with another testmerge

@tgstation-server tgstation-server removed the Test Merge Candidate You're our unpaid test team label Jun 1, 2020
@SpaceManiac SpaceManiac added the Test Merge Candidate You're our unpaid test team label Jun 1, 2020
@Cyberboss
Copy link
Member

To rephrase will the lib reject a query in the form

"INSERT INTO SS13_round (id) VALUES ([round_id_var])"

String interpolated, not parameterized.

@SpaceManiac
Copy link
Contributor Author

will the lib reject a query

No, it can't tell the difference by that point

@Cyberboss
Copy link
Member

Cyberboss commented Jun 1, 2020 via email

@SpaceManiac
Copy link
Contributor Author

I can only assume it's because there's no sanitizeSQL equivalent.

That's correct.

Comment on lines -16 to -19
// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts.
/proc/sanitizeSQL(t)
return SSdbcore.Quote("[t]")

Copy link
Member

@MrStonedOne MrStonedOne Jun 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/proc/quoteSQL(t)
	var/datum/DBQuery/query_escape_string = SSdbcore.NewQuery("SELECT QUOTE(:t)", list("t" = t))
	query_escape_string.Execute()
	query_escape_string.NextRow()
	. = query_escape_string.item[1]
	qdel(query_escape_string)

😛

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you need help

@optimumtact optimumtact merged commit 829e958 into tgstation:master Jun 8, 2020
@Cyberboss
Copy link
Member

image

@spookydonut
Copy link
Contributor

MSO: I don't like this
oranges: hahaha merge button goes brrrr

@optimumtact
Copy link
Member

optimumtact commented Jun 8, 2020

MSO has his reasons for preferring one form or the other, but in reality it doesn't make much of a difference to the size of the code

People can write in either form with a modicum of effort, so I don't think it's a particularly onerous requirement.

What's more important is having a library that doesn't segfault our server every time the db server decides to take a 30 second nap and it makes sense to continue to use the rust-g library as we already package it, that limits us to rust.

We're also limited by the amount of effort people are willing to put in, which means we don't have a quote function in BRsql or the underlying SQL library and nor do we have an alternative DB connector.

Therefore weighing up the likelihood of someone fixing BSQL, or implementing a new DB connector, I decided it's better to make one person slightly less happy in order to crash our servers way less and overall improve the playerbase experience.

MSO is of course welcome to add quote sanitization in the method he suggested, or to even rewrite everything in yet another connector, but that is effort that doesn't exist yet, and is therefore not particularly useful to my analysis of the situation.

Ultimately I think the benefit of the static packaging of rust-g will make it easier to run tgstation and that the decrease in crashes from segfaults outweight any concerns about code cleanliness in this situation.

Maybe that's a bad call, but I firmly believe it's mine to make, anyway, hope that gives you some insight into the decision.

@optimumtact
Copy link
Member

optimumtact commented Jun 8, 2020

That said, I do expect something to break from this, but maybe I will be pleasantly surprised.

@optimumtact
Copy link
Member

first breakage, compile error due to server side modifications

AzzyIsNotHere pushed a commit to NTCanadaTeam/NTCanada that referenced this pull request Jun 8, 2020
… (#11)

* [READY]Fixes the horticultural waders sprite. No more hidden hands! (tgstation#51147)

* waders sprite fixed

* fixies for real

* unfucks armor sprite

* Automatic changelog generation for PR tgstation#51147 [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile, [ci skip]

* Adds two new modular apps: Lifeline for tracking suit sensors, and the Syndicate-only Fission360 for tracking nuke-related items (tgstation#51152)

About The Pull Request

    Adds two new modular computer programs. Both use the same underlying parts;
    -- Lifeline is an improved suit sensor tracker, showing where the target is on a grid if they're within 24 tiles. The scan button has a two-second delay (since the program has to check every humanoid in glob.human_list for trackability and we don't want that spammed). The app works pretty much how you would expect.
    -- Fission360 uses the same processes as above but for the nuke disk and all nukes in the area (self destruct, beer, syndicate). Available only via emagging a tablet for the moment.
    --
    Rudimentary multiZ support exists, in the form of replacing the crosshairs icon with an up or down arrow (once it's visible within the circle) to indicate if the target is above or below, if both the target and the computer are on a station Z level of some sort. Also, the grid lines are exactly two-tiles apart.

    Added support for programs to list special assets to load, so that we don't have to have every program loading all modular program assets. The radar apps use this to load the background grid and the too-far-away-to-display arrow.

Why It's Good For The Game

More modular apps are good. I'm hoping to see a syndicate-version of the modular tablet in the hands of nuke ops at some point, which is really where Fission360 will make sense. Otherwise, it's an extra tool for traitors with the nuke theft objective, I suppose.
Changelog

cl
add: Two new apps for modular computers are available: Lifeline for Medical, and Fission360 for anyone with access to the Syndicate repository. Lifeline is an improved suit sensors tracker, and Fission360 is the same but for nuclear-related things.
/cl

* Automatic changelog generation for PR tgstation#51152 [ci skip]

* Removes Shotgun Ability (tgstation#51295)

* removes shotgunning

* removes shotgunning

* Automatic changelog generation for PR tgstation#51295 [ci skip]

* Don't throttle TGS commands (tgstation#51292)

* You can altClick to take out DNA Disks from DNA consoles (tgstation#51247)

* You can altClick to take out DNA Disks from DNA consoles

You can now altClick to take out a disk from a DNA Console, instead of having to use the GUI and clicking eject.

* Create eject proc, address code review concerns

* DMDOC additions

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>

* Automatic changelog generation for PR tgstation#51247 [ci skip]

* Makes some tweaks to Icebox's EVA and mining areas. (tgstation#51275)

* Initial changes.

* Oh right, consistancy.

* Automatic changelog generation for PR tgstation#51275 [ci skip]

* Fixing crew monitor suit sensors (tgstation#51268)

* first steps

* Update _under.dm

* time for bug testing

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* more fixes and implementation

* Update crew.dm

* Update clothing.dm

* more bug fixing

* Update crew.dm

* debugging

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* added stuff to nanites

* goddamn nanites

* nanite cleanup

* Update crew.dm

* Update crew.dm

* Automatic changelog generation for PR tgstation#51268 [ci skip]

* Changes the Ancient/Clockwork Spear Sprite. (tgstation#51258)

* Resprites the worst thing ever

* Try again?

* Automatic changelog generation for PR tgstation#51258 [ci skip]

* Adds two new biogenerator chemicals to botany. (tgstation#51304)

* Initial Commit, adds both sidegrade chems.

* Actually lets keep both plants distinct enough, ya know

* Automatic changelog generation for PR tgstation#51304 [ci skip]

* Tiny skill neatness tweaks (tgstation#51309)

* minor neatness tweaks

* topic

* Automatic changelog generation for PR tgstation#51309 [ci skip]

* Fixes scaling names (tgstation#51311)

* Automatic changelog generation for PR tgstation#51311 [ci skip]

* Fixes restricted roles in dynamic with configs.

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* Improves player retention by leveraging existing assets to incentivize higher average playetime (tgstation#51297)

* im a player ok that means i play

* FINE

* you win this time, shaps

* makes floyd happy

* Update code/__DEFINES/misc.dm

* i was just playing cyberboss dont be mad at me

* changes one character in a comment

* Automatic changelog compile, [ci skip]

* Automatic changelog compile [ci skip]

* remove unnecessary var/id from /datum/material (tgstation#51322)

* remove var/id from /datum/material

* nice commit message dot meme

* Automatic changelog generation for PR tgstation#51322 [ci skip]

* Fixes a small typo (intracies -> intricacies) in _skills.dm (tgstation#51324)

* critical atmos optimization please ignore

* undocumented change lmao

* Automatic changelog generation for PR tgstation#51324 [ci skip]

* Should fix a rare edgecase with explosions and shuttles (tgstation#51017)

* Automatic changelog compile [ci skip]

* Tools for your belt. (tgstation#51328)

* Automatic changelog generation for PR tgstation#51328 [ci skip]

* Glow no longer multiplies it's light strength with power (tgstation#51320)

* Automatic changelog generation for PR tgstation#51320 [ci skip]

* kill featurecoders (tgstation#51319)

* Automatic changelog generation for PR tgstation#51319 [ci skip]

* Alternate directions for arcade machines (tgstation#51313)

* Add files via upload

* Adds directional sprites to arcade machines

* Automatic changelog generation for PR tgstation#51313 [ci skip]

* A few small Cargo bounty tweaks (tgstation#51329)

* Removes the Phazon from the cargo bounty pool.

* Adds a bounty to Cargo requiring a tank of hydrogen

* Automatic changelog generation for PR tgstation#51329 [ci skip]

* Automatic changelog compile, [ci skip]

* OG (tgstation#51156)

Co-authored-by: Tad Hardesty <tad@platymuus.com>

* A fix for botany sprites showing ERRORs. (tgstation#51340)

* I did, I fixed botany forever

* Whoops, still need a min

* Update code/modules/hydroponics/hydroponics.dm

Fair point

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>

Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>

* Automatic changelog generation for PR tgstation#51340 [ci skip]

* Adds new body type pref (tgstation#51058)

* tgdb

* tgdb

* Auto stash before cherry pick of "balance changes, enables burn surgery, various body improvements"

* moves unnecessary list out of client

* describes a var

* corrects

* Automatic changelog generation for PR tgstation#51058 [ci skip]

* stray pixel cleanup (tgstation#51338)

* Automatic changelog generation for PR tgstation#51338 [ci skip]

* Automatic changelog compile [ci skip]

* Delays loading of random books (tgstation#51144)

* delays loading of random books

* fix map var

* review

* return

Co-authored-by: Jordie0608 <=>

* Glowshrooms v1.0: Decay, spread "rework" and able to be analyzed (tgstation#51023)

* Added decay for glowshrooms

Glowshrooms now decay after a certain time. Also, reworked spreading algorithm.

* Planted glowshrooms can be analyzed now

* fucking newlines

* YOOOOOOO IT'S REVIEW TIME

* review time v2

* some suggested changes

* new shit

* Automatic changelog generation for PR tgstation#51023 [ci skip]

* Fix Nanite Programmer and Nanite Program Hub deconstruction (tgstation#51245)

* Fix Nanite Programmer and Nanite Program Hub deconstruction

Bug fix for the deconstruction process of the Nanite Programmer and Nanite Program Hub

* Use _act overrides, implement new icons

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>

* Automatic changelog generation for PR tgstation#51245 [ci skip]

* Automatic changelog compile, [ci skip]

* Increase Carp PRice by 1tc (tgstation#51330)

* removes a lot of free illegal tech items (tgstation#51357)

* Automatic changelog generation for PR tgstation#51357 [ci skip]

* Fix unit test logging (tgstation#51354)

* I did myself dirty. (tgstation#51342)

* Boxstation Piping Redone in Layers 1/3 (tgstation#51296)

* Boxstation piping redone

Replaces all of the messy piping on box with layer1/3 pipes, reserving layer 2 for misc work and power lines.

* Changed to fit map alterations

Map changes were integrated into this map.

* Revert "Changed to fit map alterations"

This reverts commit 4114343.

* Added moved AI area/grav gen

Changed map to be most current. Also removed a double cable on one of the upload doors.

* Fixed a small mistake

a slight cable error near the grav gen has been fixed

Co-authored-by: Bennen Sorensen <bennensorensen@gmail.com>

* Automatic changelog generation for PR tgstation#51296 [ci skip]

* Update clothing.dm (tgstation#51337)

* Automatic changelog generation for PR tgstation#51337 [ci skip]

* Automatic changelog compile [ci skip]

* Removes ability to do multiple simultaneous surgeries without Rod of Asclepius (tgstation#51369)

* Automatic changelog generation for PR tgstation#51369 [ci skip]

* removes king goat (tgstation#51366)

* Revert "Remodels king goat ruin (tgstation#50813)"

This reverts commit 26ffe3d.

* numba 1

* bye

* bye 2

* bye 3

* fuck bitches get money

* hey this was actually a good change

* goat sounds

* fuck

* h

* waaaaaaaaagh

* Automatic changelog generation for PR tgstation#51366 [ci skip]

* Better Player Ignore (tgstation#51353)

* Revamp the player ignore system

* Move a variable definition out of a loop

* Replace a |= with +=

* Improve some code

* Fix some code

Co-authored-by: Local <none>

* Automatic changelog generation for PR tgstation#51353 [ci skip]

* Fix achievements subsystem not initializing without the DB (tgstation#51355)

* pink belt fix attempt #2 (tgstation#51327)

h

* Automatic changelog generation for PR tgstation#51327 [ci skip]

* Automatic changelog compile [ci skip]

* Client vars (tgstation#51325)

* fixes grammar (tgstation#51387)

* Firesuits and Radsuits fit the big tanks now (tgstation#51395)

Changed the allowed suit storage items for firesuits and radsuits to allow any internals tank.

* Automatic changelog generation for PR tgstation#51395 [ci skip]

* Automatic changelog compile, [ci skip]

* Fixes glow/antiglow (tgstation#51378)

* Fixes glow

* Removes unneeded variable

* Picks random colors

* Applies the lower strength

* Automatic changelog generation for PR tgstation#51378 [ci skip]

* Chunky waddle (tgstation#51383)

* Automatic changelog generation for PR tgstation#51383 [ci skip]

* Copy: Minor changes to sec Hud icons tgstation#50685 (tgstation#51391)

* Incarcerated, warden, psych

* The second half

* Readds doorjack

* Accidentally added an extra doorjack

* Removes stray pixels

Co-authored-by: J? the J man <Zeldin.nick@gmai.com>

* Automatic changelog generation for PR tgstation#51391 [ci skip]

* Automatic changelog compile, [ci skip]

* Adds a knockedout trait, begins refactoring mobility 2.0 (tgstation#51348)

* ko

* change request

* Automatic changelog compile [ci skip]

* Fixes Icebox ladders and shuffles around icebox mining. (tgstation#51351)

* Fixes Icebox ladders and shuffles around icebox mining

* Re-applies decals.

* Haha whoops so that's how multiz ladders work,

* Automatic changelog generation for PR tgstation#51351 [ci skip]

* Temporary turf visuals fix. (tgstation#51399)

* [READY] Codename: Blue Eyes White Jumpsuit, the TG TCG, Part 1, Reborn (tgstation#51252)

* here goes nothing

no really this is basically nothing

* dme is less dumb

* aaaaa string files

* Card backend (#3)

* Adds card backend and hotloading

This is a combination of 2 commits.

OH SHIT THE SM IS ON FIRE

WE DONE LADS

* Woop

* Best we'll get

* fixed file system, courtesy of potato

* updated tools (thanks potato), now up to 40 cards

* Adds rarity (#4)

* Adds rarity

* just to be sure

* Adds it to cards

* Didn't read templates WHAT A NERD AMAROIGHT

* Commets

* Woop you'd think I'd know my own system

* There we go

* Fuck you EOF (#5)

* Makes rarity not suck (#6)

* Fuck you EOF

* Makes rarity not suck

* Auto stash before merge of "blueeyedwhitejumpsuit" and "origin/blueeyedwhitejumpsuit"

* Makes rarity work as expected, thanks dogman (#7)

* smolcards

* Adds datum cards (#8)

* Datum cards

* Some docs and a little bit of cleanup

* fuck

* problems be had

* Fuck (#9)

* fucko bungo RELASE ME FROM THIS HELL GIT

* datum FUCKING AHHHHHHHHHHH

* packs and games

* boomer mood (#10)

* Card debugging (#11)

* Adds debug vars

* that's a bit better

* shit

* unfucks rarity

* scales sorted

* That should do it

* Parity

* fun fact

* series 1 json

* and so it is done

* Don't need this, I'm dumb.

MacRo-Op???@?#?@??!#?!@

* BRAINDAMAGE

* resin redux, smaller cards

* shut up shut up shut up IT'S ASSUMED TYPE OK? *it's not all that bad*

* double rarity TABLELS, fixed the silly linter

* flippers and rarities

* guaranteed rarity, rarity tables

* fuck it let's ask

* resinfront

* 2560 core set

* fixes flippers

* template icon, extra variable juice

* ADDS SPEED (#12)

* FUCK FUCK FUCK SHIT I BROKE IT AGAIN

* Kills my dreams in the NAME OF SPEED

* and some cleanup

* Minor changes, some qol (#13)

* couple small changes, moved the datum procs around to make things cleaner, made some comments autodocced

* Let's be more clear,

* and a woooop

* Removing ids, carpel tunnel edittion (#14)

* Subsystem

* Carpel tunnel completed

* woop

* curator is no longer equipment

* I'm not dumb you're dumb (#15)

* minor rarity tweak

ladies and gents, it's finished

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>

* Automatic changelog generation for PR tgstation#51252 [ci skip]

* Removes mutation/chromosomes storage limit from DNA consoles (tgstation#51326)

* Removes mutation/chromosomes storage limit from DNA consoles

* Update tgui.bundle.js

* Automatic changelog generation for PR tgstation#51326 [ci skip]

* Automatic changelog compile, [ci skip]

* Automatic changelog compile [ci skip]

* replaces the mulebot 16 second hardstun with an 8 second knockdown (tgstation#51277)

* F

* Update mulebot.dm

* Automatic changelog generation for PR tgstation#51277 [ci skip]

* light floors emit colored lights (tgstation#51097)

* 1

* 2

* debines

* knojbhgfxychgvjbkn

* better emp (test later)

* alt

* | || || |_

* scewact

* Automatic changelog generation for PR tgstation#51097 [ci skip]

* Removes some dead code (tgstation#51426)

* Automatic changelog generation for PR tgstation#51426 [ci skip]

* Fixes boxstation grav gen power (tgstation#51425)

* Fixes boxstation grav gen power

* And AI sat too

* Automatic changelog generation for PR tgstation#51425 [ci skip]

* Remove DEBUG_ADMIN_HREF from default config (tgstation#51415)

* atmos jumpsuits now have the same protections as engi jumpsuit (tgstation#51243)

* fix (maybe)

* atmos jumpsuits now have the same protections as engi jumpsuit

* gosh i hate plasmem

* hhhnnn

* fuck

* Automatic changelog generation for PR tgstation#51243 [ci skip]

* Update precommit hooks to work in GitHub Desktop (tgstation#51404)

Turns out GitHub Desktop actually does bundle a sh.exe, just not a bash.

Also tries to look for the py launcher to help people who didn't check 
the "Add Python to PATH" option.

* Fixes neckgrabs being only escapable if RNGesus comes down and saves you from your fate (tgstation#51427)

* Fixes grabs being impossible to escape, at the expense of making it easier to escape a grab. Damage inflicted by resisting increased to compensate.

* Upped the time between resists a bit

* Automatic changelog generation for PR tgstation#51427 [ci skip]

* Fixes Get-Current-Logs (tgstation#51376)

* Adds coupons to cargo, turns small crates into goodies (tgstation#51216)

* Adds coupons

* fixes invalid var

* fixes old var name

* test

* does this please you travis?

* is that a prize, or....

* adjusts odds

* fikou owes me $10

* neatens code per review

* corrects bouncy

* corrects some errors

* redisables price gouging on goodies

* Automatic changelog generation for PR tgstation#51216 [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog generation for PR tgstation#51333 [ci skip]

* Fixes Pest/Weed Killer so that they don't act like hypertoxins, adds organic weedkiller to compensate. (tgstation#51293)

* Initial Commit.

* Fineeeeeee, added sanity check.

* Alright, nerfed according to corn on the cobby

* Automatic changelog generation for PR tgstation#51293 [ci skip]

* DMAPI 5.2.2 (tgstation#51100)

* Update DMAPI to v5.1.0

* Add more event handlers

* Patch

* DMAPI 5.2.0

* DMAPI 5.2.1

* Add missing trailing new line

* Fix the version we print after updates

* 5.2.2

* Automatic changelog compile, [ci skip]

* Supresses icon2html runtime spam. (tgstation#51438)

* replaces plasma in bluespace beaker with plastic (tgstation#51437)

* replaces diamonds in bluespace beaker with plastic

* ok cobert c chemicals

* Automatic changelog generation for PR tgstation#51437 [ci skip]

* Automatic changelog compile, [ci skip]

* Automatic changelog compile [ci skip]

* illustrious (tgstation#51418)

* Automatic changelog generation for PR tgstation#51418 [ci skip]

* I was bored (tgstation#51407)

* Automatic changelog generation for PR tgstation#51407 [ci skip]

* Fixes multiz lag. (tgstation#51454)

* Automatic changelog generation for PR tgstation#51454 [ci skip]

* Documents browserOutput.dm (tgstation#51439)

* Fixes sensors runtime. (tgstation#51445)

* Adds some card unit tests, cleans up some comments (tgstation#51434)

* Adds unit tests, some more checks, and improves some comments

* sweep sweep sweep?

* Braindamage

* Automatic changelog generation for PR tgstation#51434 [ci skip]

* Automatic changelog compile, [ci skip]

* Fixes turf atmos getting deleted. (tgstation#51453)

* Fixes turf atmos getting deleted.

* Moves the gas transfer procs to the gas mixture.

* Fixes emp act to behave like before

* Fixes tanks exploding

* Minor circle hand fixes (tgstation#51276)

* love being "the circle game" person now

* most useless flag ever

* Automatic changelog generation for PR tgstation#51276 [ci skip]

* Changeling on changeling absorb fix (tgstation#51444)

* adds changeling vars

needed due to changeling that absorbs a changeling that absorbs a changeling getting more chems

* Update changeling.dm

changes reset_properties() to reflect things that sohuldn't reset to baseline - this is not pretty

* fix spell error

* spelling error

* add some comment on why change was done

This really speaks for itself in my opinion

* Automatic changelog generation for PR tgstation#51444 [ci skip]

* Automatic changelog compile [ci skip]

* Fixes canister pain (tgstation#51074)

* fixes dumb canister shit

* Thanks anturk

* That good?

* moves the base icon state to the object def

* Automatic changelog generation for PR tgstation#51074 [ci skip]

* Automatic changelog compile [ci skip]

* Automatic changelog compile, [ci skip]

* improves dynamic ruleset scaling code (tgstation#51385)

* awful

dynamic code sucks ass

* distributive property

removes antags_rolled entirely. good riddance

* Automatic changelog generation for PR tgstation#51385 [ci skip]

* Some cleanup (tgstation#51315)

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* Automatic changelog generation for PR tgstation#51315 [ci skip]

* Dynamic hotfix (tgstation#51502)

* Dynamic hotfix

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* this was a dumb error

Signed-off-by: TheChosenEvilOne <tceo-email@protonmail.com>

* Automatic changelog generation for PR tgstation#51502 [ci skip]

* Automatic changelog compile, [ci skip]

* Automatic changelog compile [ci skip]

* Adds arguments to the rest of make_plating procs. (tgstation#51460)

* Replace BSQL with rust-g, paramaterize all queries (tgstation#51255)

cl
refactor: BSQL has been replaced with rust-g, improving SQL reliability and safety.
/cl

Queries were parameterized as much as possible. Careful code read by someone else also versed in SQL would be a good idea. Things seemed fine spot-testing roundstart, library, bans, and polls, but more stress-testing may be useful.

Also updates rust-g to v0.4.5:

    Improved Linux .so detection
    Perlin noise functions

Also updates Travis script to bionic.

* Automatic changelog generation for PR tgstation#51255 [ci skip]

* Automatic changelog compile, [ci skip]

* update_static_data now passes user to push_data() (tgstation#51485)

update_static_data now passes user to push_data().

I'm pretty sure no UIs currently use user in ui_static_data for... Anything. So that's why no one noticed this before. Well, better to pass it than not.

Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: KathyRyals <65850818+KathyRyals@users.noreply.github.com>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MacBlaze1 <33578623+MacBlaze1@users.noreply.github.com>
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
Co-authored-by: TheChosenEvilOne <tceo-email@protonmail.com>
Co-authored-by: MrDoomBringer <mrdoomboyo@gmail.com>
Co-authored-by: William Wallace <me@wiox.me>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: AsphaltEvidence <64790412+AsphaltEvidence@users.noreply.github.com>
Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Jordie <4343468+Jordie0608@users.noreply.github.com>
Co-authored-by: Shadark <fauglir@gmail.com>
Co-authored-by: GhostEcho <34822121+GhostEcho@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Helianthus00 <64755361+Helianthus00@users.noreply.github.com>
Co-authored-by: Bennen Sorensen <bennensorensen@gmail.com>
Co-authored-by: PrimordialOoze <65879488+PrimordialOoze@users.noreply.github.com>
Co-authored-by: Fhaxaris <Chrisamcculler@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: BeeSting12 <zvmallol@gmail.com>
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: J? the J man <Zeldin.nick@gmai.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kelenius <kelenius@ya.ru>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Kaffe-work <leoo@student.chalmers.se>
Co-authored-by: tmtmtl30 <53132901+tmtmtl30@users.noreply.github.com>
Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>
Co-authored-by: Trigg <36010999+TriggeredBoi@users.noreply.github.com>
@SpaceManiac SpaceManiac deleted the patch/rustg-sql branch July 20, 2020 03:14
LemonInTheDark added a commit to LemonInTheDark/tgstation that referenced this pull request Dec 31, 2020
* sets EOL to LF

* Normalize all the line endings

* Sets vscode to default to unix / LF line endings (tgstation#52273)

* Adds ignored commit file for git blame (tgstation#52344)

* Adds ignored commit file for blame

* contributing.dm

* Changes ignored blame commit to an accurate one

* [READY] The Portable Chemical Mixer (tgstation#51964)

* New device: Portable Chemical Mixer

* Added entries to the tech web and the medical techfab

* removed unused icons for chemical cartridges

* small bugfix in build_path of portablechemicalmixer

* changed description and added info message

* Added newline

* Added a functioning newline

* Added a vortex anomaly core requirement

* Replaced old sorting method with sortBy

* Updated tgui.bundle to work with the latest code changes

* Added documentation to all variables and procs

* Small fix in wording

* Removed all non-class level documentation

* Updated tgui.bundle for the newest offical code version

* Updated tgui.bundle to work with the newest code version

* Updated the tgui.bundle to work with the newest version

* Arconomy Productions presents: The Bounty Board (tgstation#51449)

* Startwork

* stopwork again

* AGAIN.

* Good place to call it for now

* Startwork but I actually put some work in

* The left list doesn't work, stop for now.

* God remind me to squash these commits later.

* Well, I think I can safely say I have actual work done now

* The post-Brisk iced tea patch.

* God damnit nothing works I hate this worl

* Good place to stop, stuck in a chronic error state

* I take it back now I need to sleep jesus god

* I am grown POWERFUL in my dispair

* FINALLY READY TO PR.

* Request order swap

* Update and tgui recompile

* Adds a kiosknet, so adding a new bounty alerts all the bountyboards

* Renames file, attempts to port to modular app too because fuck my life

* Fuckin feature creep I tells ya

* Removes an unused proc

* Rebuildin

* Hopefully updates tgui and fixes an easy runtime

* Finishes updating/conflicts

* Mapmerges my shit.

* Rebuilds tguiiiiiiiiiiii

* Updates tgui

* Updated once more

* merge conflict fixaroni

* God I wish that I had a game I was dedicated enough to finish in a single setting

* Rebuild of PR: You will (Not) compile

* Cobby's changes and Anturk's Suggestions.

* Should probably prevent a runtime.

* Rebuilds TGUI.

* Lets not delete my own files please god

* Style's changes

* ALL the warriors

* What if I didn't delete ZX's app sprites again

* Start workin on a text component later

* Makes some code suggestions, doing it all in UI will kill me

* tgui update

* DNM until I get this gosh darn text working.

* The changes that I need afaik

* And a tgui rebuild to boot

* When that program datum spoke to me, I felt that.

* Makes changes to text input sanity, Pray

* By god I think I've cracked the code.

* Had no idea you could atomize UIs like that, this is revolutionary

* Spaces

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* tgui: MIT License (tgstation#50969)

* MIT license headers

* various tweaks

- Tweak jsdoc headers a bit
- Use an old-school format with SPDX-License-Identifier for SCSS
- Add headers to tgui dmcode

* Simplify the license section

* Rebuild tgui, small tweaks

Co-authored-by: ZeWaka <zewakagamer@gmail.com>

About The Pull Request

All relevant source code now contains copyright headers, that explicitly assert copyright and license for every file.

This has been done to prepare TGUI for wider adoption. Goon station devs are interested in using TGUI, and hopefully this will result in a nice collaboration and improvements to both codebases.

The following files were relicensed under MIT:

    code/controllers/subsystem/tgui.dm
    code/modules/tgui/*.dm
    tgui/**/*.js
    tgui/**/*.scss

The following files were kept untouched:

    tgui/packages/tgui/interfaces/**/*.js
    tgui/packages/tgui/styles/interfaces/**/*.scss

Project is still basically AGPL-3.0 under /tg/station's parent license (with added MIT texts), but allows importing MIT code into MIT-compatible codebases.

* Adds Syndicate tablets, replaces the pinpointer used by Nuke Ops (tgstation#51386)

* Synux

* cleanup

* I bet this merge conflicts

we hate tgui.bundle

* extra bits

* Syndix

* small fixes

* Summary (required)

* this linter drives me up the wall

* final touchups

* Forgot this thing

* fixes and tweaks

* Replace BSQL with rust-g, paramaterize all queries (tgstation#51255)

cl
refactor: BSQL has been replaced with rust-g, improving SQL reliability and safety.
/cl

Queries were parameterized as much as possible. Careful code read by someone else also versed in SQL would be a good idea. Things seemed fine spot-testing roundstart, library, bans, and polls, but more stress-testing may be useful.

Also updates rust-g to v0.4.5:

    Improved Linux .so detection
    Perlin noise functions

Also updates Travis script to bionic.

* tgui: Jukebox (tgstation#52014)

* Jukebox TGUI

* Line endings

* Review fixes

* tgui: Tachyon-Doppler Array (tgstation#51568)

* Doppler array UI without actions

* TachyonArray UI

* Final version

* TGUI fixes

* tgui: Biogenerator (tgstation#51022)

* First version

* Pre-release version

* Cleanup

* Review fixes and finishing touches

* Updates vend-a-trays to have a unique UI, improves accessibility.  (tgstation#51931)

* Initial commit, updates trays into 2020

* Adds vend-a-trays as a service machine, without it being a machine.

* Replaced the mapped vend-a-trays with service unique versions.

* "YoUr BuIlD DiFfErS fRoM mAsTeR"

* Removes {}s from img, workin on the other part

* All my homies recompile on merge conflict

* Fixes end of line because honestly there must be no god on this green earth

* hopefully this isn't too excessive.

* How's this?

* Applies Anturk's Confirm suggestion.

* Shipped, workshopped with style a bit

* Alright that's probably enough fiddling for now

* Rebuilds.

* html moment (tgstation#51956)

* Turret Control TGUI (tgstation#51777)

* tgui: Portable Turret (tgstation#51840)

* Turret TGUI

* Review fixes

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>

* Review fixes 2

* Finishing touches

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>

* [Ready] Skillcapes II: Revenge of the broken github: A Skill Menu Special: New Sprites Edition (tgstation#50656)

* 10K hours

60,000 minutes
hahah

sure if you want a trailing newline i can do that

default cloak gets default skill

lazy list and no equip good

necessary ig

Update code/datums/skills/_skill.dm

Co-Authored-By: nemvar <47324920+nemvar@users.noreply.github.com>
Update code/datums/skills/gaming.dm

Co-Authored-By: Angust <46400996+Angustmeta@users.noreply.github.com>
WIP PDA skill monitor program

hacky fixes till i refactor skills

refactors skills a bit, adds admin skill edit menu

If you have a failing, it's that you're always demanding perfection

...IF you have a failing
i think that's it for the admin skill manger

appeases lord flord

bruh

level names

FUCK!!

unga

Update code/modules/vehicles/vehicle_key.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/topic.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Apply suggestions from code review

frick

Co-authored-by: Rohesie <rohesie@gmail.com>
EOL and dumb spaces

more rohsie bait

tgui: Query Windows Registry for BYOND cache directory

hell yeah brother

update tgui and dmi

CLRF and bat file

typo ig

* tgui and new janicloak that i accdiently changed on another branch

* jani

* gamer cloak

* trim trailing whitespace

* tgui

* bruh

* variable renaming

* Tiny skill neatness tweaks (tgstation#51309)

* minor neatness tweaks

* topic

* tgui: Fix Seed Extractor and update to tgui (tgstation#50928)

* Initial Seed Extract Update

Updates the seed extractor to work and the ui

* Damnit, forgot to run webpack

* Removed the logger and fixed toTitleCase

You would think working on a PR for 14 hours you would remember the small stuff

* Fixed the wierd Table.cell spacing.

I have no clue how that got there.

* Trying to fix some webpack issues

Travis is reporing a dffrent webpack id so its failing?  did a yarn update and repack

* forgot the lock file

* Clean up the code, final rebuild

* Deleted yarn.lock in the root

Co-authored-by: Style Mistake <stylemistake@gmail.com>

* tgui 4.0 (tgstation#52085)

* tgui 4.0 hyper squash

* Upgrade dependencies

* tgui 4.0: Reduced Logging (tgstation#52280)

* CDN asset scaffolding: generated urls.

* tgui: Fixes assets, CDN support (tgstation#52321)

* tgui: Better asset code, CDN support

* Rebuild tgui

* µ-fix

* Fix sending of updates (tgstation#52282)

tgui: Fix sending of updates for non-interactive but observable UIs.

* tgui: Scalable UI (tgstation#52283)

* tgui: Scalable UI

* ProgressBar scaling fix

* Rebuild tgui

* tgui 4.1 version bump (tgstation#52408)

* Fix bluescreens due to a localStorage bug in IE11 (tgstation#52356)

* 2spooky now no interact with tgui

* tgui: Telecommunications UI (tgstation#52357)

* Telecommunication Machine UI Overhaul

This replaces the UI of the tcomm machines from the old html system to the new TGUI system.

* Telecommunication Machine UI Overhaul

This replaces the UI of the tcomm machines from the old html system to the new TGUI system.

* Updated TGUI.Bundle

* Housekeeping

Added final newline, shortened value-values, spread out boxes, renamed Tcomm to Telecomms, and made the backend use full numbers while the frontend used decimals.

Thanks for the feedback, y'all.

* Removes forcesay on attack (tgstation#52341)

* Fix pulsing the power wire shocking you repeatedly unless you close tgui (tgstation#52541)

* Fixes tgstation#52538

* Allow those with insulated gloves to mess with airlocks still

* Fix not being able to interact with insulos

* Fix style qualms

* Add shock immune to should_electrocute

* updates turdis to not use BSQL

* Bumps minimum savefile version, fixes some forgotten hotkeys (tgstation#52312)

* Bumps minimum savefile version, fixes some forgotten hotkeys

* Removes job flags

* Fixes keybind fuckup (tgstation#52406)

* Fixes keybind fuckup

* Right fix

* improved savefile versioning by MSO, cherrypick too fucked to want to fix

* Adds Runechat Subsystem - Deprecates Use of Timers for Runechat (tgstation#52425)

* first pass

* one wacky dot

* documentation

* we're the garbage man now

* doc update

* couple of bugs never hurt nobody

* Gun locker now uses a radial menu (tgstation#52506)

* Gun Locker Radials

* Smaller radius

* Review fixes

* Update code/game/objects/structures/guncase.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* Review fixes 2

* Apply suggestions from code review

Co-authored-by: Rohesie <rohesie@gmail.com>

Co-authored-by: Rohesie <rohesie@gmail.com>

* Drone radial menus (tgstation#52618)

* Patching the DMAPI (tgstation#50862)

* DMAPI 5.2.2 (tgstation#51100)

* Update DMAPI to v5.1.0

* Add more event handlers

* Patch

* DMAPI 5.2.0

* DMAPI 5.2.1

* Add missing trailing new line

* Fix the version we print after updates

* 5.2.2

* Add handler for TGS_EVENT_WATCHDOG_SHUTDOWN (tgstation#51665)

* Add handler for TGS_EVENT_WATCHDOG_SHUTDOWN

Thought I did this...

* speling

* Gotta go fast

* Update TGS DMAPI to 5.2.3 (tgstation#52608)

* Fixes cinematics for widescreen. (tgstation#52464)

* Simple mob AI wakes up less (tgstation#52228)

There's no reason to wake every mob on the Z level when we can simply
wake up only those nearest to the mob

In theory we could even not do this at all, but there would be a few
seconds delay before the idle automated actions ran and the AI wokeup
anyway

* SimpleMob AI now enters IDLE state when a client enters a z level

This occurs if no client was on the z level before they moved in
(implying the AI could have turned off)

If they are within a certain distance we also ask them if they want to
move from IDLE to fully awake and targeting

* Remove instances of `var varname` in dm code

* People drift through z levels properly now (tgstation#52686)

* Adds more documentation to TGS chat funcs (tgstation#52601)

* Fix using `tag` instead of `custom_tag` in send2chat (tgstation#52675)

* Adds more documentation to TGS chat funcs

* Fix using `tag` instead of `custom_tag` for chat channels

* Make new game notifcation message clearer

* Adds screen_glass.dmi (tgstation#52691)

transparent hud

* Replaces modular computer card eject verbs with UI buttons (tgstation#52489)

* Replaces mod-CPU card eject verbs with UI buttons

* ?

* Try to replace light overlay to vis_contents (tgstation#52389)

* Try to replace light overlay to vis_contents

* move glowybit creation in Initialize

* ups

* change mutable_appearance to SSvis_overlays

* set right settings

* Adds reference tracking (tgstation#51467)

About The Pull Request

Adds extools-powered reference tracking. Includes a couple procs that retrieve the back and forward references of a datum - Back references let you see what is referencing your object and potentially preventing it from garbage collecting, and forward ones show you what your object in turn references. Also made a cool GUI to inspect and follow these references.

The tracking adds some overhead to all variable sets and list operations. Init time is increased by ~15%. I haven't actually benched it so it might impact the actual game less.
Why It's Good For The Game

no lagging caused by hard dels scanning the entire planet (once coders fix them)

* Reference tracking (tgstation#52403)

* ref tracking

* legacy

* legacy procs

* fixes

* tweaks

* clarity comments

* wth

* Adds an atmos debugging tool and excited group visualizer (tgstation#52395)

* Adds an atmos debugging tool and excited group visualizer

* rebuild moment

* yarn install -> yarn run build

* Sigh

* Fixed UI, did not test, needs a rebuild.

* Proper flexing

* Adds varied colors, improved ui courtusy of stylemistake:

* Fixes a runtime, updates tgui

* added superconductors, cleaned up some shitcode, removed a clashing color

* Woop

* Speed

* rebuild

* Adds a tick count

* begone auto-update

* color defines

* rebuild moment

* color improvements, fixes updating

* adds another preprocesser define to handle showing max shares in the ui

* test of application system?

* patches up some display issues, allows for smooth flowing from one group to another

* overlay-ified

* client testing

* dmi moment

* plane master

* it fucking works

* size change

* passthrough

* rebuild moment

* adresses review concerns, toggles active turf vis on when testing

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* fixes the poll menu from breaking the join menu when the DB is misconfigured

* Adds Documentation for Entire Timer Subsystem With Minor Refactors (tgstation#52415)

* temp

* cleanup

* more

* Revert "more"

This reverts commit 8707bfe.

* less is better

* some documentation

* almost there

* we did it

* words

* better words

* Update code/controllers/subsystem/timer.dm

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>

* Update code/controllers/subsystem/timer.dm

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>

* whitespace

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>

* Revert "Adds an atmos debugging tool and excited group visualizer (tgstation#52395)"

This reverts commit 5a17005ffef89f2d116b157397daad8c819e2af5.

* rebuild TGUI

* fixes some TGUI interfaces

* rebuilding FUCKING TGUI

* fixes prefs

* more fixes

* Hitscan Emitters 2 Electric Boogaloo (tgstation#375)

* Emitters 2 Electric Boogaloo

* margularize it in waspstation folder since Toast wont 👀

Co-authored-by: Shayne Fitzgerald <robotech417@yahoo.com>
Co-authored-by: Shayne Fitzgerald <shaynefitzgerald0@gmail.com>

* final runtime fixes

* possible ORM fixes

* misc runtime fixes

* credits fixes and general runtime remedies

* fucking undeleted queries

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: LordVollkorn <66637090+LordVollkorn@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: Arkatos <arkatos1234@gmail.com>
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
Co-authored-by: MrDoomBringer <mrdoomboyo@gmail.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: WarlockD <warlockd@gmail.com>
Co-authored-by: MrStonedOne <kyleshome@gmail.com>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: WondaMegapon <wondamegapon@gmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Fhaxaris <Chrisamcculler@gmail.com>
Co-authored-by: Dennok <Deneles@yandex.ru>
Co-authored-by: MCHSL <56649176+MCHSL@users.noreply.github.com>
Co-authored-by: Shayne Fitzgerald <robotech417@yahoo.com>
Co-authored-by: Shayne Fitzgerald <shaynefitzgerald0@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RED LABEL This PR will not auto stale, this label should be green at all times. Refactor Makes the code harder to read Test Merge Candidate You're our unpaid test team Tools We pretend to be a real development community
Projects
None yet
Development

Successfully merging this pull request may close these issues.