Hi, Ryan,
BTW, any reasons to exclude the mailing list from the reply?
On 12/12/2014 11:56 AM, Ryan Moquin wrote:
> Interesting article. I agree with some of the things he's saying, but
> it feels like the develop branch is being used as the master, and the
> master branch is used to reflect the latest release tag, which will be
> the same as the topmost release on the "Releases" page on Github. I'm
> not really sure the advantage of develop over master. If you really
> want develop as the default development branch, then you can go into the
> repository settings and change which branch is the default. Having the
> default branch always tagged as the latest release will confuse most
> people into thinking the project isn't active, IMHO, unless they know
> the development branch isn't master.
>
> I think what I'm not convinced of is that basically you have to do two
> merges from feature/release branches to the develop and master
> branches. Then if the branch was a feature branch, you simply delete
> it. If it was a master branch, you delete it, then you recreate the
> release from Master. Maven will also handle the release creation, by
> automatically updating the versions, tagging the release, updating the
> "trunk" (whichever one that is) with the next snapshot version, and
> deploying the release artifacts to the chosen maven repository. Even
> better, use jenkins to invoke the maven release.
>
> Anyhow, that's just my opinion on it. Maybe I don't full understand
> what he was saying.
Sure, I don't really care about the develop branch myself. I'd be happy
with master as default for development too. That's not an issue. My
issue is with the README.md files...
Jenkins and stuff, sure that'd be great! If you figure out a way to make
this work well across platforms, let me know! Ideally, I'd like to make
use of free services like Travis CI. Someone started to look at that not
so long ago, but I haven't been receiving updates recently:
https://github.com/bytedeco/javacpp-presets/issues/22
https://github.com/bytedeco/javacpp-presets/issues/26
> I'm not sure what you mean by the readme.md <
http://readme.md/> being
> incomplete in master? Most repositories I've seen fully use the
> readme.md <
http://readme.md> to give an intro to the project, what it's
> about, and anything else useful someone might want to know about the
> project.
The version numbers change, so the links with Maven central are not
consistent, and sometimes the API changes a bit, and the few lines of
sample code in there are not in sync with the release code. What can we
do about that? Are people looking for something "stable" and for
consistent information used to look into the non-default branch?
> I didn't work off the development branch, so the commits I started my
> changes from are, I forked the master branch since I didn't realize you
> use a develop branch. I thought you just had done any development since
> the last release. I can make my fork compa
Yes please do! Thanks
> The benefits of using the latest plugin api is basically the same as
> using the latest api for any project (real annotations instead of "fake
> annotations using javadocs"). There are lots of improvements that can
> be leveraged, but since the old plugin apis seem to work ok, I'll leave
> it as it was. Those changes weren't made to fix anything, I considered
> it to be an enhancement.
Well, they would need to be tested a little bit. We can do that after
the next release, and try to hone out any bugs that occur then.
> The code I was wrapping was only built for embedded linux platforms, so
> that's the only platform that it supports.
Sure, that's fine then. BTW, does it build `linux-arm`?
> The users do not have to install any of them in order to compile against
> them using Java classes. They just simply have to exist somewhere
> accessible. That's one of the problems Maven has a preferred way to
> solve this sort of thing. It's better if the users don't have to have
> them installed, since that's opening up a whole world of trouble when
> that person inevitable runs into issues building and installing the
> libraries. A perfect example is the Node.js stuff. It's all cute that
> when I install npm modules on linux, they magically succeed. When I try
> to install them on Windows, I get all kinds of confusing errors because
> I don't know what has to be setup manually on windows to be able to
> build and install the npms. I don't want to start myself on that
> tangent, just wanted to give an example.
Of course ideally users don't need anything to use the artifacts. But if
there is a bug in some class, and they want to fix it, and that change
doesn't affect anything w.r.t the native libraries, even if we were to
rebuild everything, isn't it better to offer a way to rebuild the Java
class files, without needing all the native stuff?
> It's not that it doesn't play well with Git, it's a maintenance headache
> for any SCM, Regardless, the source code will get cleaned, and then it
> will get generated again like it did the first time.
Yes, it /usually/ gets generated the same... Anyway, if we put the
generated Java code in `target`, any proposals to make this less of a
maintenance headache for SCM?
> You'd have to tell me what you consider to be the important stuff. In
> my own fork, I'm just making whatever modifications I feel like since
> they are isolated and then if there is anything you would like to have
> in the original codebase, The only things I think I actually fixed were
> a couple things in the pom, so that's the only thing that might be
> helpful, but those changes really won't be helpful either since you
> aren't leveraging Maven for release management.
I was hoping /you/ could tell me what is important. :) If there is
nothing in particular that you feel should be in right away, then it can
wait, yes... Let me know!
> Before the code would be pulled back into your repo, I would go through it to match your code as much as possible.. When I'm in a fork I made, I tend to make changes as I go along, I do make a lot of trivial changes, but nothing says you have to take everything (or anything) I've done.
>
> When I make changes certain style changes, it's not because the way it was is wrong. I just make changes based upon my preferences. The Google doc you reference above is simply how Google expects internal Google code to be formatted. There is nothing wrong with how they format comments or single line annotations. I usually remove annotations that are only there because of Eclipse because it used it's own compiler and it complains about everything by default to the point that source code gets cluttered up with annotations that serve no purpose other than to get Eclipse to shut up. It feels like a waste of space to have unnecessary annotations in the code (if an annotation is to ignore a warning, then the code should be changed to not generate the warning rather than use an annotation.)
>
> Java comments use the C and C++ formats, which means either using a multiline capable comment designator:
> /*
>
> */
>
> or single line comment:
>
> //
>
> There is nothing wrong with adding extra characters to multiline comment blocks to your hearts content. Since IDEs and decent text editors change the styling of comments in the source code, I find all the extra decorations unnecessary and distracting. That's only my preference and doesn't mean I expect anyone to agree with me. It's just my preference.You can also use javadoc style comments also, it just feels unnecessary as well since you only need to use that format for generating javadocs. If nothing useful is put in the javadoc comments, there isn't any point in even putting javadoc comments (not saying you did that, just elaborating on my view).
That's alright. I wasn't criticizing anything, I am just wary of making
changes just to make changes, that's all :)
Yes, I could remove changes that I consider unnecessary before merging
them with my repo, sure, but then we can't use GitHub's pull request
feature. It forces us to merge everything, so we have to ask the person
sending the pull request to modify the commits appropriately before
making the merge, that's all. Unless you know of some way to modify
someone else's fork before merge?
Samuel