

Show HN: Bud – A new build tool for C# projects - urbas
http://bud.urbas.si/

======
urbas
Bud is a build tool for C# projects.

It was inspired by tools like Maven, SBT, Gradle, Rake, Gulp, Leiningen and
others.

Bud is still very much work in progress, but it already knows how to do a
number of things. For example, Bud knows how to build itself, download
dependencies, publish projects, and generate Visual Studio projects files.
More features are outlined at
[http://bud.urbas.si/Docs/Guide](http://bud.urbas.si/Docs/Guide).

Feel free to give Bud a try. Just follow installation instructions:
[http://bud.urbas.si/Docs/Guide](http://bud.urbas.si/Docs/Guide)

Every piece of feedback, technical or otherwise, is very welcome. If you have
a feature request or a bug to report, please drop me an email.

Thanks!

~~~
tiernano
I like the sound of this, and its something i might try out... I am using FAKE
in the office for automated builds on local desktops... Bud could be a
replacement...

~~~
profquail
I'm curious -- what advantages so you see Bud having over FAKE? I.e., why
would you change over to using Bud if FAKE is already doing what you need?

------
SNACKeR99
Is this open source?

~~~
gnoway
[http://bud.urbas.si/Licence](http://bud.urbas.si/Licence)

Free for personal/noncom/oss, contact for commercial. So probably not.

IMO, this will have to offer super tremendous advantages over MSBuild to have
any chance at gaining traction. The latter is free, open source, easy to
extend, already fits with ci/cd and is the native build tool for the platform.

~~~
rjbwork
Agreed. I saw it, was excited, then saw non-free and immediately disregarded
it as practical for work. We're not going to pay for an unproven MSBuild
alternative when MSBuild, despite its warts, works fine.

~~~
kybernetikos
I'm quite prepared to pay for tools that offer a meaningful productivity
boost, and while I haven't tried Bud yet, I've had lots of misery with MSBuild
and complex builds. I think there is plenty of room in the ms ecosystem for a
better build tool, and if it's better enough, I'd be prepared to pay.

I don't think it'd be too hard to make a build tool as much better than
msbuild as intellij is better than eclipse.

This whole topic nearly triggered a rant about how badly broken most build is,
and how massively it smashes you out of your flow to have an irritating build
problem show up. Build problems impact the productivity of every member of
your team.

~~~
urbas
Hey, thanks for the feedback!

Bud will always be free for open source projects.

I postponed the whole licencing and open-sourcing business because I would
like to determine what would suit Bud the best.

Maybe something like the GPL licence with an additional clause that projects
built with bud must be open-sourced too. And perhaps dual-licenced for
proprietary cases (something like qt).

Anyways, any feedback on this is topic would be very welcome!

Thanks a bunch!

~~~
egeozcan
> something like the GPL licence with an additional clause that projects built
> with bud must be open-sourced too

Would this be enforceable, though?

~~~
belorn
Complex answer, but simplified the answer would be yes.

The primary reason why it would be enforceable is that you need a license to
run a program (copying to ram, as per
[https://en.wikipedia.org/wiki/MDY_Industries,_LLC_v._Blizzar...](https://en.wikipedia.org/wiki/MDY_Industries,_LLC_v._Blizzard_Entertainment,_Inc.)).
A build program's license could thus include any type of conditions which
dictate terms for usage, including what kind of license that project has.

The only limits are those inherent to copyright itself
([https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_...](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright)),
and consumer protection laws. Consumer protection law would be the best guess
as to limit what kind of conditions a product has after sale, but so far most
legal system has chosen not to do so, and it get even more complex area when
the product is given away for free.

~~~
egeozcan
Thanks for the explanation. The complexity of the copyright system never fails
to surprise me.

------
hndl
> var roleName = > userManager.CurrentUser == null ? null : >
> (userManager.CurrentUser.GetRole() == null ? null : >
> userManager.CurrentUser.GetRole().Name);

I ask this because I find myself preferring you only 'get' the CurrentUser
once and use it as required in the following block.

------
urbas
Hey everyone,

I moved bud to a public repository and changed its licence to GPLv3.

Here's the repository:
[https://github.com/urbas/bud](https://github.com/urbas/bud)

