It’s time for the weekly dep roundup!

News and Such

The big thing that’s in-flight is moving gps into dep. It’s a somewhat arduous process (which should be surprising to no one), but @kris-nova’s on it. I’m hoping we’ll be able to finalize the merge by the end of this week. Once gps is in, it’ll be much easier for everyone to fix bugs directly and iterate on features that dep needs.

While I haven’t gotten to writing up what I figured out last week for OS/arch/build tag parameterization, I’m now pretty sure that we’ll be able to make whatever changes we’ll need as non-disruptive additions to the files later on. This is great, as it means we can declare the files stable sooner, and dep therefore ready for more serious use.

This week/early next is likely to be a bit slow, at least for me, as the machine I use for dep work is going in for repairs.

Community Attention Needed!

Here’s this week’s big three:

  • We’re making some progress on documentation, in at least the preliminary form of an FAQ. If folks have questions about dep that aren’t answered in what’s there now (and there definitely should be questions!), then file an issue with your question, and we’ll get the FAQ updated!
  • We need to compile a list of generally well-known and understood build tags (pursuant to OS/Arch/build tag parameterization). We don’t know exactly how we’ll use them yet, but we know the list will be useful.
  • It’s going to become suddenly very important, very soon, that we have tagged releases for projects. I’ll spare the handwaving details, but if the ecosystem converts too slowly to tagging releases, it could make thing hairy for everyone. The more depended on your project is, the more important it is that you start tagging with semver now, if you haven’t already. (Next step is solidifying a helper tool to suggest a correct next semver release version - e.g., Bradley Falzon’s apicompat)

Also, while we’re in a bit of a holding pattern around the gps move, this issue is very concerning to me. It’s essential for reliability that dep handles the cache of repositories well, and I’d hoped my last major gps changeset would have precluded the possibility of bugs like this. If anyone’s looking for some serious code spelunking, consider that issue an exciting cave entrance! 😄

Stuff We’ve 🚢ed

  • @carolynvs did the legwork on the first pass at our FAQ.
  • If dep init would have generated an empty Gopkg.toml, it now instead creates one with examples for how to declare dependency constraints - thanks @EwanValentine! I’ve also opened a follow-up that expands the help text to cover all Gopkg.toml properties, and includes the commented examples regardless of whether Gopkg.toml would have been empty.
  • @y0ssar1an further expanded dep’s CI process by introducing gosimple. I’m happy to say we already passed almost all the checks 😄
  • @mem solved a problem that’s been plaguing us for a while - when figuring out which GOPATH the tool was operating within, we were relying on filepath.HasPrefix() to (we thought) provide cross-platform, and appropriately case-[in]sensitive prefix checking. But that function is deprecated and doesn’t do the job - so now, we have our own! It’s pretty nifty and probably mostly right, but it involves some Unicode black magic, so another review from experienced eye would be most welcome.