rendrjs / rendr

Render your Backbone.js apps on the client and the server, using Node.js.
MIT License
4.09k stars 312 forks source link

Improvement in release process #500

Closed alexindigo closed 8 years ago

alexindigo commented 8 years ago

I'd like to start discussion on how to improve (maybe even partially automate) release process. At the moment it seems like everything relies on a single person (with @spikebrehm taking more advisory role).

There many parties interested in moving Rendr forward and it would be nice to get more hands on deck.

Any suggestions/concerns?

Thank you.

/cc @rendrjs/maintainers @crwang

saponifi3d commented 8 years ago

So, the reason why i have yet to release is because we have to verify AMD and non-AMD environments. A number of issues have come up when people working on the discrete systems have broken the other.

The biggest thing for me is more test reliability around that area, and it's hard to do. I'm actually more worried about minor bug releases like the current one in progress than others because npm will just automatically install the update in many cases. If you want to work on a system to test the major paths then releases will be much faster, otherwise it comes down to me running integration tests by hand to verify nothing is terribly broken between the two.

I'm currently waiting for @jmerrifield to verify everything still works fine with browserify.

alexindigo commented 8 years ago

I see. Running tests by hand is painful for sure.

Some time ago when Examples were part of the repo, my idea was to integrate examples tests with the main tests, exactly for this reason – to test all the different approaches.

Do you have that browserify tests somewhere? I'd like to help to run them and to automate the process (at least partially).

Another option is to release as next tag to npm, so it will be available for people to try. Haven't played with it myself yet, but seems like it might be helpful.

PS. What do you think on bringing examples back and make them part of the automated tests?

saponifi3d commented 8 years ago

Not a huge fan of having examples in the repo, I like that they're separate since that's the direction i'd like to see Render go, ideally a bunch of smaller apps that you can pick and choose pieces #pipedream.

As for the browserify tests, it's all just me doing it by hand verifying that the packages are built correctly, what's worse is my stripped down repo to test all those things is MIA from my laptop, so I'm dependent on @jmerrifield to run them for this go. If i don't hear back from him by the end of the day, i'll setup a quick app that uses browserify.. and probably include it in the examples repo with how to use it with gulp.

alexindigo commented 8 years ago

Totally on board with you on smaller apps. I was thinking about them as extended test suites (which could be ignored from npm package).

Another way could be to have test repo, similar to the examples, but meant for testing master of this repo and including different setup configurations, like browserify + gulp and requirejs + grunt and whatnot.

I know that @crwang works on requirejs example app at the moment. So maybe we can use something for that test repo.

Btw, you you get hand on one of those browserify apps you're using for testing, could you send me a link/tar, I'll start with rendr-tests repo. Thank you.

alexindigo commented 8 years ago

@saponifi3d @spikebrehm can you create rendr-app-tests repo or give me powers to do it? Thanks.

saponifi3d commented 8 years ago

@alexindigo could we not just make integration in this repo? i don't mind making it just seems like it might not be needed yet

alexindigo commented 8 years ago

Idea is to have set of simple apps (like examples but simplier) for testing purposes, and point to the github master instead of npm. So we can automate integration tests with different setups. And my understanding was that you don't want all that mess in this repo.

saponifi3d commented 8 years ago

Hmm, fair about the mess in the repo, just seems like it's an integration test or something that we could get around. It does however make testing of all the different future repos in a single place way easier :+1:

saponifi3d commented 8 years ago

Good to go: https://github.com/rendrjs/rendr-app-tests let me know if you have any problems with it. @rendrjs/maintainers should have access to it as well.

alexindigo commented 8 years ago

Maybe I'm not in maintainers, I don't see settings tab. Planning to hook it up with Travis and play with webhooks to make it auto triggers on master merge or something like that.

alexindigo commented 8 years ago

And thanks. :)

alexindigo commented 8 years ago

Oh and can you add @crwang there as well? He is working on requirejs integration as well. Thank you.

saponifi3d commented 8 years ago

@crwang has been added, travis should just be a .yml file and configuration with travis. It's just on the free version so there isn't any additions (afaik) to github.

alexindigo commented 8 years ago

My experience that in order to set it up I need to have certain privileges. Let me check.

alexindigo commented 8 years ago

And I'd want to play with webhooks too, will be shame to bug you each time I need to make a change, like I'm underage asking you to buy me a drink. :)

alexindigo commented 8 years ago

Yep, Travis-CI doesn't let me to turn it on.

alexindigo commented 8 years ago

Btw @saponifi3d as part of setting up test apps, I tried simple_00 example (grunt + browserify) with master branch, and it works no problem.

saponifi3d commented 8 years ago

@alexindigo i just activated travis-ci to run on PRs and build pushes iif there is a .travis.yml file. Let me know if there are any env variables i need to setup for it too. I'm not sure why it isn't giving you access to this stuff https://travis-ci.org/rendrjs/rendr-app-template too, let me know if there is anything else you need.

FYI, the release process itself is really easy, but yeah, most of my time is spend making sure nothing got too borked as we've had browserify / amd breaks as one group is trying to optimize.

saponifi3d commented 8 years ago

PS, just released v1.1.3

alexindigo commented 8 years ago

Thanks for adding Travis. I still can't add any webhooks though. And thanks for the publishing new version.

Looks like we're on track with improving publish process, or at least make your life easier to gather all the checks in one place. So I'll close this issue.

PS. @spikebrehm and @crwang I'd like to get your ideas on how to optimize the process too. Thank you.