#hangar-dev

1 messages · Page 6 of 1

random badger
#

the frontend is like 95% using freemarker templates

#

that are generated server side

#

the Vue templates, are for dynamic stuff

#

and we'll be adding more for various forms and whatnot

uncut juniper
#

oh right, never heard of that lol

leaden lily
#

It looks like Mini's dev instance is down.

random badger
#

yeah, I saw

#

might've been 2 commits ago

#

shrug just have to wait for him to wake up

leaden lily
#

Was going to check a lighthouse report on it but even now it wouldn't be valid since there's still a ways to go

random badger
#

so plugin dependencies are grabbed from the plugin.yml. is having the author select valid versions of that plugin (if it exists on hangar) going too far?

leaden lily
#

Wdym

#

Like 1.8 - 1.16?

random badger
#

ok, so lets say you've got v1.0 of Plugin A

#

and it depends on Plugin B

#

so Plugin B is in Plugin A's plugin.yml

leaden lily
#

Oh no that's too far

#

Not needed

random badger
#

but Plugin A only works with versions 1.1-1.3 of Plugin B

#

ok, too far

leaden lily
#

People will usually specify that manually

random badger
#

yeah ok.

#

plugin authors will be able to link their dependencies on plugin.yml with a plugin on hangar, or an external link if they want a link to appear for it

narrow verge
#

guys be careful, dont have like all these fancy features or itll be overwhelming, i see all these fancy things that would be nice but honestly id just like a working hangar first and features second

random badger
#

well getting dependencies working is needed

#

rn, it doesn't exist

#

along with multi-platform support

#

can someone link a project with a single jar that supports multiple versions? I will need to test that out at some point. I don't know any projects off the top of my head that do that

narrow verge
#

serverlistplus?

leaden lily
#

PlaceholderAPI supports 1.7 - 1.16 in a single jar.

narrow verge
#

oh multiple versions or multiple platforms

random badger
#

platforms

#

multiple versions is handled

#

you select from a checkbox group what versions it supports (same as spigot)

random badger
#

does velocity have a plugin.yml equivalent?

tacit roost
#

yeah, a velocity-plugin.json is generated from the annotations

random badger
#

ah, so that'll be in the jar.

tacit roost
#

yep

random badger
#

there isn't an api-version equivalent tho right? nothing to specify which version of velocity the plugin uses/requires

#

ik atm there is only 1.0 and 1.1 is in beta or something

untold idol
#

api-version is only paper 2.0 word enough to be in spigot

random badger
#

ya ik, its not the end all for required version. we only use it to pre-check that checkbox when you upload a version

#

(if it exists)

leaden lily
#

Pretty sure NuVotifier has all platforms in 1 jar

random badger
#

yeah, looks like it. got plugin.yml, bungee.yml, and velocity-plugin.json in it

untold idol
#

what does sponge use

#

(not that hangar will support it but just curious)

random badger
#

theres a config.toml

untold idol
#

toml

random badger
untold idol
#

yeah forge

proud basalt
#

SpongeAPI 8 has a different format coming

random badger
#

what is the toml one then

proud basalt
#

probably the plugin's itself? :p

pallid yoke
#

it'll improve SEO ten-fold
@uncut juniper well, not really, it's 2020, Google's crawler execute JS

#

Even if hangar would be a SPA, fully rendered in browser, Google would be able to index it

#

We tested it at work, we have pages where Vue code sets the window title and Google has no issues with that

#

It's really hard to get good seo advice online, as everybody knows nothing and just prays to the Google god

#

A co-worker on mine calls those ppl seoterical 😂

#

We only follow the offical Google posts and common sense, and we are placed really good in a competitive market that is insurance

random badger
#

hell yes. uploaded nuvotifier jar, and it detects and shows all 3 platforms

#

this overhaul of multi-platform stuff w/dependencies feels good

pallid yoke
#

Gonna have to do a bit css work on that I guess

#

But nice

random badger
#

yeah, css is easy

pallid yoke
#

Am gonna look at how you broke staging once I get out of bed

random badger
#

yeah.. not sure what happened there?

#

I had to fix some stuff for local dev w/hangar auth, but I didn't think I changed any thing that would affect building on staging

uncut juniper
#

it works with google but not usually with other services that query meta tags like discord, social media, etc

random badger
#

but regardless, its majority ssr anyways

pallid yoke
#

They query head fields tho

random badger
#

I need to find a plugin that uses a single jar for multiple platforms and has dependencies for each of those platforms... know of any plugins that meet that description?

#

nuvotifier is multiple platforms, but doesn't have deps

pallid yoke
#

Just add them yourself I guess

random badger
#

ya, I guess I could

pallid yoke
#

I used Kenny's maintincance for testing, but that's multiple jars

barren shale
pallid yoke
#

Oh

random badger
#

k, nice. the dep map works as well

#

dependencies had to switch to a Map<Platform, List<Dependency>>

barren shale
random badger
#

switch to actual linux 🙂

barren shale
pallid yoke
#

I just stick to wsl1 for now

barren shale
#

I can't do that cuz I can only run docker with wsl2 with Win Home . _.

pallid yoke
#

Oh

#

Not 1.1.1.1, smh

barren shale
#

does it make a difference/does cf have some super black magic going on? 😂

pallid yoke
#

No but it's not Google

pallid yoke
#

lets not touch existing migration files 😄

#

the files are checksummed

#

also, why didn't you like my banner art?

#

😄

#

ok still doesnt work

#

cause you moved the hstore extention somewhere

#

@random badger where is init.sql executed?

#

ah the docker image should execute it

random badger
#

yes.

#

yeah, I was having issues with the hangar user installing it

#

cause hangar wasn't a super user

pallid yoke
#

should be since thats what we tell the image

#

but doesnt matter

random badger
#

and the banner art was barely readable lol

pallid yoke
#

I think staging didnt execute the sql init script, since the first init script failed

#

cause hangar was getting created twice

random badger
#

yeah, it won't execute those scripts if the db already exists

#

you'd have to delete the docker db volume

pallid yoke
#

thats what I did

random badger
#

oh wait, what user the the deployment docker-compose use?

pallid yoke
#

I hope next deployment fixes this

random badger
#

oh yeah... need to change the POSTGRES_USER/PASSWORD to not be hangar

#

look at the other docker-compose

#

I just have it as user/password

#

cause the user gets created in that script that creates multiple dbs

pallid yoke
#

thats fine for now, later we will use actual secrets

#

no I fixed that

random badger
#

oh, I missed that

pallid yoke
#

I let the postgres image handle it

random badger
#

right, but thats still gonna create the hangar user twice...

#

cause the create-databases.sh script creates it

pallid yoke
#

no that I removed

random badger
#

oh ok. then yeah, it should work

pallid yoke
#

db service is updating now

#

Multiple database creation requested: hangar,hangarauth

#

huh

#

yeah its still wrong

#

now it works

barren shale
modest forge
#

hangar wen @barren shale

barren shale
#

did an (almost) 1-liner fix already 😎

pallid yoke
#

restarting auth right now since it needs to recreate tables

#

everything is running again now

barren shale
#

but only locally

pallid yoke
#

yeah doesnt matter really

#

I noticed that too

#

I mean, we could add cors headers, but oh well

barren shale
#

sooo uhh, how would we approach the conversion, just have an inbuilt converter you copy paste stuff in, or giving the Spigot resource url for example? cuz without the actual bbcode we'd need an html->md converter, right (I don't think you can scrape the bbcode)?

#

and does dbo even have a site api? 🤔

random badger
#

I think they should paste bb code into a text area

#

Idk if you can access the bb code via whatever api dbo has.

#

Ok, so you switched it to one db user. That’s probably better. You just missed changing that in the auth portion of the docker-compose

pallid yoke
#

doesnt xenforo have like an api to get bbcode?

#

Ok, so you switched it to one db user. That’s probably better. You just missed changing that in the auth portion of the docker-compose
and ye, could be, we have so many docker stuff

random badger
#

You can move the create extensions back then

#

The issue was, that the user wasn’t guaranteed to be a super user, and only a super user can run those

#

But now that it’s all one user, that doesn’t matter

pallid yoke
#

ideally I want to consolidate the two docker things

#

and just have two configs

#

idk about others, but am fine with running the full stack locally with hangar auth and shit

random badger
#

yeah, its simpler now that you can just have it pull the image from gitlab

mellow pebble
#

I heard I'm getting cookies Mini

pallid yoke
#

oh you porting version creation to vue?

random badger
#

It’s in progress.

#

Simply because I have to add more dependency stuff

#

Like linking a project on hangar to a dependency, or providing an external link.

#

Will probably end up creating a markdown editor component as well.

#

Might have to add a loading thing tho. The vue template def takes 1/4 of a second to show up.

pallid yoke
#

because you do a network call in created

#

prolly want that async

#

not that I would know how that works

random badger
#

It’s a promise

#

Should be async already

stray wharf
#

should just be a raw html page

#

scripts and frameworks and all that shit is for weaklings

pallid yoke
#

oh ye

#

am dum

random badger
#

Is there something to add to the script tag in the template to make it load earlier or something?

pallid yoke
#

not really, dont think so

#

you can add a preload to the head

#

or prefetch or wahtever

random badger
#

Also, it could be webpack that makes it a bit slower

#

Cause in prod, it’s a static js file that’s loaded

#

Rather than the webpack dev server

pallid yoke
#

that too

random badger
#

What happens if you put something inside the container you mount the vue app on? Does it get replaced?

#

Easy enough to throw a loading thing in there then

pallid yoke
#

yes, vue will replace it once loaded

random badger
#

That’s nice

pallid yoke
#

at work I just do a global loader that I remove with jquery

#
<div tabindex="0" aria-label="Loading" class="loader active" aria-busy="true" id="page-loader" style="display: none;"> <div class="loader-background"></div> <div class="loader-icon"> <svg viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle stroke-opacity=".25" cx="18" cy="18" r="18"></circle> <path d="M36 18c0-9.94-8.06-18-18-18" transform="rotate(111.343 18 18)"> </path> </g> </g> </svg> </div> </div>
#

Window.jQuery("#page-loader").hide()

#

(we do weird shit at work with jquery)

#

thats why its window scope

flint stratus
#

Whats hangar?

safe harbor
#

An upcoming plugin repository

narrow verge
#

Check the pins

#

Or topic

worthy basalt
#

to help explain it in simpler terms - its a replacement for Spigots Resources section @flint stratus

pallid yoke
#

mobile obviously way worse

narrow verge
#

woah what site is that

pallid yoke
#

thats lighthouse, its in chrome

#

but also on the web in like 3 versions

narrow verge
#

oh

pallid yoke
#

I ❤️ web.dev btw

#

you can also see tons of shit in google search console and webmaster tools and shit

narrow verge
pallid yoke
#

company home page

narrow verge
#

mfw bootstrap takes 1.8s to get

pallid yoke
#

web.dev uses mobile first approach

#

so its throttled in bandwidth and speed

#

just like the new google bot btw

random badger
#

dat performance tho

limpid stump
#

New Velocity website does better than Hangar, what?

narrow verge
#

Flushed

random badger
#

that's kenny's maintenance plugin

#

still some visuals to change ofc

barren shale
#

nice yeah, that’s about what I had in mind for that as well

random badger
#

need to add the form bit to version creation to link each dependency to either a hangar project or external url

barren shale
#

I’d put the platform version in the same line as the name, still light gray (and keeping it smaller) tho

random badger
#

that'll be a comma separated list

#

or some other version of displaying multiple versions

#

if someone wants to write a way to take a list of x.xx versions and parse that into 1.1, 1.3-1.4, 1.6 or something that'd be nice

barren shale
#

should be fairly easy, since we already have all possible versions anyways to check against

#

that’ll be a comma separated list
still, I think it’d be nicer in the same line :p like ‘Paper (1.10, 1.12-1.15)’

pallid yoke
#

Yeah, agree

#

There's enough space

random badger
#

why in the v2 api version query, is it adding 9 to the project channel color?

barren shale
#

lol, good question

random badger
#

I removed it. Cause it wasn’t gonna work with it. But ore has it. So idk

barren shale
#

I'd guess just some compat measure to whatever they were doing before... or something?

pallid yoke
#

Kek

random badger
#

kenny, did you ever figure out your wsl issue?

cursive kraken
#

why in the v2 api version query, is it adding 9 to the project channel color?
@random badger ore is magic

random badger
#

well the sql queries certainly are.

#

some of those big ones? I just hope we don't have to change anything there

#

and that home_projects materialiezd view... yikes

cursive kraken
#

like the home view? :p

random badger
#

yeah

cursive kraken
#

Thats a funny one

random badger
#

who wrote that one

cursive kraken
#

Katrix

random badger
#

ugh, I get headaches thinking about the headaches I would get if I tried to

barren shale
#

yeah I set google dns for wsl and it worked again. the docker dev-db setup didn't (doesn't?) work, but I did a bit manually and got things working

cursive kraken
#

I'm getting headaches when touching anything in the backend cause I don't really know scala and those queries

random badger
#

I didn't know any scala before starting this, but i've ended up learning some just cause I had to read it

cursive kraken
#

But that's why i have a katrix on my side

mortal idol
#

i'm getting headaches because i hate when i have "unread messages" badge so i have to read this channel knowing nothing

cursive kraken
#

Actually there is still magic in Ore code but if you compare it to 2 years ago, it's clean code

#

Katrix likely rewrote 90% of the backend

#

Still those 10% are interesting and we all are sometimes suprised whats in there

pallid yoke
#

I mean, once you know your way around it, it's not that bad I guess, for reading at least. I wouldn't want to write much code in there, but reading most locations was fine. But then there were code snippets of like 5 lines were we sat in voice chat trying to understand wtf was going on

#

That was fun, lol

#

But I mean, we still managed to have everything running I guess, most stuff we do know is stuff ore doesn't have

random badger
#

ugh. kinda annoyed with the css setup here

#

need to switch a lot of this to use the boostrap helper classes instead of, say, changing all cards to be a thing

pallid yoke
#

Have you looked at ores Vue branch before? It that's better?

pallid yoke
#

Yeah

#

When I initially looked at ore, they said that branch isn't in a usable state, so I used the staging branch, but now that we are in a usable state and reworking frontend, there might be stuff we can learn from

random badger
#

on the right side will be plugin dependencies

pallid yoke
#

Is this like a fly out?

random badger
#

its a collapible secition on the version create page

pallid yoke
#

Ye, nice

#

I would maybe move the checkbox for the platform up to the button or smth, could also collapse the versions them

barren shale
#

I'd put the tag on the left next to the one checkbox, all of the version to its right then

#

makes it less blanky and more intuitive reading from left to right in a list

safe harbor
#

I'd love to see the version selector in kneny's style

random badger
barren shale
#

nice

random badger
#

someone needs to define the paper/waterfall colors

#

and velocity

barren shale
#

they don't really have any brand color, except for the exact same tone of blue with parts of the website 😂

random badger
#

right, that's why Im saying someone needs some colors

#

so they are easily differentiable

barren shale
#

pick a nice light blue, light green, and keep the cyan or whatever for velocity until there's others picked

#

I just don't want to see that yellow anymore smolMonkey

random badger
#

yes, I don't like it either

random badger
#

ok, what's the prettier print width we are settling on? cause even 120 is kinda getting annoying

pallid yoke
#

Heh, I don't mind having long lines

#

What's the width where github breaks lines?

random badger
#

really long... like I think minified files have really long lines

pallid yoke
#

Looking nice tho

#

Well I mean, how long can a line be without like scrolling and stuff

#

I mean, I don't really care, you can set it to 140 if you want

random badger
#

is there an issue with throwing a big ROUTES object on the window object globally?

#

so that all js can access various routes?

sly mason
#

ngl, at first, I thought mini was dumping screenshots

random badger
#

huh?

sly mason
#

idk why but the design/coloring of that had me thinking it was mini doing it

random badger
#

the checkboxes are still ugly af

#

idk how to make them better. maybe a darker background and then spacing between them?

sly mason
#

part of me wants to say a checkbox list

random badger
#

does checkbox list mean something other than a group of checkboxes?

sly mason
#

I tired brain gone, thinking like a box, with the items inside of it which is a list, where you can select the versions

random badger
#

Ok, bit of a conundrum here...

Is it even possible to get a client to make a sync http request and handle the redirect as it would with a response from a form submit?

#

Since so much more info is being provided to the publish version route, I switched it to json, but now am realizing that it won’t handle the redirect with errors appropriately now.

pallid yoke
#

is there an issue with throwing a big ROUTES object on the window object globally?
@random badger no, go ahead

#

I mean, it's what's happening right now anyways

#

And if payload is too big, we can still filter it down once we indentified that as a problem

#

Since so much more info is being provided to the publish version route, I switched it to json, but now am realizing that it won’t handle the redirect with errors appropriately now.
@random badger so you have a post, with a json body, and that returns a 200 or a 500 or smth, but with body instead of a 302 redirect?

#

Not sure am really following

random badger
#

ok, so axios, ajax don't handle 302 responses right?

#

only time 301/302 is handled by the browser is when it makes the request (like a form submission)

#

and so that's the only time the redirect w/alerts&errors will work

#

but you can't submit a form with json, it has to be that form type. which won't really work here

#

I might be missing something here...

#

but I don't see it

pallid yoke
#

I need to play with that myself

#

I'll soon be done with work, just finishing up a presentation for Monday

random badger
#

It should be almost done. Some formatting and I need to test it with an external url instead of a file.

#

I royally screwed up my sleep schedule yesterday cause I fell asleep at 1pm and woke up at 7pm. So I might randomly fall asleep at some point today.

pallid yoke
#

Take care man

random badger
#

man ok, why does this pattern

Pattern.compile("(?<=\\d-)\\d+$")

not match 1.13-14? it totally matches when I throw it into regexr.

#

(specifically match the 14 at the end)

pallid yoke
#

Try regex101 and test all the different regex engines it has

#

I don't remember which one java uses

random badger
#

doesn't work on the golang flavor. but it looks like that's just cause it doesnt have lookbehinds?

#
Pattern.compile("-\\d+").matcher("1.13-14")```
ok, this doesn't match either...
#

something is up with the hypen right? gotta be

pallid yoke
#

That regex will match -14

random badger
#

but that should get groups right?

pallid yoke
#

It should return -14 for group(0) I think

random badger
#

well its finding no matches. im logging the matches() method after, and its false

pallid yoke
#

You gotta call has match or smth first

#

Find actually

random badger
#

OH, yeah I seemed to have confused those two

pallid yoke
#

If(matcher.find)

#

Sout (matcher.group())

random badger
#

I read the description of matches, and thought that populated the groups

pallid yoke
random badger
#

when I commit the logic to format the version numbers, i think someone should see if there is a better way

#

probably wont be used all that often, idk many plugins that support like 1.8, 1.9 and then 1.11-16 or something

narrow verge
#

damn plugin is 50 years old

random badger
narrow verge
#

nice!

random badger
#

and on version creation, you associate each dependency for each platform with either an external link or a project on hangar.

now I need to auto complete those values initally with the last versions so you don't have to do that everytime you upload a version

random badger
#

k, yeah. so if you had a previous version (either the recommended version or the last uploaded if no recommended), itll auto fill in all the dependency and platform compatiblity info that the previous version had so you don't have to enter re-enter a bunch of stuff

pallid yoke
#

Really nice

#

Mmh, idk if overkill, but we could tag deps as auto generated to be able to detect if they got removed in the new version

random badger
#

I mean you can get a diff of dependencies by just comparing the two versions in the database

gleaming sinew
#

Lmao why use vue when you can create a custom system xD. A huge community and the most popular minecraft server software using vue smh.

#

Oh also, where do you use jquery? I'll swap that out for babel-compat es6 for you.

random badger
#

lol what?

gleaming sinew
#

Sry I hate jQuery

random badger
#

yeah, getting rid of it is on our eventual to-do list

gleaming sinew
#

And all websites that use it. It is just >500kb or uselessness.

#

You should also note that sanitising strings on the front end is bad practice and as bad as not sanitising strings at all.

random badger
#

are we doing that?

gleaming sinew
#

Yes.

random badger
#

oh yeah, that

gleaming sinew
#

Assuming that the frontend is in the client folder...

random badger
#

like 95% of the JS is taken directly from what ore had. none of us have even touched it yet*

gleaming sinew
#

Oh ok. BTW I'm submitting a ton of seperate PRs as my pc setup is dead rn sry for the inconvenience.

random badger
#

what r u doing prs on then? 😆 pls dont say a phone 🙂

gleaming sinew
#

Yea.

random badger
#

really? dang. that just seems like a massive pain

gleaming sinew
#

Yeah it's fine though. It's only temporary while I setup my wifi network.

#

It's not that painful if you do minor things like merge functions to call others rather than duping code.

random badger
#

why don't you like vue tho, that was more of what my lol what was referring to?

gleaming sinew
#

I actually don't mind Vue as much, I just personally prefer doing good old having one template and elements in seperate HTML files, that is dynamically loaded in scripts you make yourself as vue has a lot of stuff you don't need for most projects.

#

That's where my Nasixjs was going until I gave up on it.

random badger
#

we are only using vue for maybe 10% of the frontend. mainly various forms that are pretty dynamic, and a few lists

gleaming sinew
#

Also what CDN are you using? It matters at this stage, for example you need cf-async tags for cloudflare etc. Plus you can save time on middleware depending on your cdn as well.

OH and also 🖕Sponge Ore code. (and even more hate for spigotmc Xenforo site)

random badger
#

Also what CDN are you using?
for libraries? (vue, etc)

and yeah, I knew practically nothing about scala. was a pain initially to figure out how to read it. ive never used a functional language.

gleaming sinew
#

for libraries? (vue, etc)

and yeah, I knew practically nothing about scala. was a pain initially to figure out how to read it. ive never used a functional language.
@random badger No for the website. Like all the assets. Not like Jsdelivr or CDNJS. For the pages, for the resource downloads etc.

#

It's kinda sad for me that your not using a server less system as well. (cloud functions)
I also have no experience in Java except my epic spigot plugin skids. And I also know Java is extremely not Scaleable which is kinda sad for you. Imagine if the whole of Netflix was built in Java. ⭕

#

(updated answer of your for libraries question as well)

random badger
#

oh, yeah idk. you'd have to ask mini about that. he's hosting this on his vps. everything is on there atm

#

(which is not where itll be in the end)

gleaming sinew
#

@pallid yoke You ever considered using a serverless system (cloud functions, cf workers etc.)? Even for some things it would up your scale ability a sh*t ton.

random badger
#

he's eu, so you prob won't get a response for a bit.

gleaming sinew
#

Oh yea, OK.

random badger
#

and the choice to use Java/Spring was mainly cause everyone in here presumably knows java. and Minidigger uses Spring for his work (big insurance company in germany iirc)

narrow verge
#

geico germany of course /s

random badger
#

also, java is a tad easier to port to from scala

#

and the play template format is remarkably similar to freemarker

gleaming sinew
#

Also has this org ever considered making something from the ground up (no forking allowed xD)? I surpose it is your fork that makes you famous thonk

random badger
#

you mean paper breaking off from spigot? yeah, that has been discussed in detail.

#

one of the steps in that process, is getting hangar up and running

gleaming sinew
#

No just making something new. No forks.

#

Even a new concept xD?

narrow verge
#

We have a ton of non-fork projects

gleaming sinew
#

Yeah ik it's just a meme from some of the anticheat communities.

narrow verge
#

ah i expect nothing better from there

gleaming sinew
#

Lmao.

#

Especially now their all skids of each other xD.

#

Damn I can't even read...

The function you replaced does .html(), the one you removed had .val(), these are 2 separate functions.
#760946492483043342

narrow verge
#

Yeah I worded that horribly

#

But yeah, exact same except for last function

random badger
#

ok, so now im working on when you create a version with an external url

now with fancy invalid messaging

gleaming sinew
#

Nice.

random badger
#

its this where vue makes things very nice

#

like, the version creation form is probably the most complex one we got

gleaming sinew
#

Potentially restyle the drop down so it's more obvious that it's a drop down

#

like, the version creation form is probably the most complex one we got
@random badger oh ok.

random badger
#

well, if you don't select it, itll auto open when you try to publish and put that red border around the whole thing

#

but yeah, can put a caret or something

gleaming sinew
#

Yeah but it looks like a button rn that's all.

random badger
#

well that's how bootstrap does collapses... buttons or btn-links .

gleaming sinew
#

Not in Material Design Bootstrap or Bootstrap 5 (not sure about bootstrap 5 but I think...)

random badger
#

basically what ive been going off

#

this is far from material design. if we were writing all of the templates, etc from scratch, I would've prefered to use materialize

#

but it'd be a massive project to switch since its all written already

gleaming sinew
random badger
#

wait, did 5 get fully released?

#

I thought that didnt happen yet

gleaming sinew
#

wait, did 5 get fully released?
@random badger nah it's beta but I haven't noticed many issues.

#

Whens your release date.

random badger
#

I don't think there's anything set in stone

gleaming sinew
#

It might be out by then...

random badger
#

I don't think there are many things that changed in v5 that would be annoying to fix. like a week ago, I ported it to v4 from v3, and that was certainly more of a pain

gleaming sinew
#

It's based on 4 but there's a 5 beta for this as well.

random badger
#

yeah, im down for doing that. want to hear what the others say.

#

but I don't think we are yet at a point where styling is as big a concern as functionality. still a good bit on the to do section of the release gh project.

#

going more material design would match better with papermc.io

#

ok, im just realizing that the decription text input on version creation is useless? the description column in the db is filled by the markdown for that version

barren shale
#

can you send a screenshot of the entire visible page around the platform version selector? want to comment on style :p

random badger
gleaming sinew
#

Is it expected to upload your code to your fork during dev or only before submitting PR?

random badger
gleaming sinew
#

Sry I'm planning on starting helping out with some of the styling etc once my isp has sorted my internet out.

sly mason
#

literally doesn't matter

gleaming sinew
#

Thanks.

sly mason
#

if you wanna commit/push often, you can; the PR will show the diff between the repo and your changes in one batch

barren shale
#

looks nice 😛 maybe only background colors, but I’ll have to look at those on pc. just to the “manage..” header; it kinda looks like a clickable button

#

or is it one?

random badger
#

it is

barren shale
#

oh okay, good

random badger
#

for some reason it doesn't close that section tho.

#

idk why

barren shale
#

😂

random badger
#

still looking for that mythical plugin that has dependencies for all three platforms

#

I could fake it, by making a jar with just the three config files in it I guess

barren shale
#

you can just add a depend to the Maintenance bungee.yml

#

but uh I think it should actually have SLP as soft?

random badger
#

oh.. its cause its softDepends instead of soft-depends

#

like plugin.yml

#

glad I caught that now

random badger
#

why did they change the format...

barren shale
#

because md69 is big brain

gleaming sinew
random badger
#

does it have dependencies?

#

like ones it mentions in the various config files

#

wheres the documentation on bungee.yml?

barren shale
#

Spigot, just google Bungee Tutorial and you’ll find it (because Spigots nav itself sucks)

gleaming sinew
#

On its github...

barren shale
#

no it’s not?

gleaming sinew
#

It's file.

random badger
#

yeah, sure enough. its softDepend

#

cause you can't have a field named soft-depend I guess

#

well wait, its softdepend for bukkit right?

barren shale
#

just because he wanted magic generation for his 5 fields

#

I think so

random badger
#

you can have a field named that

barren shale
#

¯_(ツ)_/¯

random badger
#

so... ya, who knows what the thinking was there

barren shale
#

probably... not at all

random badger
#

plugin.yml has a contributors section?

barren shale
#

newly added

random badger
#

class-loader-of

#

what's that one do?

barren shale
#

I would guess sharing it with another plugin

random badger
#

javadocs says unused

#

🤷

barren shale
barren shale
random badger
gleaming sinew
barren shale
random badger
random badger
barren shale
pallid yoke
#

@pallid yoke You ever considered using a serverless system (cloud functions, cf workers etc.)? Even for some things it would up your scale ability a sh*t ton.
@gleaming sinew see, I do drink a bunch. But even am not drunk enough to ever consider this

#

This project consists of tens of thousands of lines of java code, everything is full of state

#

Also we have server sided logging everywhere for tons of stuff

#

Am not really concerned about scale at all, we can just let CloudFlare cache all assets and make spring cache DB queries where needed and we will be plenty fast and can serve tens of thousands of requests easily

pallid yoke
#

@machine, hit me up when it's ready to test, I have a couple of hours today till I need to go to the next birthday, lol

random badger
#

its ready

#

I tested it with several plugins with varying platforms/dependencies

#

one thing that doesn't work in the channel creation, but that hasn't worked for a bit and doesn't have anything to do with this

#

there's another issue open for that

pallid yoke
#

Was about to ask

#

We also broke gitlab mirroring it seems

#

I got a mail

#

Lemme look at that first, then your branch

random badger
#

really? its running the tests on my pr

pallid yoke
#

ah its paused for auth

#

somebody nasty did a force push and I havent disabled protected branches 😄

#

ran now

#

Deploying 'Compose: docker'... Failed to deploy 'Compose: docker': Sorry but parent: com.intellij.execution.impl.ConsoleViewImpl[,0,0,2341x326,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] has already been disposed (see the cause for stacktrace) so the child: com.intellij.util.Alarm@21cb7aeb will never be disposed

#

you what intellij?

#

best thing, it start started, lol

random badger
#

lol wat

pallid yoke
#

I see commented out code

#

oh you fixed

random badger
#

yeah, forgot about the big bits of commented out stuff

pallid yoke
#

oh god

#

that creates the ranges?

random badger
#

its for making 1.8, 1.9, 1.11, 1.13, 1.14, 1.15 into 1.8-9, 1.11, 1.13-15

pallid yoke
#

yeah, thats what I meant

#

idk, I wanna reserve the "parser" brain capacity today to rewrite minimessage, maybe we can change that later

#

but its fine for now

random badger
#

I wrote unit tests for it 🙂

pallid yoke
#

this is something that can easily be tested with unit tests

#

oh nice

#

but thats about it

random badger
#

I had it store the formatted string in the database as well. so it really only runs once

#

(per set of versions)

pallid yoke
#

yeah dont bother then

random badger
pallid yoke
#

mmh, we kinda need to tell them that they can either use a file or an url

random badger
#

the verison creation screen doesnt do that?

#

its got an select file and a enter url

pallid yoke
#

yeah, but its not clear that its an OR

random badger
#

ahh

#

put a big ----OR---- in the middle

pallid yoke
#

I have an idea, lemme play with it

proud basalt
#

err

#

why 1.8, 1.9 goes to 1.8-9 @random badger? that is just going to cause confusion

#

should be 1.8-1.9

random badger
#

yeah kenny poinyed that out.

proud basalt
#

on github I guess? don't see him here

random badger
#

in vc

#

earlier

proud basalt
#

ah ok

pallid yoke
thorny bane
#

That looks pretty clear and good to me

barren shale
#

yeah that looks good

random badger
#

probably make the buttons primary color

#

that color is ... idk its something

pallid yoke
#

its your color 😛

random badger
#

I set that color?

#

yikes

pallid yoke
#

you use way too much jquery in that vue component for my liking, lol

#

its rather hard to understand

random badger
#

yeah, there are probably lots of places document.getElementById will work fine

pallid yoke
#

I normally control how the template renders via just variables

#

oh wait, this is also stuff loaded from the outside?

random badger
#

what stuff?

pallid yoke
random badger
#

its not supposed to

#

you are supposed to be able to change files

#

at least thats how it was before

pallid yoke
#

uuh

#

lemme change the text then

#

yeah am happy with it now

random badger
#

oh wait, this is also stuff loaded from the outside?
wdym by this?

pallid yoke
#

I was confused

#

about where the green thingy comes from when you upload a file

random badger
#

ah

#

did you run into any problems

pallid yoke
#

nah, everything is working great, importing of last deps and stuff

#

ill merge now

random badger
#

nice

pallid yoke
#

we still wanna give that dropdown a bit of design ferry dust, as one of my coworkers always says, but that can wait

random badger
#

design fairy dust?

#

yeah. im also not sure how the dropdown will handle like 25 projects with the same name

#

I think I gave it a max height

pallid yoke
#

fairy, ye

barren shale
#

@random badger basically just as you can do it in GH

#

obviously not from a project you own

random badger
#

Right, but why?

#

I understand the functionality, but not the reason why it needs to exist

barren shale
#

privacy 🤷‍♀️

#

not wanting to be annoyed by people with certain bigger projects

random badger
#

is there a reason the DataValue class doesn't use generics?

pallid yoke
#

Ore didn't

#

Iirc

random badger
#

oh I didnt realize that was a direct from ore thing

pallid yoke
#

That's the thing for plugin.yml detection, right?

random badger
#

yeah

#

just seems simpler to have DataValue<T> rather than an abstract DataValue thats extended for each needed type

pallid yoke
#

Pretty sure I just mirrored ore

#

Feel free to refactor

random badger
#

we have to think about how we are gonna do localization on the frontend

#

maybe another big object added to window that contains all messages?

gleaming sinew
#

Google Translate SDK?

pallid yoke
#

No, lol

#

How big is the current translation file?

random badger
#

theres a bunch that aren't even used as well

pallid yoke
#

Is that small enough to be loaded?

#

Else we would need to split for windows I guess

random badger
#

26 kb atm

pallid yoke
#

But yeah, just like routes, just shove everything in for now

#

Can always optimize later

gleaming sinew
#

Welp if your manually translating how will you translate resource descriptions?

barren shale
#

we don't

mossy topaz
#

Machine Maker - you probably already know this and have an implementation that reflects it, but I just wanted to be sure: bungee plugins can use plugin.yml too, confusingly

pallid yoke
#

System just tried to auto detect

#

If it's wrong, you can override

random badger
#

actually you can't override

#

if you use a file, its locked

mossy topaz
#

don't worry, I personally never use plugin.yml for bungee plugins

random badger
#

is there any way to differentiate a bungee plugin.yml from a bukkit plugin.yml?

barren shale
#

no

#

at least not in a non-hacky way

random badger
#

ya, could get the main, then to go that class and see if its bungee

#

or well, would that work?

#

ugh, not gonna think about this now

#

that's really annoying

mossy topaz
#

i guess that would work but you'd need to read java bytecode, no?

untold idol
#

doesn't bungee use bungee.yml?

random badger
#

yeah, OR a plugin.yml

#

so you could have a waterfall-only plugin, and its gonna think its a bukkit one

mossy topaz
#

yep

random badger
#

ok, so there's gonna be a special button for this

#

its gonna think its paper, but then you can click this button and magically, itll transfer everything to waterfall

pallid yoke
#

That sounds good

random badger
#

people don't double up right?

#

have a bukkit/bungee that uses the same plugin.yml

mossy topaz
#

not possible

random badger
#

its one or the other?

pallid yoke
#

You can't have the same main class for bungee and bukkit

mossy topaz
#

you can only extend 1 class, and one API won't be on the classpath

pallid yoke
#

So you can't share plugin.yml

#

Which is why bungee.yml exists

random badger
#

right. and the .ymls have to be in the top directory?

pallid yoke
#

Yes

random badger
#

ok. good yeah, so that button should cover everything

#

annoying, but at least its a simple fix

random badger
#

that old table was way to big

pallid yoke
#

Be careful to also check smaller screens

random badger
#

its all flex

pallid yoke
#

Wat

#

Am just not a fan of buzzword bullshit bingo

#

Cool

#

It's shit, I wrote ton of it

#

Lol

#

But it runs and it's maintainable, so who cares

#

Heck, we even have a hand full unit tests 😂

#

I do use sonarlint locally

#

Sonarlint doesn't make you write clean code

#

It is able to pick up common bugs and issues and stuff, but it can't see the big picture

#

We use eslint with prettier

#

Idk what you on about

random badger
pallid yoke
#

Could use a few margins on the checkboxes and under the channel thing, but layout looks nice

#

I mean, it would be cool if the input labels had the same length so that the input text is aligned

random badger
#

who's gonna upload a version on a screen that small?

modest forge
#

"microservices are the f u t u r e"

random badger
soft hornet
#

I personally think the center alignment of those fields is visually frustrating

random badger
#

actually, only the smallest one has center alignment

#

the others just take up the full screen

#

oh wait, the medium one channel input is also center aligned

modest forge
#

On medium and large, imo unstable and recommended should be on the same line as the channel (since they're related to the status/stability of the version) and forum post should be visually separated (maybe under the text box and without the field layout)?

random badger
#

why does forum post need to be separated?

#

(ill also make the bg the channel color)

modest forge
#

It's distinct from the actual status of the version; unlike the others it only controls the announcement of the version

random badger
#

maybe it should be right next to the publish button

#

as a final thing

modest forge
#

That could work

#

Or between the release notes and publish button

pallid yoke
#

I still want a 5 or 10px left margin on the checkbox, it's too close to the label ^^

random badger
#

right

pallid yoke
#

And I think I kinda agree with mbax, it doesn't look as tidy I would say

random badger
#

really? on the large size (which is really xl) everything on two rows looks nice to me

pallid yoke
#

Idk, I think it's that nothing is aligned which makes me feel that way

#

Idk, I need to get some sleep, I'll give it a closer look tomorrow

modest forge
#

Maybe if you move forums post, make the outer container of channel/unstable/recommended the same width as the row above, then make channel stretch to fill that row

random badger
#

@gleaming sinew narrow that issue down to just creating a gh action for deployment. the other stuff already have issues open for them.

#

we don't want to get into too much stuff specific to one repo hosting site. some people use gitlab, bit bucket, and we aren't gonna implement stuff for each of them.
its much simpler to just provide a link to wherever the source is hosted.

barren shale
sly mason
#

That was my fear too, basically the whole OTT integration against gh

#

Not to mention, stuff like auto-syncing stuff like readme's requires a way to know when it changed, the webhooks will cover commits, etc, already, but, no idea how clean it would be to actually pull those files without cross coupling there, which would be wanted across the board

barren shale
#

as for actions/dev builds, we wouldn't want to spam version releases (with or without notifications) anyways, so those should be set as a static link to like jenkins, done manually, or with gh pre releases

barren shale
random badger
#

the pages are already markdown?

misty mountain
#

it supports only markdown

#

that modal seems to just be bb -> md

#

rst?

#

mooost likely unsupported for hangar

#

nobody willingly uses that anyways

mellow pebble
#

Mini your Building doc sux

sly mason
#

wrong

#

Mini, u suk

pallid yoke
#

chances are they are not even written by me, pretty sure I didnt add the auth stuff 😄

#

but if you have sisues we might be able to assist

random badger
#

yeah, I did the auth stuff

#

and it was complicated

mellow pebble
#

Na apparently its docker on wsl2 thats bad :C

random badger
#

kenny was having some issues w/that iirc

sly mason
#

it's one of those "it works, but when it breaks, GLHF"

random badger
#

the docker setup can probably be made to be a bit simpler to setup, now that you can just use the image from gitlab, the one in the deployment/docker-compose.yml

modest forge
#

I got it working ages ago but all the docker stuff has changed since then

#

probably gonna do a fresh clone lol

random badger
#

yeah atm, just make sure HangarAuth and Hangar are siblings in your file system.

ebon adder
#

May be a bit late to mention this, but you guys definitely should have used Nuxt for this instead of standalone Vue.

pallid yoke
#

not really

#

this is mostly server rendered via freemarker

#

and we inherited the frontend, we didnt write it from scratch

ebon adder
#

How do I run it?

barren shale
ebon adder
#

The README just mentions building

modest forge
#

docker-compose up -d builds the services and then runs them

ebon adder
#

Cheers!

#

Gosh this command takes a while

narrow verge
#

-bash: dockor-compose: command not found re

#

nvm it's a different package

#
ERROR: 
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml```
oh well
ebon adder
#

How does one get around "CSRF verification failed. Request aborted."?

narrow verge
#

are your cookies enabled

ebon adder
#

You mean on my browser?

narrow verge
#

ye

ebon adder
#

Yeah

narrow verge
#

usually i get that when my cookies arent enabled for whatever reason

ebon adder
#

Weird, works on Firefox

sly mason
#

some browsers are more strict on cross site stuff

#

It all boils down to "why did it fail", generally down to headers, etc

pallid yoke
#

We handle csrf tho

#

Spring writes a token into the window object and we then tell axios or jQuery to use it

narrow verge
#

is that a cookie or?

pallid yoke
#

Nah, a header

narrow verge
#

ah

ebon adder
#

How can I login? I tried to create an account but the email didn't come through to either my local mailbox or Spam on Gmail

pallid yoke
#

On local?

ebon adder
#

Yeah

narrow verge
#

im only familiar with rails, which stores the crsf as a post param i think and compares it to one of your cookies i believe?

#

also signing up probably wont work since you need mail server?

pallid yoke
#

I don't know the port, but there is an application you access in your browser to receive the mail

ebon adder
#

Oh right

pallid yoke
#

Check the compose file for the mail thingy it should mention the port

#

It's a "fake" mail server

narrow verge
#

tried to run docker-compose and got a massive stack trace, gg

main lava
#

ensure you have docker.app running

#

docker-compose used to warn that you probably don't have it running - now it just throws good old No such file or directory error with 2km long stack trace

pallid yoke
#

Just MacOS things

sly mason
#

Honestly, I just use VMs for docker

main lava
#

yeah docker on mac does not also send out network events

#

total dumpster fire

pallid yoke
#

I do too, wsl2 is Default backend

sly mason
#

The issue that docker needs a linux OS to run, so literally all solutions for it involve a VM of some sort; There's macOS's native hypervisor which pretty much nobody uses, and vbox which is what was used to be used, I think you can still get it to use that with docker-machine, but, the entire experience is kinda bleh

ebon adder
#

I think Hangar is looking pretty good! Quite a few things I would've done differently personally, but yeah, pretty decent!

random badger
#

yeah, for email verification, I usually just set the db entry to verified

narrow verge
#

galaxy brain

random badger
#

@ebon adder what would you have done differently?

ebon adder
#

Headless backend

#

Nuxt handling all of the frontend, no jQuery, definitely not bootstrap

#

Less frontend dependencies too, lots of the things can be quite easily made with component based development (Vue ofc)

misty mountain
#

Do keep in mind that Hangar is open source, so you're free to contribute those changes ^^

ebon adder
#

So much has been done using the current route, I think it would be:

  1. Almost insulting to strip so much of it
  2. Take a lot of work and time, of which I don't have really, only the weekends
  3. In a way, pointless, it might improve the UX and design of the end product but what's planned is still going to be more than enough either way
untold idol
#

gonna pr blockchain

modest forge
#

Headless backend is redundant, you can just run it in the background, no need to add a daemon into Hangar itself

#

Hangar's frontend is largely ported from Ore; we're working on replacing the outdated jQuery stuff with Vue, but it takes time

ebon adder
#

Headless backend allows for the entire frontend to be rendered using JavaScript which has huge benefits. - Perhaps you shouldn't have forked Ore?

modest forge
#

I don't think "headless" means what you think it means

#

MVC is fine, there's no real reason for us to reinvent the wheel and go REST-only

barren shale
#

^ pretty much

ebon adder
#

Headless backend is a backend that doesn't serve HTML?

random badger
#

headless cms maybe is a better term for that?

ebon adder
#

Well it doesn't have to be a CMS but yeah

modest forge
#

Either way, the point still stands - there's little to gain from a REST-only backend approach

ebon adder
#

Except from component based frontend development being incredibly, incredibly easy to use, powerful and efficient... and also the noticeable site-wide performance and UX benefits.

sly mason
#

I think part of the idea is to create a tool with stuff people are already familiar with vs shifting the entire design paradime over to something which people aren't too familiar with

#

Then again, I woulda done rest backend and PHP frontend, so, you know

#

runs

modest forge
#

Mini literally does this type of setup in his day job

#

Plus there have been countless attempts to do this from scratch (including two ditched versions of Hangar), and Ore is the only one that has gained enough traction to actually be feature-complete

#

Basing off Ore is imo more sensible than trying to do this entirely from scratch

sly mason
#

Yea, being able to get something out using a tech stack proven to work vs spending time tryna learn a new design set for the sake of being "modern", if it becomes an issue and we gotta switch it up, it's easier to do that having something which works and can sit there working vs the race to get something out in general while tryna learn a new system

soft hornet
#

Orrrrrrrr, Paper could take the Sponge strategy and do another from-scratch re-write in a language like one person knows and spend a few bonus years getting there! 🙂

sly mason
#

Hey

#

I do think they shoulda used Kotlin

mortal idol
#

Hi!

sly mason
#

Then again, maybe that's a bit too popular of a language

modest forge
#

hmm yes which obscure non-java framework should we pick? I vote weber

misty mountain
#

sadly kotlin does not fit those criteria, a whopping 7 people know kotlin

narrow verge
#

going to rewrite Hangar in Rails

modest forge
#

too popular

#

gotta be edgy

narrow verge
#

Ti-Basic?

modest forge
#

rewrite it using CF workers like someone suggested the other day

soft hornet
#

You're thinking the wrong CF

#

Rewrite in ColdFusion please

pallid yoke
#

Nuxt is really bad for SEO

#

Unless you server render

#

Then you aren't headless anymore

ebon adder
#

Nuxt has all the benefits of headless, and it always server renders, that's basically the whole point of it

#

What gets rendered server side "hydrates" client side and it's as if it was never rendered on the server

pallid yoke
#

It wouldn't integrate as nicely into the db as our templates do right now

#

Also, if we would have not forked ore, we would never be done

#

This is a giant project

random badger
#

Mini, did you get a chance to pull my channel pr? I really cannot figure out why this one thing isn't working on the channel list page

#

for some reason, its not updating the channel name (via a v-model binding)

pallid yoke
#

Nah, spend all day on dyescape stuff

random badger
#

ah ok, I just saw you on intellij, wasn't sure what

pallid yoke
#

Gonna have a full day of meetings tomorrow, hopefully I still got the mental capacity to look at stuff after that

#

I was balls deep in collision code today, really no fun

random badger
#

ok, I was stupid...

#

I just fixed it

#

man, apparently all I needed was to just look at it after sleeping, and I got it in a second. funny how I spent like 30 mins trying yesterday, but now I got it.

pallid yoke
#

That happens so often to me

#

When I get stuck somewhere, I just gonna run around the house for a few minutes and come back and it often helps

#

Or get some ice cream from across the street

random badger
#

yeah, I guess that means taking breaks, even short ones, is a really good idea. I prob don't do that enough

pallid yoke
#

Neither do I

#

I just take long sleep breaks ^^

#

Gn8

random badger
#

hmm, can't figure out how to get jackson to send a string for offsetdatetime instead of 1601790864.543927 whatever this is

#

what kind of timestamp is that? I don't recognize it

stiff token
#

MM not getting enough sleep?

$ date -d '@1601790864.543927'
Sun Oct  4 07:54:24 AM CEST 2020

This is regular current date UNIX timestamp.

random badger
#

oh ok, I haven't done much with times, im used to seeing the ISO 8601 string format

random badger
#

should the main project view be moved to a vue component? there is a bunch of JS relating to the page editor, the promoted versions, member list, star count, watcher count, and a bunch more

random badger
#

trying it out, and it seems to work pretty well. just a simple $t('key.for.message')

narrow verge
#

oh i18n? rails has something similar like that

random badger
#

k, got rid if all the jquery in the Editor component

#

wayyyyy simpler now yikes

cinder silo
#

Are you guys de-jquerying hangar?

random badger
#

slowly

leaden moss
#

Hey Machine Maker, do you manage the Vanilla Tweaks plugin version? Had a question about the Wandering Traders component

#

Ahh nevermind I got ahold of jmp, he's the other dev in question

random badger
pallid yoke
#

Issue with making that is Vue that it makes it harder to read for Google

#

But we can make fallback content I guess

#

Ah ye, vue-i18n is nice, use it at work

misty mountain
#

you could use the meta tags per page to help google along?

pallid yoke
#

That too, but they still love actual html

misty mountain
#

definitely, but whatever creates the best experience for all sure oughtta be good enough?

pallid yoke
#

Haha you clearly never worked with google

#

We want to be higher ranked than other sites

#

When you Google essentials download, hangar needs to come up first

misty mountain
#

i indeed have not, all i do is serve birbs!

random badger
#

yeah Mini, we could def have the rendered markdown page be still in the template

#

that'd be the majority of the info we'd still want google to be able to see easily right?

#

the promoted versions card was already done via javascript and the pages / member list? those that important for google to see?

pallid yoke
#

Yeah

random badger
#

yeah, they are important to see? or yeah to my first bit

pallid yoke
#

Content is the most important

sly mason
#

But, gotta make the whole UI rest powered

pallid yoke
#

There's some ajax setup we call

#

Which has csrf token stuff

#

Check other entry points I guess

random badger
#

Yeah @barren shale you’re gonna wanna call $.ajaxSetup(window.ajaxSettings); so it adds the csrf header

pallid yoke
#

Ah

#

Yeah, if that works sure

#

All the security

rapid turtle
#

What is hangar?

#

Please explain to me what is hangar

#

@whole briar

#

report

#

admin

safe harbor
#

Check the pins

#

No need to troll in here

rapid turtle
#

admin we need help

safe harbor
#

<@&748618676189528155>

rapid turtle
#

@rapid turtle where you from?
@whole briar From germany

mossy topaz
#

there it is

#

no, i thought we were finally getting the mod team

rapid turtle
#

Why are yoi trolling me A248

misty mountain
#

?ban @whole briar troll

azure boltBOT
#

dynoSuccess OmaMitRollator#7585 was banned | troll

pallid yoke
#

mfw

#

I was writing a proper msg

misty mountain
#

lol

#

wasting time on trolls

misty mountain
#

someone should edit that to be discord-specific

rapid turtle
#

OmaMitRollator just wrote me that he wants to come back with a different profile and provoke.

misty mountain
#

we'll handle it as it happens

#

takes him a couple minutes to waste 10 of our seconds

safe harbor
#

10 at least before they can type lol

random badger
#

gonna wait for you to take a look at the new vue components tmrw before merging Mini, so you can decide if we need to add more fallback content or not

narrow verge
#

irc isnt here

#

ddg! !github PaperMC/Hangar

covert shoreBOT
#

GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.

rapid turtle
#

Sorry but Imma Crip is lost

#

Imma Crip was OmaMitRollator

waxen rivet
#

Is hangar an api like spigot?

safe harbor
#

No, it's a resource repository

narrow verge
waxen rivet
#

So i have to use it with paper?

#

Because i wanted to switch to paper on my mc server

safe harbor
#

That is totally unrelated

#

Hangar is nothing you can ""use"" on your server

waxen rivet
#

ok sorry but im new to that paper stuff

#

I always used spigot

#

So what is hangar then used for?

#

I understand that is a resource repository but like for what

safe harbor
#

For... resources?

waxen rivet
#

Yea but what can i do with it

safe harbor
#

Downloading plugins, publishing your own plugins etc
Since it's based on Ore, you have generally more possibilities than using spigot's XF resource plugin

waxen rivet
#

So i dont need it for my server

safe harbor
#

No

waxen rivet
#

Ok thank you rlly much

pallid yoke
#

gonna wait for you to take a look at the new vue components tmrw before merging Mini, so you can decide if we need to add more fallback content or not
will do

random badger
#

there a reason the show staff page is restricted to people who are actually staff?

#

that's how its setup on ore

pallid yoke
#

uuhm

#

mmmh

random badger
#

top quality feedback ^ 😛

#

tho its like what, 3 am for you?

pallid yoke
#

2:34

#

am sorry 😄

#

see, I was gonna open ore to check

#

but then I got distracted

#

but yeah, dont see why we should restrict it

random badger
#

yeah, im looking at the show staff route in ore rn

#

it checks if they have the IsStaff permission

hallow ore
#

Hey, Hangar looks like a great project, but I was wondering if it's going to have an API so we can push updates automatically from CI/CD solutions like GitHub actions, thanks! 🙂

random badger
#

yes, there is an api for things like that

hallow ore
#

Ooooh nice, I’m hyped then.

#

That was lacking for Spigot I had to write my own client that uses Cloudflare bypass stuff it’s a mess

#

Probably not for their API

#

Or at least not as a « under attack » mode like Spigot

gusty birch
#

@gleaming sinew https://i.imgur.com/3MzAzFT.png most likely CF. I have reading this channel for a while and am wondering why @gleaming sinew are so worried about scaling hangar? Spigot can keep up with all there traffic using XenForo why can't hangar do the same with java?

stiff token
#

AFAIK Hangar will be behind CF, but won't have the CF captcha protection for API, which would be stupid.

sly mason
#

Well, the design does have performance constraints

#

But, are those constraints going to be an issue for us? probably not

gusty birch
#

Yeah that was my thinking too. I mean sure you could outgrow the performance you are getting java but for now and I presuming the foreseeable future its not a concern

#

There is also the ability (assuming the java app is doesn't have state in it) to just run multiple instances of hangar with traefik load balancing between them

stiff token
#

Hangar has a lot of state iirc.

pallid yoke
#

If one instance isn't enough, we will start a second one, lol

#

Replicating state is easy

#

And im not sure we even have state outside of the DB

sly mason
#

I mean, depending on what the state stuff is, I'd rather consider looking to work out it

random badger
#

theres the pending version cache thing? that counts right?

sly mason
#

pending version cache?

gusty birch
#

And im not sure we even have state outside of the DB thats what I assumed

#

If its only in the DB then starting another instances is easy

pallid yoke
#

I run spring clusters at work with tons of state without persistence, just gonna use infinispan to replicate state in my cluster and it's not an issue

#

Yeah I guess MM, but ideally we would have sticky sessions so you would always land on the same instance

random badger
#

right yeah, that wouldn't be an issue then

sly mason
#

So, basically, redis but not redis thonk

pallid yoke
#

Idk, I wouldn't worry about that for now, once we got a beta and see how we hold up with a couple of thousands requests per minute or smth we can see what we can do

sly mason
#

(Can we please make comparing stuff to redis a hobby?)

#

Or even mongo

pallid yoke
#

If we let CF cache the statics that will at least make the thread pools happy

sly mason
#

Like, other day, I walked into a room and

pallid yoke
#

Infinispan is distributed tho

#

So it's p2p redis

#
  • runs *
#

It's a cool tool tho, basically you just configure it, tell it to look for other containers with the same label and it will build a cluster and replicate your spring caches

gusty birch
#

So it sounds like scale isn't going to be a problem. I image Spoonge is doing just fine

sly mason
#

We're not expecting it to be an issue

#

I mean, I've never done enterprise web dev, but, I've worked with this stuff enough to not have a massive concern about scaling at this point

random badger
#

I mean...we might have issues when hangar knocks google off the #1 spot on the alexa rankings, but that wont happen for.... a few months still 🙂

sly mason
#

unless they went full... bad word... with it, scaling up is almost trivial these days

gusty birch
#

I mean atleast with CF you get free downtime when there network gets knocked offline

pallid yoke
#

So it sounds like scale isn't going to be a problem. I image Spoonge is doing just fine
@gusty birch I mean, I expect to get more traffic than sponge tho, lol

gusty birch
#

Very true but I would still assume they still have alot of headroom left for traffic growth

pallid yoke
#

Yeah

gusty birch
pallid yoke
#

Delete node folder an try again 🤷‍♂️

gusty birch
#

Ah got it. Was a problem with the frontend folder permissions

modest forge
barren shale
#

eeeeeeeee

modest forge
#

oooo eeee oooo aaa aaa

gusty birch
#

Oh also @gleaming sinew Netflix has a large chunk of java software https://github.com/Netflix?language=java Zuul which is a major part of Netflix is in java

GitHub

Netflix Open Source Platform. Netflix, Inc. has 186 repositories available. Follow their code on GitHub.

pallid yoke
#

Netflix are fan of reactive java

#

Really funky code

gusty birch
#

Never really looked to deep into there code

pallid yoke
#

Wat

#

No Scala

#

Don't get my nightmare rolling again

#

Again, stop worrying about scale, lol

#

I serve hundret of thousands of customers a day with normal spring boot containers on dum VPSes

#

This is literally my job, and I like to think that am good at it

untold idol
#

no no mini

#

you have to use a webscale programming language

#

start over!

#

this time in x69 assembler

#

it's the only way to scale!