Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create REQUIRE and appveyor.yml during Pkg.generate #12215

Merged
merged 5 commits into from
Jul 22, 2015
Merged

Conversation

tkelman
Copy link
Contributor

@tkelman tkelman commented Jul 19, 2015

also forward-port a few package doc commits

milktrader and others added 3 commits July 19, 2015 04:25
(cherry picked from commit b4d0fa9)
ref #11910

Update packages.rst
(cherry picked from commit 7ec6ead)
Just a little extra heads up of possible package name bike-shedding, so to eliminate it's current surprise attack feel.
(cherry picked from commit 83c63b4)
ref #11916
this could potentially be tweaked for ver.major >= 1
@tkelman tkelman added the packages Package management and loading label Jul 19, 2015
Fix a deprecation warning
@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

@StefanKarpinski any thoughts?

@yuyichao
Copy link
Contributor

Is AppVeyor working out-of-the-box for packages now? (I thought you mentioned some problem during JuliaCon what I remembered is probably about binary dependency so NVM)

@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

Did I? Where? https://github.com/tkelman/JuliaCon2015/blob/master/KelmanJuliaCon2015.pdf

If a package doesn't have binary dependencies, or if the binary dependencies have been properly set up for Windows too, then this appveyor template should just work.

@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

Win64 tests for packages can and do occasionally hit #7942, which requires just restarting builds occasionally like it does here. That's a Julia bug, not an AppVeyor problem though.

If we had been chatting around the beginning of JuliaCon, there was a bit of a mess at the time involving the toolchain used for Windows builds and libstdc++ ABI compatibility with WinRPM packages, but that's all sorted now (was the reason I tagged 0.3.10 at that time).

@wildart
Copy link
Member

wildart commented Jul 19, 2015

I like an idea of REQUIRE file on package generation, but not service specific files. Services tend to change API, thus we need constantly update Base code. I would prefer some information displayed (possibly on Julia doc site) after package creation which points on various helpful for developers services and how-to for their setup, rather then silently create a bunch of suspicious files which are not related to Julia programming and package development.

@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

The problem with docs is people don't read them. I agree that the clutter is a little bit annoying, but if we make things as easy as possible for people who have no idea what continuous integration is to just click one button to turn things on, I think it'll help improve the overall quality of the entire package ecosystem.

We can maybe ask for @FeodorFitsner's opinion on how likely anything on the AppVeyor side could possibly break this in the future.

@wildart
Copy link
Member

wildart commented Jul 19, 2015

Developers still need to create an account for these services and do minimal configuration in order to get them working. Many people start developing packages without any thought about unit testing, CI and code coverage. I think devs need just a basic package structure to start working. Later when a developer decides to publish work to the Julia package repository, all development related services come in handy. IMHO, better documentation on publishing a package to Julia repository (including various dev services setups) and careful supervision of a first package publishing from the community is a better option, then silently inserting files into package.

@wildart
Copy link
Member

wildart commented Jul 19, 2015

BTW, some packages can target only one platform, because of binary dependencies or dev inability of developing for other platform.

@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

That's fine, actually using Travis and AppVeyor is optional, but strongly encouraged. Yes, we should probably start holding METADATA to a higher standard, ref JuliaLang/METADATA.jl#2800, but that requires work and automation of things that are currently checked by hand and somewhat inconsistently. We can probably move some of these optional pieces to non-default steps down the road, but for now my feeling is this would do a lot of good and very little harm.

@tkelman
Copy link
Contributor Author

tkelman commented Jul 19, 2015

As far as giving preferential treatment to specific services goes, my impression is that the community has not been particularly shy about picking the services that work best and going with them. Github over Bitbucket, homebrew over macports, Travis over Drone/Circle/Shippable, and other similar cases. We can try to make things flexible where other services could be used instead (bitbucket should work fine with Pkg.clone for example), but generally I think people have been happy to pick one option and use that in the vast majority of cases, leaving the work of supporting other options to whoever feels really strongly and wants to do the work.

@davidanthoff
Copy link
Contributor

+1 on this PR, thanks!

@tkelman
Copy link
Contributor Author

tkelman commented Jul 22, 2015

Do we just need @StefanKarpinski to make an executive decision one way or another on this? I don't feel like adding a 30-line file by default is all that harmful, but I can take out the appveyor.yml generation if there's more disagreement about it.

@StefanKarpinski
Copy link
Member

Do it.

tkelman added a commit that referenced this pull request Jul 22, 2015
Create REQUIRE and appveyor.yml during Pkg.generate
@tkelman tkelman merged commit 000d1a2 into master Jul 22, 2015
@tkelman tkelman deleted the tk/pkggenerate branch July 22, 2015 03:23
@tkelman
Copy link
Contributor Author

tkelman commented Jul 22, 2015

That's slightly ambiguous, but I'll interpret it as "hit merge." Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages Package management and loading
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants