Re: [Vala] The future of Vala



On Sat, 2016-09-10 at 21:22 +0000, Ben Iofel wrote:
Sounds awesome. Even if we don't move to github, we should still
allow
people to submit pull requests on the mirror
(https://github.com/gnome/vala)

I completely disagree.  There should be one place to somehow request a
change in the code.  The only way we should accept pull requests
through a GitHub *mirror* is if they are transparently mirrored to the
canonical location, which is extremely non-trivial.

Obviously, without automatic mirroring you're forcing the developers to
monitor multiple channels, which sucks, but there are also other
consequences.  If the PRs aren't mirrored automatically they won't
properly interact with CI, which means they won't be properly tested.

You would also have to mirror all comments in both directions;
commenting on GitHub would have to result in a comment on the canonical
location so developers see them, and if a developer comments on the
canonical location it would have to be mirrored back to GitHub so the
contributor sees it.  You might be able to get a bot account going for
this, but then it's a poor experience for anything involving more than
one person on each site.

Even if you do mirror comments in both directions, you still couldn't
handle things GitHub doesn't support (like real code review).

Finally, I'm not sure it's fair to GNOME to accept PRs through GitHub.
It would set a precedent for other projects which isn't fair for them,
and likely end up making everyone more frustrated.

As for moving to GitHub instead of just accepting PRs through the
mirror, I really don't think that is the right answer here, and I say
that as someone who does a decent amount of open source work on GitHub
these days (see <https://github.com/nemequ>).  Off the top of my head,
the pros are:

 * Most developers already have a GitHub account and are already
   comfortable with it.
 * Travis CI only works with GitHub.

Travis CI support doesn't really matter; there are lots of CI services
which do work with non-GitHub projects.

The cons, OTOH:

 * The issue tracker is absolutely terrible.  It's easy to use, but
   very limited.
 * Code review support is a joke; it's a stretch to even say it exists.
   It's really just an issue is opened, and you can add comments.
 * It's proprietary. Given the choice, I'd rather use open source
   software unless the proprietary stuff is *significantly* better.
 * There is no way to fix bugs or add features, and relying on GitHub
   doesn't work.  I've reported issues to them before and it has never
   done any good.

I could make that list a lot longer with a bunch of paper-cut type
stuff, but the final bullet point covers a lot.  Besides, the first two
issues negate a lot of the reason I think we should consider some
infrastructure changes.

Frankly, if the choice is between moving to GitHub and sticking to the
current setup I'd prefer the latter.  IMHO the tighter integration with
GNOME is more valuable than not making people sign up for another
account to contribute.


-Evan



On Sat, Sep 10, 2016 at 4:44 PM Evan Nemerson <evan coeus-group com>
wrote:


This is something I've been thinking about lately, too.  We
currently
rely on Jürg and Luca's expertise pretty heavily for development
and
patch review, and since they are both busy with other stuff Vala
development has slowed down quite a bit.

Assuming we can't organize financing to pay Jürg and/or Luca to
work on
Vala, I think we need to focus on a more decentralized development
approach where we rely more on contributions from people with less
expertise with the Vala internals.  However, we obviously also need
to
keep the compiler's code quality as high as possible.  There are a
lot
of unreviewed patches rotting away on Bugzilla right now, and
that's a
tragic waste of effort.

The answer, at least from my perspective, is to embrace automated
testing.  We need to significantly beef up the tests shipped with
the
compiler (the ones `make test` runs) so we can check make sure
patches
don't break anything.  This, in turn, would allow people a bit less
comfortable with the valac internals (such as myself) to review a
lot
more patches, and hopefully get development back up to a much
higher
rate.

Chris Daley has been working on moving a version of Valadate into
the
Vala tree (see <https://github.com/chebizarro/vala>) so tests are
easier to write.  I'd like to get some feedback from people on his
work, and if it would encourage people to write more tests we
should
merge it after 0.34 is branched.

I'd also like to provide a robust way to have assorted projects
written
in Vala tested, which would be especially important for changes to
bindings.  We already have this to some extent (see
<http://paldo.org:8010/>), but there is no integration with
Bugzilla
and it's not very well maintained (many projects are broken due to
non-
Vala issues), and AFAIK the configuration isn't public so there is
no
way for people to help.

There are a lot of great free CI services we can take advantage of
to
improve this, including (off the top of my head):

 * Travis CI
 * AppVeyor
 * GitLab
 * Snap CI
 * Drone.io
 * Semaphore

We don't have to choose one; we can use multiple services
(especially
if AppVeyor is one of them).

One major barrier here is Bugzilla.  I'm not really concerned with
requiring people to sign up for an account, and I really like the
workflow (especially with git-bz), but CI integration is a problem
and
I'm not sure how to resolve it.

The obvious solution would be moving development to GitHub, but I'm
certainly uneasy about depending on a proprietary platform, and I'd
sure others would be as well.

Perhaps a better option would be moving to GitLab, or installing a
GitLab instance somewhere (possibly on the GNOME infrastructure?).
AFAIK Travis only supports GitHub, but Travis isn't our only
option.
If it were up to me, I would probably move to GitLab.com.

Once we have good automated testing support, a good code review
tool
would be extremely helpful.  If we stick with Bugzilla, I know it's
possible to integrate Gerrit, though AFAIK it would require a
plugin
for Bugzilla.  GitHub sucks for code review, but there are external
tools (including Gerrit) we could use.  GitLab, OTOH, has pretty
good
integrated code reviews.

So, IMHO as soon as 0.34 is branched, we should start working on
two
things:

   1. Make it easier to add tests to valac (i.e., merge the
Valadate stuff
      from Chris Daley's repo).
   2. Write tests.  LOTS of tests.  Luckily, this doesn't require a
great
      deal of knowledge, so if you're looking for a way to start
      contributing this could be an excellent choice.

At the same time, we need to start talking about infrastructure.  I
love the fact that Vala is part of GNOME, but we need to figure out
how
to get CI up and integrated with our issue tracker.  GNOME
Continuous
is great, but it's just not enough.  If this means moving to
GitLab,
GitHub, BitBucket, etc., or installing GitLab or Phabricator, then
so
be it.  IMHO this is more important than having Vala's issue
tracker at
the same place as GNOME's.


-Evan



On Thu, 2016-09-08 at 19:34 +0200, Timm Bäder wrote:

Hey,

this is probably just a mail for Jürg and maybe Luca, but if you
have
a relevant opinion on the matter, that might be a fine reply as
well.

So, for quite a while the Vala project has seen very little
activity.
The three people most involved (Jürg, Luca and Flo) are barely on
IRC
and/or otherwise reachable which makes it hard to get an opinion
or
info from them. On the other hand, some people are still doing a
great job, namely Rico with all the binding work, as well as Evan
(I
haven't kept up with what Al is doing other than replying to
bugzilla
issues that won't be fixed unless it's a binding issue).

Lots of people are worried about how the project will stay alive
(or
if), and quite a lot of projects are written in Vala (including
one
I maintain) -- and people keep porting projects from C to Vala,
mostly hoping for more contributions, hoping the Vala's C#-like
syntax scares off less people.

Now, we all know that Vala has enough bugs that need to get
fixed, as
well as lots of potential for improvements (I'll just disregard
all
the wishes for special syntax for fringe features on IRC, that's
not
what I'm talking about). Some of them are easy to fix but even if
the
patches are present in bugzilla and their author is willing to
fix
them after a review, the review just never happens. This doesn't
just
cause those bugs to stay unfixed, but those people will also
never
get accustomed to the internals of valac and so they will never
work
on anything more important than this simple fix.

I have tried in the past to do exactly that and post some patches
for
simple fixes to get an understanding of valac internals but it's
quite frankly huge and there's not a real high-level
documentation
one could work with (apart from a few very old blog posts form
Luca)
and neither working tools do debug it (I've once spent a few
hours on
fixing valag but then gave up...).


So... what's the deal here? Is there any way forward one could
look
into? Is it wip/transform? IIRC there was some dbus stuff broke
here? Are there any TODO items for cleaning up the compiler?
Should
we just tell people to not use Vala in the first place (which
would
be better for the in the long run)? All of these are fine, but
the
current situation not so much.


Sincerely,
Timm
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]