#hangar-dev
1 messages · Page 5 of 1
if its useless then delete it
well we don't know if everyone checked their shit
and the last point has to stay in some kinda file
Okay, question
yos
So hangar will have downloading via API right?
How will that work with plugins from external urls
redirects or proxying probably
proxi-ing 
Most likely just redirecting
You will be required to enter direct download urls tho I guess, everything else is really dum
Yeah, it’ll be a redirect, but it’s not redirecting to the direct download, it’s redirecting to whatever url the plugin author put as the url.
So it might be the download url, or it’s the gh release page, or something
Point I was making that I kinda want ppl to require to enter a direct link
As everything else is bad UX
should we check the content type of whatevert is returned by the link then?
This falls into policy territory I guess
We should make a list with all these things so we can talk about them and make decisions
so there are some annoying cases where we have some external constants that are defined in a js file, and then referenced inside a script tag in a template
that's not gonna fly
Agree with direct link, makes things like wget easier
well wget won't work in the first place :)
if (userAgent.isPresent() && userAgent.get().startsWith("wget/")) {
return new ResponseEntity<>(messageSource.getMessage("version.download.confirm.wget", null, LocaleContextHolder.getLocale()), headers, HttpStatus.MULTIPLE_CHOICES);
}
and version.download.confirm.wget is
version.download.confirm.wget = Sorry, but Hangar does not support the use of wget. \
Please use the following curl instead:\n\
curl -O -J -L "<url>"
idk why, that was just taken directly from ore
Cause wget is a really strange tool in general
@random badger put into into global scope? window.constName?
Yeah, that’s what I did
I just haven’t gone through more of them to see if there are others
Altho, then IJ might not be able to find the paths
Wtf
Oh wrong chat
Urg
We really need to consolidate the two hangar channels
Yes please... Can we just get the gh channel and a contributors channel over here? That way there’s no reason to go to minis discord. No one wants to be there anyway. 😛
wait why won't wget be supported
Cause curl is better
-dev is basically the contrib channel? Ain't much use for it here, and I was thinking hanger gh notifs should just go in #paper-github as generally it won't be noisy enough
We have enough channels as is, imho; It's already a pain jumping through all of them
Idk, we often directly discuss webhooks in my channel
@pallid yoke do you want me to just put the github notifs into here? since the discussion would likely be on the commit object, i dont see harm in using same channel
and does contribs REALLY need "private" chat?
since this channel isnt super active github coming in here should work
yes please, throw a hook in here
right now we're discussing the important stuff on Mini's Discord, so depends if you actually want to have a say in some of its development before it's done and we have to throw stuff over again 👀 😂
my question was, why not have those discussions in here
because every time we threw an important question in here or the one internal (that jake also can't see), it got swept away / no input from the high up people
so we figured Mini's Discord is cosier
Not really noticed any importante questions, but, if we miss them, yall have access to the channels we have to look at somewhat often, shrugs
Rip
Yeah please add a webhook here
And can then try to limit the offtopic
I can ask you about a design decision tho @worthy basalt, we thinking about the discussion page. Ore just used discourse, and I kinda like that, as it increases forum usage, but then integration isn't as nice as it could be, and having additional platforms, like velocity for example, is meh cause they have their own forums
they wont need to once we move to it
can just have 1 thread per resource
oh wait missed what you meant by that
well it would be up to velocity to decide to use a forum thread here or not
that isnt a question of discourse or not, any product that has their own forums has that as a scenario
So embedded discourse for paper and stuff and for other platforms our own discussion implementation?
unless we do soething like forum is optional and theres a conditional "where to go for support"
they can link a thread or link to their own forums
Yeah we can make links like that, already have that for github or issues and stuff
so just conditional discusssion tab, if yuo dont want to look on hangar for replies, dont make a topic
Looks meh on mobile but yeah
So like, we do discourse integration of paper forum, just one category for hangar for all platforms, and if you don't want that, just don't enable it
@barren shale ^
"Hangar Discussions" or something yeah
hmm but for people to manually create threads somewhere else sounds a bit inconvenient
what do you mean?
but making the discussion thread creation optional in general and just linking to an issue tracker or something sounds good
if you can make an option to link an existing thread sure, but im not sure thats really a big deal for people to start over on a new thread, not like plugin releases threads are heavily used
Ppreeeetttyy sure we can make it out create threads
And post resource updates into the thread
Ore does that
The implementation for ore is really strange, it has a fully fledge job system with a seperate worker binary and shit, but that should be doable
didn't properly read everything again, am too tired and also watching a movie 😂 so what you said was Discourse link/embed for Paper/people that want it and own impl otherwise (or external link), Mini, or wat?
Yeah, let's go with external link for now if you don't want discourse
And we can later see about our own impl
sounds good
at least if we get the embeds to work nicely, also with reactions or whatever
going back and forth between pages sounds like a user nightmare
like all important version info and headers just being gone because you just wanted to peek at discussions
It's an external link, so you would open it in a new tab, but yeah
I mean the specific Paper plugin forum threads
Yeah, but that's still an external link, you leave the application from an UX point of view
you need to update the hangar wen counter, chew. its up to 143
This channel only
still 26 
Was a decision made regarding the gh webhook?
To #paper-github?
I think mini wanted it here. In this channel.
Cause we do talk about the various commits here.
Or rather, we do in the channel in minis discord
anyone know if you can redirect to robots.txt? is that acceptable to crawlers? idk much about this
@random badger google does 5 redirects before it stops
Pretty sure spec is the same 5 as well
Actually I believe 5 is also derived from the http spec where more than 5 redirects result in a 404
But as long as you're under 5 redirects you're good
k nice
@random badger I've asked for it internally :)
done
thank u kashsama 🥺🥺
kash uwu💕
:3
Have fun removing all the references to plugin id Kenny. 🙂

thats gonna be tough
Why are you redirecting to robots.txt? Didn't I all ready implement that?
You wanted it in the front end folder right?
In frontend/src/public.
But if you are using the dev server, it needs to be redirected. In production it’ll just be a class path resource
Oh I wouldn't even care about webpack mode, but ye, I see now
It doesn’t matter for production, it’s not a redirect there. So I guess in the end yea, it doesn’t matter
it will prolly work out fine except for the dependency stuff haha
but I'll probably just yeet it out there until we do those properly as well, with initial detection through slug only and manually setting them otherwise and all
Ye, sounds good
since we break a bunch of API now we might as well put everything back as V1 and unify the 2
I'll not do it right now, but for later
Yeah that was the plan
67271d5 Remove plugin id in favor of consistent author/... - KennyTV
have to go now, but that's the current progress. I'm also to dum to have the db recreated with the changed db init? docker-compose -f docker/dev-db.yml down -v or just dropping the db manually still recreated it with the old structures 
did we make a decision on typescript? MD was all for it when I mentioned it a bit ago, but mini was hesitant
as long as its not a pain in the arse, its fine by me
but like, do we solve an actual issue with that migration?
I mean, well, if we expand more into vue and stuff
hmm, @pallid yoke for some reason, im getting an error with the yarn running via the frontend maven plugin. Its installing v12 of node, but when it runs yarn install, it seems to be using v10 of node
and at least the swagger-client module requires a higher version
inb4 "works on my machine"
error swagger-client@3.11.0: The engine "node" is incompatible with this module. Expected version ">=10.21.0". Got "10.19.0" that is what this is saying right?
after running yarn install
Yeah
I'm all for Vue 3, I don't really have an opinion on TS
oh maybe it was kenny who said that
I think we on 3 already
yeah, we are on 3
jake sneaked that in into the frontend refactor branch the other day
Ah right
my global is 14
so where is it getting 10 from?
it's a mystery
just to make sure, run node -v in some terminal
do you run build in docker?
yeah, cause Im always using hangarauth at this point
cause I usually need multiple users
so make sure the global in the docker image is 12+ too?
idk
what dockerfile do you use?
docker/hangar/Dockerfile
that doesnt run mvn?
oooh I see
but node shouldn't be installed on that anyways
idk where it would be. I had to have it install yarn for some reason, I forget why. something needed yarn before the frontend maven plugin got around to installing it
what command do you run?
I just run docker-compose up --build in docker/
ok, so I added a temp RUN command in docker/hangar/Dockerfile (node -v) and it spat out 10.19.0
kek
so im guessing it running apk add yarn installed that version of node?
strangle I can't repo
oh wait no its still running
its running the command in the container
interesting
didnt even see that that container has yarn
but yeah, I bet the yarn version there is old too
yeah, I forget why its there. but ik there is a reason. something needed yarn before maven installed it
you shouldn't need to if you run mvn since thats what the frontend plugin should solve
right, but something needed to use yarn before maven installed it
something earlier in the build process
but if I look at the repo, that yarn package depends on nodejs, not nodejs-current
which is 12.18.4
but should still be enough
well I removed apk installing yarn, and then it failed to run node -v
so that adding of yarn def installed 10.19 of node
I mean, assuming its using latest alpine, idk what openjdk packages
yeah its a dependency
oh yeah, here is the issue. ```
--- frontend-maven-plugin:1.10.0:yarn (yarn install) @ hangar ---
[INFO] Running 'yarn install' in /app/src/main/frontend
[INFO] /app/src/main/frontend/node/yarn/dist/bin/yarn: exec: line 20: node: Permission denied
if I remove installing yarn in the Dockerfile
wtf
did you see that it ran the other goal before?
if not I know what the issue is 😄
which other goal?
the one thats installing node
yeah, it ran that
ah strange
updated to java 16 image which has newer yarn which hopefully installs a proper ndoe version
so maybe try adding just yarn install back, idk
ill have to go now, I forgot to check time
yeah, looks like it installed 12.18.4 of node, and 1.22.4 of yarn
best hangar logo
oer
in other news; I somehow broke my Docker setup, so I'll see if I can continue/finish the plugin id stuff tomorrow 
yeah... speaking of logos... who is gonna do that
grr. this is getting kinda annoying. ij's find in path seems to think it should search this cli.js file that is 130,000 lines long
and it always freezes up for a few seconds
sorry, 150,000 lines
what do you jnot like my logo
my logo was first
wdym ms paint isn't professional
yeah i prefer mr paint
k, anyone understand what is going on with the /javascriptRoutes endpoint?
currently its making project links on the home page on hangar-new.minidigger.me link to localhost
cause localhost is hardcoded into the response
and its like trying to read minified js
I copy pasted that, ore auto generates it
It's kinda an export of our route helper I guess
Idk, you will have to look where it's used in the frontend and reverse engineer it, I would be in favor of replacing that with a normal json object...
That regex in the latest commit tho
Yeah, to be 100% clear. I did not make that.
😆
But it has 300 upvotes on stack exchange. So it hopefully should work out.
Ah ye
477df97 removed dummy app entrypoint - Machine-Maker
Ok, ill do a separate branch for adding typescript so you can take a look at this. Mini, idk if you wanna sign off on this having everything it should.
If am sober again tomorrow I'll pull and browse a few sites and then we can merge
82e6776 started typescript migration - Machine-Maker
force
k, im thinking now we don't really need typescript... its more of a pain than I thought...
if the whole thing was started in typescript, it would be fine
Can't you mix match and gradually migrate?
For example, maybe only migrate Vue stuff?
Yeah, we could.
Cause like, rewriting code we want to eventually port to Vue anyways is just doubled work for no real gain
Yeah, there is just an odd issue, where IntelliJ is showing some errors, only for components in src/components, not src/. It’s not seeing that I have the experimentalDecorators turned on in tsconfig . Literally, if I refactor the component out of the components directory, up one level, it doesn’t show that.
It's only IJ, not build?
Yeah, building works fine.
Also, if I install any type package, I have to close and reopen it to get rid of the message saying it cant find type declarations for lodash (for example)
Meh
What is hangar?
An upcoming plugin repository
What is that
A replacement for spigots resource section. It will be the go to place to get paper plugins (bukkit plugins utilizing papers API extensions for extra features and performance)
Was the plan only for plugins that actually utitlize some part of Paper exclusive API, or just generally anything that is compatible with Paper?
Anything goes
But it kinda is the only place for actual paper plugins, since spigot is starting to crack down on them
is there any outlines on rules for plugins yet?
Spigot doesnt support pay per click at all even if there'a direct link right next to the pay per click link
Yes they do?
Take a look at what inventivetalent does
Saying that, given that 99% of the pay per click sites often tend to upset antivirus/malware sites, I defo err on that one
Pay per click?
things like adfly
Yeah, I would vote against that too
We have some different ideas to provide compensation to devs too
Replying to @main lava from https://canary.discordapp.com/channels/289587909051416579/746367733699969104/759755394322661408

Going to use the a lot of the API so if you want me to collect/find issues in one giant github Issue I'll be happy to mess around
giant issues which track 20 different things are just bad
API isn't done done yet
It's all under one api umbrella though, but i see your point
better off using a project
I cant modify projects :p
there can be one issue for adding features to the API
that's not too general for a single issue
might just end up using vs code for the frontend folder. IJ is now not highlighting some errors that show up on build
Take a look at what inventivetalent does
@sly mason i brought that up in the spigot discord and said no and talked to Haylee who owns incentivetalent and said they they talked to some of the staff and they agreed their site was fine
idk perhaps i just they didn't understand me when i was explaining
i tend to make things confusing
Did you actually talk to spigot staff or some randoms? But generally, spigot staff never were deterministic with decisions, which is why hangar, much like our community guidelines, will have clear rules
@random badger where should the mc version selector be visible? I don't see it (and had to make the parameter optional for testing because it just didn't exist) 
Only need one last change (see Discord), else it should good if noone else finds issues
It should be visible in the version creation page
It should have a bunch of checkboxes, with the api-version (if it exists) already selected.
don't have that, neither with normal file upload https://i.imgur.com/V0WK6TQ.png
You gotta select a platform...
Doesn’t know what versions to show if you don’t click a platform.
Maybe that needs to be more clear.
(By clicking on one of the platforms in that image you posted)
nope :p
Ok, well maybe something broke? Any errors in browser console? It’s a vue component
no, nothing
ah fair enough
just another visual thing; the platform selector is kinda awkward 👀 the blue on velocity suggests that it is currently selected, on clicking the other options just pop off with that x, and not selecting a platform doesn't have proper checking but just gives a generic error page
they should all have the same (dark, e.g. gray) color, and show what you have selected by highlighting one in a stronger color... or something else, idk
Well, that wouldn’t work. Plan is to support multiple platforms right?
I mean, I see why he just used the tags, it's also nice for consistency, maybe we can use the tags as a radio button label
So it’d be another checkbox group
ugh, there's an odd issue, where flyway isn't doing its thing soon enough in the startup process
not quite sure how to fix that.
sleep 60
wait there's a github bot?
It's a webhook
https://github.com/PaperMC/Hangar/pull/138 is ready to merge, right?
we probably have to add another field to hangarauth for the paper forum username
since they might not match
someone could have Machine_Maker as their username on the paper forums and then when they create an account on hangarauth, they use something else, like MachineMaker or something
but both forum login and hangar login go thru hangar auth
oh, right now they don't
so that you have one account for all paper services
kenny, why did you change the v1.0.0 script, instead of adding another one
oh you merged them
ok, I didn't realize that
fixing merge conflicts
then there's still that mc version tick box that disappeared with my changes (or maybe didn't work before either idk, didn't test that on master)
right, thats what I was gonna test yesterday, but got fed up with the migration thing
should be properly rebased now
.. wut org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
can you check if the version checkbox works on master @random badger ?
meanwhile I'll fix my docker/db setup again... 😂
am merging the entity counter PR for paper before it escalates further and then ill take another look at hangar stuff
k, well you at least missed 1 pluginId reference in a template @barren shale
that's the dependency stuff
ah
but I think mini or you will do a better job with those, I don't really have a good idea on how to approach those
hmm, found an issue with the frontend refactor. for all the vue components that use ajax requests, we need to make sure in its accopanying js file, we do $.ajaxSetup(window.ajaxSettings).
cant we do that in a global file?
yeah, probably
lemme see if I throw it in main.js
no, it doesn't work if its just in main.js
I bet because its a different instance of jquery
so the jquery that's doing the ajax request in VersionList.vue is different from the one that was imported in main.js?
uuhm
idk, maybe that isn't the reason. I just know if I add it to main, and remove it from version-list.js, the csrf header is missing from requests, which causes 403s
mmhm, is there a thing as instancing?
well, actually, it could be two different jqueries
since they could be in two different bundles
that is kinda what I meant
yeah
instance was probably the wrong word to use there
I think that's what the global imports in webpack solves right? its the same jquery in all bundles? or maybe it still would be different jqueries
oh @barren shale ik why the list is empty... you prob didnt add any versions to a platform
so hangar things there are no versions for that platform
ohh
so dependencies obv don't fully work anymore, but everything else on that should be finished and working
is there a gh issue for deps?
I'll create one and how I thought of how it should look like (also for multi-plat in mind)
I had some idea for deps, there was a json schema I posted somewhere, idk where it ended up
can you programatically add defaults to the platform versions for first starts so you won't have to manually add those when doing a clean setup?
jquery is only included once https://i.imgur.com/nH9EOXn.png
we definitely want to move swagger to its own bundle, lol
its one mb
hmm. then idk why it doesn't work if I only configure ajax in main
With plugin ids being removed (https://github.com/PaperMC/Hangar/pull/141), project dependencies need to be updated as well, also with multi-platform support in mind.
This could mean:
- Searching a dependency on Hangar by slug and linking it by default if a match is found
- Being able to manually unlink a dep and set links yourself in project settings (possibly to other websites)
- Having dependencies per platform - in settings they have to be separated, and they have to be slightly...
right now it's https://i.imgur.com/sX3Unzy.png, but as it'd be better for multi-platform separation, Sponge 7.1.0 should be a little sub-header with its dependencies, then platform X with theirs, and so on..
yeah, should be easy to differentiate between a platform dependency and then a plugin dependency
in code I think we should in general not put the platform in the dependency list, but as an extra list (or then map to its dependencies)
the platform just being any other dependency and then with weird checks smells a bit hacky, and changing that should be more future proof anyways
where are dependencies shown, on the version page right? or are they shown on the general project page as well
on project page as well for the promoted version imo
if its just on the version page, I think mini was right. we should encourage seperate channels for different platforms
hmm yeah. I wonder if we should then have it be able to release to multiple channels then
all of those should be shown in promoted/recommended versions then if set
yeah, a promoted version for each channel
idk how the promoted versions get calculated
I don't either :D
its one of those big sql queries that we just copy and pasted and hoped it just worked
yeah haha
doing separate channels for platforms sounds like a good idea, but we'd have to plan that out a bit, since that's a change with a few more consequences
this was way too much work
lol
but at least the bundle size is smaller now
I still don't 100% get why we have a vendor chunk at all
but oh well
webpack is a mess
muuuch better
now chartjs is only imported on the stats page
is main.js imported on all sites?
mmh, when I disable the vendor chunk, FA breaks
Replying to https://discordapp.com/channels/289587909051416579/746367733699969104/760565082764869693
yes it is, and so is the FA script
strange
remove vendor chunk, make everything depend on main chunk, stuff like chart.js should only be used in its own file
http://127.0.0.1:8888/ to debug
see configureWebpack.optimization.splitChunks.cacheGroups for info
im curious, why do you have to require swagger-ui in the swagger.js file?
isn't that imported in the Swagger.vue?
#141 is part of this. More work has to be done.
Ok, so is it best for each version uploaded to only have 1 platform, and use release channels for different platforms, or should each version uploaded allow multiple platforms to be selected?
I think its best that each version uploaded (essentially each row in the db) should only be 1 platform. I think that simplifies things pretty dramatically. If we go that route, we can add a platform column to the versions table. Then the dependencies column in the versions table could solely be for ot...
what do we think about an edit history for project pages that project owners can view?
we've got project page diffs in the user action log, but that's for mods and up
maybe also for version descriptions?
yes to all!
Project owners, or well anyone who can edit pages/version pages on a project should have access to an edit history for that page. Currently that info is visible in the user action log, but that is only for Moderators/Admins. Along with this would come page rollbacks. This shouldn't be a big issue since that information is already stored in the logs table.
you should use lodash-es to get rid of the lodash bloat
is that better than import difference from 'lodash/difference'?
Ok, so is it best for each version uploaded to only have 1 platform, and use release channels for different platforms, or should each version uploaded allow multiple platforms to be selected?
The way I do things, I prefer to distribute a single jar with support for multiple platforms. It makes user transitions and providing support and updates easier. Some other plugins I know of also follow this pattern.
@A248 do you know if its standard for plugins that do this to also have the same version name/number for each platform?
is that better than
import difference from 'lodash/difference'?
@random badgerlodashis not tree-shakable, so webpack is unable to extract only the code which is used.lodash-eslets you do
import { difference } from 'lodash-es';
which will only import the code needed for that, thus reducing the final bundle size. I noticed there are only 3 functions used from Lodash so it'll improve the bundle significantly.
I mean you can do the same syntax with lodash as well but it won't have the same effect
ah ok
alternatively you can do
npm install --save lodash.difference
which will only install the difference package from the official lodash.
then do
import difference from 'lodash.difference'
this does get a bit messy in package.json if you start using lots of lodash functions however. I prefer the lodash-es method.
I just recently did a lot of research for my job into bundle sizes with lodash and which method was best for importing, so this info is fresh on my mind haha
sweek ok.
in fact, you might not even need two of those functions
https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore
remove is the only one not listed there
thats funny that there is an eslint plugin for that
yeah, it's super useful if you use a lot of lodash haha
All the plugins I know of which do this use the same version number for each platform.
K, so if that is the case, I think having the ability to release a version on multiple channels, so you are still only uploading the file once, but it goes to all the channels for all the platforms selected.
lodash 
im curious, why do you have to require swagger-ui in the swagger.js file?
@random badger I just played around, I didn't manage to actually fix it, so I created an issue
The same thing that's true with lodash (you don't need it), is also true with moment btw
Which is another giant lib we use cause it has localization of time stuff
I think moment is also offical sunsetted now or smth
would be nice
I have a stupid ass meeting for two hours today and fucking 8 hours tomorrow
Time enough to get that running ^^
Increment planning for some new project
aGiLe
My boss told me to give it a chance, if it's as much bullshit as I think am just gonna leave early
I don't need planning, lol
I have til April, I have two competent coworker and half of our marketing team who are the product owners, i can manage that without a project lead or all this shit, just lemme code and talk to ppl
We will see
well let me know if you run into any issues. remember to use my fork of md's fork of your fork
of hangarauth
I guess we should transfer that to the paper org too
also, what do you think about the release channel per platform thing? and adding the ability to upload a version to multiple channels?
I think that properly solves the multi platform issue
doesn't require uploading the jar more than once if a single jar is designed for multiple platforms
Oh I haven't gone thru the comments in issues yet, lemme do that in a few, finishing up smth at work
this is the bledding hangarauth branch, right?
Yes. There’s a pr to your fork
most likely gonna just move that branch to the paper org
Pangar
re lodash, yes use lodash/foo UNLESS you have webpack with lodash optimizing plugin
there is a lodash plugin for webpack i use at work that rewrites your imports for you
without that plugin, a single import from "lodash" is the entire bundle, no tree shaking possible
what is "disable webpack for staging" does that mean the webpack dev server?
no we had a config that told the backend that you use webpack dev server, so that it would change urls for assets
and that wasnt disabled for staging
so you meant to say "yes" because thats e xactly what i asked lol
https://github.com/PaperMC/Hangar/issues/143 ?? why, keeping vendor stuff in its own chunk is preferrable to reuse over pages
remove vendor chunk, make everything depend on main chunk, stuff like chart.js should only be used in its own file http://127.0.0.1:8888/ to debug see configureWebpack.optimization.splitChunks.cach...
unless you have a common bundle your wanting to move it to
we dont have reuse over pages
well yes we have
but even if we dont its currently all in that one chunk
webpack should be able to make a common chunk of "super shared" code
basically: current https://i.imgur.com/vnRi7qs.png
but, is this all as a single page app design or is it multiple entry points
what I want https://i.imgur.com/uftqM1a.png
notice how we only use chart js in stats.js for example
well yes, that should of been automated, did the config force all vendors into vendors if so yeah thats iffy
at work we have common bundle ,that only stuff thats u sed over like 5+ entry points gets promoted there
yeah, thats default vue-cli behavior, everything under node_modules goes into chunk-vendors
you mean thats the default webpack config vue generated 😛
where is the webpack config
in memory
i mean in the project
where is the build configured
the optimization I copy pasted from the generated
the hell, vue is controlling webpack to that level?
vue-cli is
its optional
designed so that you dont need to touch webpack
if I comment that commented out code back in, with the dum test, then it produces the second image
but smth is wrong with FA so I didnt commit it yet but created the issue
which is fine for simple apps, every production quality apps gonna need their own customization
well, normally you would use it to build SPAs and dynamically import stuff
which we cant since html templates dont go thru webpack
yeah thats the bes then it can handle chunks super effecient
at work we have per-page entry points
so every url has its own entry js
there is no way to shove our html templates thru webpack, right?
yes, there is like webpack-html-plugin and it can even manage js includes
I know basically nothing about webpack, so all I do is try and error basically
i dont know what the latest webpack is like, im still behind
its not full html tho https://github.com/PaperMC/Hangar/tree/master/src/main/resources/templates
i assure you its possible in some way
ok, so we should really look into that then before working too much with chunks
well defining your own splits wont impede it
if you only have a single entry point shared over all urls, thats where your lodash cant be smart and only appear on a single page
err chart.js i mean
i dont know how this framework is managing entry points though
its only referenced in one entry point
its just that dum default rule of everything in node_modules goes to chunk vendors that is blocking us
well it prob doesnt really hurt. the idea is, let users ownload the static shit once, and that chunk will change less
and if the build can maintain static file names across versions then browsers wont have to redownload anything until you change a dep
yeah, I just played around a bit, its not really an issue
its just meh, considering chart.js is only used for admins
well that can be fixed on where chart.js is imported
and ye, we will have to enable file name hashes again, but for that we need to have that webpack html plugin
const { default: _ } = await import(/* webpackChunkName: "lodash" */ 'lodash');
replace w/ chart.js
webpackChunkName is the magic there
if I name the chunk the same as the entrypoint, it complains, and I don't really need two files
I just need to remove the default node_module rule and figure out why that breaks bootstrap, then it will work fine, button chart.js into the stats.js file, together with the code for that page
I might throw myself into this meat grinder this weekend.
I mean, the whole code splitting stuff isnt a problem right now, we could even go into prod with suboptimal chunking
I don't like chonky JS bundles.
On the Velocity website I sent way too much time slimming down our chonky JS bundle.
but yeah, if you guys have experience with this, please, go ahead
I am a java dev that somehow became a frontend dev
or well, fullstack
And I have less options there as much of the bloat is React and Gatsby-related
and Gatsby
although tbf our bundle size is good now
The biggest component here is actually React itself 😛
It used to be a bit worse: https://cdn.discordapp.com/attachments/589681400068702218/757124284744466482/unknown.png
Generally I try to aim for <1MB bundles after being gzipped
meanwhile me loading our tariff caluclator for car insurances: https://i.imgur.com/T0ombCY.png
(with adblock)
without, lol https://i.imgur.com/QhLEn17.png
we don't really need two users I guess
and the script shouldnt need to create a user
@limpid stump lol 300kb is tiny in modern age
specially if the page is good about splitting so entire thing isnt dl'd at one load
but 300k total geez a single bundle is fine there
our common bundle at work is 1.7MB ._.
uuuhm, how do we generate DB tables right now?
oooh, db migration
well, thats not working
it seems to run too late I guess?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webMvcObjectMapperConfigurer' defined in class path resource [springfox/documentation/spring/web/SpringfoxWebMvcConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaDataSourceAdvisor': Cannot resolve reference to bean 'methodSecurityMetadataSource' while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'methodSecurityConfig' defined in URL [jar:file:/app.jar!/BOOT-INF/classes!/io/papermc/hangar/config/MethodSecurityConfig.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService' defined in URL [jar:file:/app.jar!/BOOT-INF/classes!/io/papermc/hangar/service/UserService.class]: Unsatisfied dependency expressed through constructor parameter 6; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleService' defined in URL [jar:file:/app.jar!/BOOT-INF/classes!/io/papermc/hangar/service/RoleService.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.papermc.hangar.service.RoleService]: Constructor threw exception; nested exception is org.jdbi.v3.core.statement.UnableToExecuteStatementException: org.postgresql.util.PSQLException: ERROR: relation "roles" does not exist
but those sizes are pre compression
the migrations were merged
441kb compressed
if you didn't already, you have to nuke your db
I did, this is staging
ah
where in code are the migrations?
like where are they triggered?
mmh
so magic?
so many db frameworks treat migrations as magic, i hate it
sspecially when its "run this sql file!" well what if you need app code to properly do the migration too?
@worthy basalt Django has some nice abstractions for DB migrations
A migration can run arbitrary code to do the migration properly

I have a dum feeling thats some old version?
finally an excuse to add a custom banner generator that prints the commit 😄
Mini, the migrations seem to run too late. I had this problem earlier and I couldn’t find a fix.
I just ignore errors now, thats fine
Also, make sure you drop all the db tables on staging
I did
I think a solution is to move just the init script back to the docker folder
oh ok.
https://github.com/PaperMC/Hangar/commit/14affc63f15ed5e163ddc62cf00b5de1d670d4b9 oh, did this fix it?
hmm, could make it a scheduled task with a delay?
I guess
but like, they are ugly anyways
two locations, role init and platform version init
we gotta have some better solution
yeah, we could do a population service. I wonder if an @Order(Ordered.LOWEST_PRECEDENCE) would run late enough
lol
flyaway is an InitializingBean
whatever that is
so we need to be that too I guess
its also ordered
it looks like FlywayMigrationInitializer is already ordered 0
you can probably autowire that and change its order
am offically too dum to do maven resource filtering
wtf
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<properties>
<hangar.version.full>${project.version}-${git.commit.time}.${git.commit.id.abbrev}</hangar.version.full>
yet file in target is still Hangar version ${hangar.version.full}
huh
for resource filtering? there's something extra that has to happen?
no, they just changed the delimiter
since spring also uses the maven syntax for it configs
to avoid confusion
ah @xxxx@
ye
don't think ive ever seen that syntax lol
ok anyways
still no clue where that migration is coming from, lmao
wait
maybe smth is not running clean
since we cache everything in build
@random badger @modest forge what do I need to do so that hangar auth runs? its complaining about missing redis, do I need to add redis to my stack? with special config?
didn't we agree we don't need redis?
As far as I know, we do for hangarauth to work properly and not break anything
I asked the Sponge folks whether they were using it with or without redis in prod and they didn't know
in our or in their?
oh that was changed by md
The alternative is to hack around django-rq to remove the redis dependency, but then there's no proper error handling in either hangar or hangarauth (unless that's changed?)
Yeah idk if they override the config in prod and neither did the people who answered me
No further response after that
but basically if redis isn't used and the forums/hangar are unreachable, user creation on auth will break
Also fakeredis didn't work with django_rq last time I tried it
what config did you use for redis?
Can't remember, whatever the docker setup was using in my old branch that machine forked off
a492fe0 Bump spring-boot-starter-parent from 2.3.3.RELE... - dependabot[bot]
Bumps spring-boot-starter-parent from 2.3.3.RELEASE to 2.3.4.RELEASE.
Release notes
Sourced from spring-boot-starter-parent's releases.
v2.3.4.RELEASE
:beetle: Bug Fixes
@ManagementContextConfiguration is meta-annotated with @Configuration(proxyBeanMethods=false) which does not disable proxying #23305
Signed jar dependency performance problem when repackaged in a single jar #23264
ValidationHandler no longer works with certain map keys #232...
4c264a8 Bump flyway-core from 6.5.5 to 7.0.0 - dependabot[bot]
Bumps flyway-core from 6.5.5 to 7.0.0.
Release notes
Sourced from flyway-core's releases.
Flyway 7.0.0
Flyway V7 is here! See https://flywaydb.org/documentation/releaseNotes#7.0.0
Flyway 7.0.0-beta1
Flyway V7 beta is here! See https://flywaydb.org/documentation/releaseNotes#7.0.0-beta1
Flyway 6.5.7
Bug fixes. See https://flywaydb.org/documentation/releaseNotes#6.5.7
Flyway 6.5.6
Bug fixes. See https://flywaydb.org/documentation/releaseNotes#6.5.6
Commi...
f9aca63 Bump snakeyaml from 1.26 to 1.27 - dependabot[bot]
ddcbc8a Bump jdbi3-bom from 3.14.3 to 3.14.4 - dependabot[bot]
Bumps jdbi3-bom from 3.14.3 to 3.14.4.
Changelog
Sourced from jdbi3-bom's changelog.
3.14.4
fix performance regression on statement preparation, #1732
Commits
3732a54 [maven-release-plugin] prepare release v3.14.4
f4b2dd6 QualifiedArgumentFactory$Preparable: only compute prePreparedTypes once
b9fe27d [maven-release-plugin] prepare for next development iteration
See full diff in compare view
[
I posted a regex based one before
uwu :)
spam is set to once a week again
we kinda want automated dep updated, since this is frontend stuff and could actually impact user security
^
ee6bb0e Bump spring-boot-starter-parent from 2.3.3.RELE... - dependabot[bot]
d3bebd0 Bump flyway-core from 6.5.5 to 7.0.0 - dependabot[bot]
07e5c98 Bump jdbi3-bom from 3.14.3 to 3.14.4 - dependabot[bot]
yes kneny, uwu here too
lmao @pallid yoke
congratulations
you broke dependabot
hehe
and I "helped" with gradle
b627d71 Bump @fortawesome/fontawesome-svg-core in /src/... - dependabot[bot]
Bumps @fortawesome/fontawesome-svg-core from 1.2.30 to 1.2.31.
Commits
See full diff in compare view
here they come
2ab1344 Bump prettier from 1.19.1 to 2.1.2 in /src/main... - dependabot[bot]
Bumps prettier from 1.19.1 to 2.1.2.
Release notes
Sourced from prettier's releases.
2.1.2
🔗Changelog
2.1.1
🔗Changelog
2.1.0
diff
🔗 Release Notes
2.0.5
🔗 Changelog
2.0.4
🔗 Changelog
2.0.3
🔗 Changelog
2.0.2
🔗 Changelog
2.0.1
🔗 Changelog
2.0.0
diff
🔗 Release Notes
Changelog
Sourced from prettier's changelog.
2.1.2
diff
Fix formatting for directives in fields (#9116 by @sosukesuzuki)
Input
type Query {
someQuery(id: ID!, someOtherData: String!):...
abca517 Bump eslint-plugin-vue from 7.0.0-beta.4 to 7.0... - dependabot[bot]
Bumps eslint-plugin-vue from 7.0.0-beta.4 to 7.0.0.
Release notes
Sourced from eslint-plugin-vue's releases.
v7.0.0
:rocket: Highlight
Support for Vue.js 3.0 "One Piece".
Support for ESLint 7.x.
Support for ECMAScript 2020.
Added 66 new rules.
💥 Breaking Changes
#1209 Change support version of ESLint from 6.0.0 to 6.2.0.
Updated presets configs.
Changed plugin:vue/base config.
#1237 Removed jsx:true from shareable configs.
#1209 C...
hello
b60d5b8 Bump sass-loader from 8.0.2 to 10.0.2 in /src/m... - dependabot[bot]
Bumps sass-loader from 8.0.2 to 10.0.2.
Release notes
Sourced from sass-loader's releases.
v10.0.2
10.0.2 (2020-09-03)
Bug Fixes
source maps generation (#886) (8327d55)
v10.0.1
10.0.1 (2020-08-25)
Chore
update deps
v10.0.0
10.0.0 (2020-08-24)
Bug Fixes
handle absolute windows path in source maps
See notes for https://github.com/webpack-contrib/sass-loader/releases/tag/v10.0.0-rc.0 release
v10.0.0-rc.0
10.0.0-rc.0 (2020-08-24)
⚠ BREAKIN...
a8a824f Bump @fortawesome/free-regular-svg-icons in /sr... - dependabot[bot]
Bumps @fortawesome/free-regular-svg-icons from 5.14.0 to 5.15.0.
Release notes
Sourced from @fortawesome/free-regular-svg-icons's releases.
Release 5.15.0
Minor version upgrade notice: there are some backward-incompatible changes to this release. See the
UPGRADING.md guide for more
information.
Added
Added guilded, hive, innosoft, instalod, ns8, octopus-deploy, perbyte,
uncharted, watchman-monitoring, wodu sponsored brand icons
Added commissio...
github is now going into #760946492483043342
dependabot will open more PRs once the ones it sent already are merged or closed, fyi
it hit the default limit of 5
its not a new category too, at least :p
am going thru changelogs to catch stuff
looks at voice chat and channels being their own category
yeah, couple major version updates
adobe? more like adobeen
is that font awesome

ye
needs to be chew, otherwise it was too close to waiting room and people accidentally clicked there and had to be dragged back in :P
put it between waiting room and typing sounds 
oh wait, discord's dumb, you cant
re
put typing sounds above waiting room 
harder to see them with that, but anyhow this is the wrong channel for this discussion :p
true true, anyway
cant find it
we would port that
and like, properly cache the stuff
tested that one earlier, but it had some issues with duplicated and empty tags
(like bbcode allows/xenforo often does)
Duplicates tags?
[FONT=Verdana][SIZE=4][SIZE=4][FONT=Verdana][/FONT][/SIZE][/SIZE][/FONT]
Gotta be a way to remove duplicates tho right?
yeah just uh, I certainly can't do that with regex 😂
Nah, you’d almost have to write something of a parser for it.
for example attached images
yay kneny orange
md is ugly in pink
arguably I've barely contributed to hangar but shhhhhhhh
its just in anticipation of the hangar auth rewrite
runs
thats easy to work on isolated
also: unit tests
yeah for sure
totally need unit tests for conversion
you kidding
now that auth is running
app doesnt
nvm auth is still 500ing
nobody knows why tho
log should doesnt tell me
reee, its broken on localhost too
lol
Are you using the prod settings for auth? If so, errors are probably being suppressed
I mean, I did update flyway-core to 7.0.0
django logging is 💩 even in dev mode
I bet spring doesnt support flyaway 7 yet
altho that error makes no sense, as that method exists
oh wait, return time changed
spring doesnt care about the return type tho
we should ship our own version, spring bundles it
seems like whatever prettier config we used changed some defaults
reeeee kenny https://i.imgur.com/LHzroR6.png
I told kenny that there were template issues
knenwald pls
He said it was just dependency stuff
Not in eslintrc.js
it added them
I mean, they make sense for less div
and stuff gets auto formatted anyways
I guess, it just looks nicer w/o them
ok, lets see if I can enable logging for hangar auth somehow
lets try adding the DEBUG true env var
Any way you can just tell it to use dev settings for the moment?
I know that fixed shit the last time
I forget how those are enabled
of course it works with debug true
why would I doubt it
Hooray! Your email has been verified successfully. Thanks!
suck?
Got rid of hangar-new too?
here I can blame you for being off topic
hell its already 2300
nah it still 2020
where did my day go
Ooh we have some mobile css to do. Can’t even see the login/logout
Yeah, no issues found. 😛
Is that actual sponge?
Wow.
They didn’t put any effort into that.
Need to do a lot more flex stuff
sponge auth is offline rn, lol
im getting 500 on hangar-auth.minidigger.me?
oh wait
I only did the debug on cli
its now back in prod mode 😄
service is updating
lemme commit this
ITT: Mini breaks stuff
do I have perms on HangarAuth?
I didn't before
github should send you an email I guess
do I feel adventurous and try to rebase hangarauth on spongeauth?
yeah
so there really shouldn't be any issues with doing that
how else would I rebase my fork?
people here seem to be against all force pushes...
IT'S A MEME BRO
force pushes destroy git history and screw up people who've already got the repo checked out, etc; Not an issue here, but, I still just had to fire off a few bombs ;P
so basically, you can sign up now and break shit
hit me up if you need your email verified, I can forward you the link
nice, I can even see active sessions
should prolly make it use forwarded-for headers
heh, my admin user isn't admin in hangar
how fun
shouldn't sync do that?
it did
oh wait, you mean role in sso
yeah, just refresh the page
nice
yay, super nice to have this working
Mini, did you resolve the migration load order thing?
w/o the try catch that is
as I said, I just caught the errors at the two locations (roles and platform versions) and ran it
hmm ok. ill see if I can put both those in their own service and change the order of the flyway initializer bean
yeah go ahead, ill go to sleep now
do we wanna have an auto generated maven/gradle dependency blurb if a project owner provides the required info for that?
would be neat to have a standardized "copy maven/gradle dependency" thing
yeah, that's true. but some of the more used ones are. idk might be too little used.
would be quite nice
I kinda want to start brainstorming rules and stuff soon
yeah, me too. I just don't know where to start 🙂
oh I don't have perms to push to hangar auth
Urg
oh, that webhook is still here lol
o rly
no
oh, nvm then
::: ::: ::: :::: ::: :::::::: ::: :::::::::
:+: :+: :+: :+: :+:+: :+: :+: :+: :+: :+: :+: :+:
+:+ +:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+
+#++:++#++ +#++:++#++: +#+ +:+ +#+ :#: +#++:++#++: +#++:++#:
+#+ +#+ +#+ +#+ +#+ +#+#+# +#+ +#+# +#+ +#+ +#+ +#+
#+# #+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+# #+#
### ### ### ### ### #### ######## ### ### ### ###
k, there's gotta be a better version of this.
_ _
| | | |
| |_| | __ _ _ __ __ _ __ _ _ __
| _ | / _` || '_ \ / _` | / _` || '__|
| | | || (_| || | | || (_| || (_| || |
\_| |_/ \__,_||_| |_| \__, | \__,_||_|
__/ |
|___/
/$$ /$$
| $$ | $$
| $$ | $$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
| $$$$$$$$ |____ $$| $$__ $$ /$$__ $$ |____ $$ /$$__ $$
| $$__ $$ /$$$$$$$| $$ \ $$| $$ \ $$ /$$$$$$$| $$ \__/
| $$ | $$ /$$__ $$| $$ | $$| $$ | $$ /$$__ $$| $$
| $$ | $$| $$$$$$$| $$ | $$| $$$$$$$| $$$$$$$| $$
|__/ |__/ \_______/|__/ |__/ \____ $$ \_______/|__/
/$$ \ $$
| $$$$$$/
\______/
not bad
easy to read, and large
. _..._
.'| .' '. .--./)
< | . .-. . /.''\\ .-,.--.
| | __ | ' ' | | | | | __ | .-. |
| | .'''-. .:--.'. | | | | \`-' / .:--.'. | | | |
| |/.'''. \ / | \ | | | | | /("'` / | \ | | | | |
| / | | `" __ | | | | | | \ '---. `" __ | | | | '-
| | | | .'.''| | | | | | /'""'.\ .'.''| | | |
| | | | / / | |_ | | | | || || / / | |_ | |
| '. | '. \ \._,\ '/ | | | | \'. __// \ \._,\ '/ |_|
'---' '---' `--' `" '--' '--' `'---' `--' `"
thanks
the first one you posted is also easy to read, but its smaller
_ _ _ _ _ ____ _ ____
|'| |'| U /"\ u | \ |"| U /"___|u U /"\ u U | _"\ u
/| |_| |\ \/ _ \/ <| \| |> \| | _ / \/ _ \/ \| |_) |/
U| _ |u / ___ \ U| |\ |u | |_| | / ___ \ | _ <
|_| |_| /_/ \_\ |_| \_| \____| /_/ \_\ |_| \_\
// \\ \\ >> || \\,-. _)(|_ \\ >> // \\_
(_") ("_) (__) (__) (_") (_/ (__)__) (__) (__) (__) (__)
lmao
do comic sans
k, that Doh one is way too big
gonna go with the $$ one
/$$ /$$
| $$ | $$
| $$ | $$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
| $$$$$$$$ |____ $$ | $$__ $$ /$$__ $$ |____ $$ /$$__ $$
| $$__ $$ /$$$$$$$ | $$ \ $$ | $$ \ $$ /$$$$$$$ | $$ \__/
| $$ | $$ /$$__ $$ | $$ | $$ | $$ | $$ /$$__ $$ | $$
| $$ | $$ | $$$$$$$ | $$ | $$ | $$$$$$$ | $$$$$$$ | $$
|__/ |__/ \_______/ |__/ |__/ \____ $$ \_______/ |__/
/$$ \ $$
| $$$$$$/
\______/```
you should inject this to all of the plugins downloaded from hangar
so when people start up their server their startup logs are 50% ascii art
lol yeah, on startup, it logs this
ik server owners are big fans of massive plugin startup messages
i'm sure someone has written a plugin to filter them out
have a hangar conf folder to turn it off, easy
is paper gonna add a builtin update notif system once hangar is up and running?
well cause that's bad.
and only way to disable them is to use a secret startup param
that isn't documented anywhere
maybe opt-in auto update
sounds like a nice feature if you could select which plugins you may want to auto update and only have it by opt-in so that things don't get wrecked by it accidentally as easily
ideally releases could be marked as stable after-the-fact and you could choose to only update to stable releases
but if no one is interested in doing it properly its probably not worth adding imho
hate to throw a spanner in the mix but you should really consider using a static generator like Nuxt or Gridsome for this
it'll improve SEO ten-fold
for...?
the frontend

