Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
what build system
intern manually running tasks by hand
some gigantic proprietary system that only runs on windows
random link to github project with no commit in 3 years
goku
View Results
 
  • Post
  • Reply
Shaggar
Apr 26, 2006
maven hatred boils down to 2 groups:
1) Im too loving stupid to understand xml
2) Im too loving stupid to understand software development

everyone in group 1 is also in group 2

Adbot
ADBOT LOVES YOU

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
If there are never emergent needs then why does Maven even provide a plugin api and why have plugins been created for it, huh genius

Progressive JPEG
Feb 19, 2003

Shaggar posted:

lol this guy is dumb as gently caress

don’t self introduce your posts

Progressive JPEG
Feb 19, 2003

I like cargo itself but crates.io is very bad

- any docs you include in your crates should just be a stub linking to your main docs site because even the readme for a given release can’t be changed after it’s published
- binding package ownership to individual github logins is bullshit
- after you claim a package name it’s yours forever so there’s already a bunch of name squatting

dads friend steve
Dec 24, 2004

Gazpacho posted:

gradle provides modules that can be configured similar to maven using far more efficient and readable syntax (lol @ hand-edited xml)

however it is magical thinking to suppose that these pre-existing modules will always cover the emergent needs of any organization and for those cases gradle lets you go procedural as needed, reusing parts of those modules at the level where they are indeed reusable

maven's architecture is that any emergent need has to be captured immediately as a plugin, before you can proceed at all. you don't get to express it procedurally at first so that you can feel out the requirements and what the configuration points are. this pushes you to create "reusable" plugins that are not in fact reusable and should be done over, but we know that necessary do-overs have a way of not ever happening

(though in observed practice people will just hack in an antrun goal rather than create a plugin, while crossing their fingers that it doesn't conflict with maven's "opinions" about goal sequencing, because bro there's a friggin deadline)

I’m gonna ignore the hand wringing over xml because honestly who cares

during my entire time developing java I have never had a case where we had emergent build system needs that we needed to iterate on because mavens extremely generic clean -> compile -> test -> package -> deploy flow covered it. the build system should be a very boring implementation detail, I want to spend next to no time thinking about it.

the only time I’ve really seen people want to break out of the maven way of doing things is when they want to produce more than 1 artifact per project, and maven forcing them to use multiple projects instead usually results in a better design

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome
maven: complete garbage
ant: still garbage, but at least you can read it to see what it's doing

akadajet
Sep 14, 2003

Shaggar posted:

maven hatred boils down to 2 groups:
1) Im too loving stupid to understand xml
2) Im too loving stupid to understand software development

everyone in group 1 is also in group 2

1) i understand xml. it sucks rear end
2) i understand software development. it also sucks rear end

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
i have never seen any other build tool that demanded more developer attention and babysitting than maven. even the build system developed for windows NT (a boatload of cmd scripts driven by nmake) managed to be more intuitive

Qtotonibudinibudet
Nov 7, 2011



Omich poluyobok, skazhi ty narkoman? ya prosto tozhe gde to tam zhivu, mogli by vmeste uyobyvat' narkotiki

akadajet posted:

1) i understand xml. it sucks rear end
2) i understand software development. it also sucks rear end

on the other hand, i understand rear end, which i understand to be very good (and very edible)

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
you could try bazel

it's got a proper declarative build structure, like maven

but your build files look like a bunch of random python calls, so it should appeal to p-langers

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat

Shaggar posted:

maven hatred boils down to 2 groups:
1) Im too loving stupid to understand xml
2) Im too loving stupid to understand software development

everyone in group 1 is also in group 2

shaggar was right

Gazpacho posted:

i have never seen any other build tool that demanded more developer attention and babysitting than maven. even the build system developed for windows NT (a boatload of cmd scripts driven by nmake) managed to be more intuitive

you are an embarrassment to your profession

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

rotor posted:

convention over configuration can suck my rear end

abigserve
Sep 13, 2009

this is a better avatar than what I had before
Jenkins worked for me but I was more interested in the cd part of ci/cd at that stage

Progressive JPEG
Feb 19, 2003

the core of jenkins sends RPCs by serializing a java object containing the code to be executed, then sending it to the worker node

the worker node then deserializes and executes the object

i call it RPC by RCE

this is also why java versions must exactly align across all the jenkins machines

dads friend steve
Dec 24, 2004

Progressive JPEG posted:

the core of jenkins sends RPCs by serializing a java object containing the code to be executed, then sending it to the worker node

the worker node then deserializes and executes the object

i call it RPC by RCE

this is also why java versions must exactly align across all the jenkins machines

lmao

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
groovy pipelines take it a step further and serialize the interpreter itself and send that to the target machine

gnatalie
Jul 1, 2003

blasting women into space
teamcity is nice :unsmith:

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

lmao if you have to build code

Bloody
Mar 3, 2013

we use cake or something

Bloody
Mar 3, 2013

and a pile of powers hell. I don't understand any of it but it seems to work without issues

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

some of our stuff more or less depends on eclipse to build. lmao.

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat

Captain Foo posted:

lmao if you have to build code

lmao if you dont

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome
compilers are good imo

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

rotor posted:

The thing where people rely on this host of third-party, off-prem services (github, npm, travis, etc) to simply build and deploy their own software is insane to me.

a-fuckin-men

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Poopernickel posted:

Use CMake, autotools, or whatever - they're all good too.

this is patently false

CMake is like the smelly ugly guy who chews with his mouth open and just appears fractally terrible in the small details but when the chips are down he can deliver and reliably

autotools is kinda like that except it barely works and also likes to talk about open relationships and/or open carry and wants you to know that you should really make sure all your code can be built on obscure old systems that only someone like me would care about since portability is important

born on a buy you
Aug 14, 2005

Odd Fullback
Bird Gang
Sack Them All
Brazil is good af

cowboy beepboop
Feb 24, 2001

Feisty-Cadaver posted:

we do almost everything with declarative jenkins pipeline builds + docker and it's not exactly simple to setup, but it's nice. like thousands of devs on dozens of teams with wildly different needs and all builds go through the same infra. java, c++, python, iOS, android, jabbascript, etc. spits out an artifact and

just pipeline + a Jenkinsfile you can version control is amazing cuz you no longer have to click through Jenkins build config history to find out who the fucker was who changed the config and now the goddamn build is broken again!

i set this up but the jenkins docker kept running out of space and I got bored with being the CI guy so we're going to use travis

cowboy beepboop
Feb 24, 2001

eschaton posted:

this is patently false

CMake is like the smelly ugly guy who chews with his mouth open and just appears fractally terrible in the small details but when the chips are down he can deliver and reliably

autotools is kinda like that except it barely works and also likes to talk about open relationships and/or open carry and wants you to know that you should really make sure all your code can be built on obscure old systems that only someone like me would care about since portability is important

I looked this up for the first time in my life and wow gross
https://thoughtbot.com/blog/the-magic-behind-configure-make-make-install

abigserve
Sep 13, 2009

this is a better avatar than what I had before
I use travis for the stuff i do that matters and it works fine. haven t had any complaint's yet

Poopernickel
Oct 28, 2005

electricity bad
Fun Shoe

yep, it's ugly for sure

all in all though it's not that bad once you embrace the void - it's widely used because it's not terrible

Storysmith
Dec 31, 2006

Poopernickel posted:

yep, it's ugly for sure

all in all though it's not that bad once you embrace the void - it's widely used because it's not terrible

hi did you just call something written in m4 template that generates bash script snippets not terrible

because i think you have been down in the mines so long you forget what the sky looked like

Cybernetic Vermin
Apr 18, 2005

i mean, obviously you have to accept some ugliness to solve the incredibly important problem of "check that library x is installed except please don't do it as part of compiling where it has to be looked up anyway but rather as an entirely separate and even more complex step for some reason"

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome
autotools is a necessary evil in some cases

Poopernickel
Oct 28, 2005

electricity bad
Fun Shoe

Cybernetic Vermin posted:

i mean, obviously you have to accept some ugliness to solve the incredibly important problem of "check that library x is installed except please don't do it as part of compiling where it has to be looked up anyway but rather as an entirely separate and even more complex step for some reason"

What about software that can use one of a few different libs as the backend? Or software that enables optional functionality if it has a library available at compile-time?

What's your preferred way to express "when this program runs, it should get config files from $sysconfdir instead of /etc", or "for this one build on my dev machine, install everything into $home/bin instead of /opt"?

What's the easiest way to make sure that your build works when the compiler tries to specify its own --sysrootdir because it's a cross-compiler?

Do you like your build to run for 30 minutes and then fail to link halfway through because you didn't know you needed some library or other?

you can definitely work around all of this stuff yourself manually in your own makefile, but why would you? Can you be sure you'll catch all the corner cases? Why not use a tool that's designed to deal with exactly these kinds of problems? And deals with them in a way that everybody is used to using?

Autotools and cmake both fill a useful niche.

CMake is a little newer, and a little easier in some cases. It's built around a bespoke macro language that isn't used anywhere else, just like autoconf. Autoconf has some better built-in features for checking if a library is available, and whether you can compile and link against it. It can even check to see if a symbol is #defined in a header, and configure the build differently if needed.

CMake has a module that emulates autotools' directory-handling. Autotools needs more dependencies at source-packaging time, and fewer to configure and compile.

Both let you specify standardized options and configure your build, both are super widely used, and both are terrible and have a steep learning curve. Probably a necessary evil.

Poopernickel fucked around with this message at 20:16 on Jan 8, 2020

psiox
Oct 15, 2001

Babylon 5 Street Team

CRIP EATIN BREAD posted:

thats the one reason why i was interested in that CDS server because it does builds and deployments as a dependency graphs with gates that block the flow until something triggers it.

and the build can be defined in the code itself.

this is absolutely what i want more of and i have yet to figure out a pleasant solution, but i can usually hack something together with jenkins

and by that i mean i actually use jenkins-job-builder and make sure everything is under revision control. i feel like most jenkins hate, like so many things, is driven by using it in ways that are way too bespoke and unwieldy. like, maybe you don't need a zillion plugins for something that could be accomplished with a shell script that's actually testable and maintainable

Poopernickel
Oct 28, 2005

electricity bad
Fun Shoe

Storysmith posted:

hi did you just call something written in m4 template that generates bash script snippets not terrible

good point it's definitely terrible, and m4 sucks a lot

I'm just saying that it offers a lot of value too, especially for distro package maintainers - and the value outweighs the hassle and general bullshit

also for 99% of autoconf work, you don't need to know anything about m4 at all. Autoconf just becomes a yet another domain-specific macro language, no different than CMake except that you can use inline shell scripts too

Poopernickel fucked around with this message at 20:55 on Jan 8, 2020

Zlodo
Nov 25, 2006
i once tried to compile an autogarbage thing from sources and the configuration file wasn't generated in the repo so I had to run autoconf myself and even installing the right versions of automake/autocrap was a nightmare filled with lovely errors all over the console

this is the worst pile of poo poo of a build system ive ever seen and it belongs in the trash right next to make

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome
I don't think anyone is going to bat for how great autotools is but if you need to distribute software that compiles relatively easily on a wide range of hardware & software, I'm not reallly aware of a better solution.

rotor
Jun 11, 2001

classic case of pineapple derangement syndrome

rotor posted:

I'm not reallly aware of a better solution.

Again, that doesn't mean it's good.

Adbot
ADBOT LOVES YOU

Poopernickel
Oct 28, 2005

electricity bad
Fun Shoe

Zlodo posted:

autocrap

:smug:

Poopernickel fucked around with this message at 01:23 on Jan 9, 2020

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply