HNHacker News
TopNewBestAskShowJobs

ethomson

3,773 karma · joined May 31, 2012

Product Manager at Stacklok; formerly product and software engineering at Vercel, GitHub, Microsoft.

https://www.edwardthomson.com/

Maintainer of libgit2. https://libgit2.github.io

[ my public key: https://keybase.io/ethomson; my proof: https://keybase.io/ethomson/sigs/48RVOIuAzrPKWNpOT1zlhLUUiT8VXFtqnuo5MzEds_w ]

submissionscomments
ethomson··on Git Internals, Techniques, and Rewriting History
No, this slide is correct. git diff (without any arguments) shows you what you haven't staged. In other words, the different between the working folder (which here is called "workspace") and the index.
ethomson··on Working with GitHub Actions
We changed the architecture quite a bit during the beta period to address feedback like this. With what's available today you don't need to run all your steps in a container. You _can_ take advantage of containers, but you don't _need_ to. We host Linux, Windows and macOS virtual machines for you to use and you can just define a commands to run on those machines.

We're working on artifact caching between runs now, which I think will also help some of the speed issues that you're referring to.

We really appreciate the feedback; if you do get around to trying it again, I'd love to know more about what we could improve.

ethomson··on Working with GitHub Actions
Thanks for the feedback. We're working on caching now, which will help you with your built artifacts between runs. We're also working to tune the list of pre-installed software so that the more common packages (like .NET Core 2.2) are already on the runners and you don't need to download (or cache) them.
ethomson··on Fossil vs Git
> Can you provide a reference? I was searching a bit and only things I found was bugs in windows[1] for git lfs.

Apologies, I hastily mistyped, I meant 500 GB, not 5. (5 GB is about the size of my repository, which is not really so big at all and certainly something git can cope with on its own).

This series of articles should illustrate some of the issues that VFS for Git tries to address. ("GVFS" is now called "VFS for Git".)

https://docs.microsoft.com/en-us/azure/devops/learn/git/tech...

And this is a series of articles from an engineer who's been working on improving perf in large repositories in general, not strictly related to the Windows repository:

https://blogs.msdn.microsoft.com/devops/2018/06/25/superchar...

> Windows codebase has 3.5 million files and its repo is 300GB in size. It is not normal. This is google or MS type of problem and not average git user. MS instead changing workflow decided to create GVFS[2]

I didn't say it was normal. Indeed it's uncommon. I said it wasn't pathological.

ethomson··on Fossil vs Git
It has nothing to do with the Windows filesystem; Git simply cannot support a 5 GB working tree on any filesystem. You can call this "pathological" but this throws a lot of shade on monorepos without much critical examination of how or when they might be useful.
ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
Aha, through the Azure Portal. I'm not sure what that works that way. I'll look into it, thanks for the explanation.
ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
There's a lot of comments about our UI and I thought I'd post a quick followup here instead of replying to each one individually. We are definitely reading these comments. UI itself is polarizing, and changing a UI moreso, but there's a lot of critical feedback here that we're going to investigate, try to understand and improve.
ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
Sorry, I don't understand what you're seeing here - you're creating a new project in Azure DevOps? When you do this, you get the choice between Git (hosted in Azure Repos) or centralized version control (TFVC hosted in Azure Repos). We don't have an option to do anything with GitHub here.

So I think that I'm not understanding what you're creating, or where. Can you drop me an email with a screenshot? It's my HN username @microsoft.com. Thanks!

ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
I'm not in Redmond, but do send an email. I'm my HN name @microsoft.com. We should be able to sort out some of these issues for you. I'd like to hear more about the docs problem. But:

You should be able to recurse submodules in a pipeline. In the visual designer, select "Checkout Submodules" in the pipeline's get sources step. If you use YAML, set "submodules: true" or "submodules: recursive" in the checkout keyword.

You should also be able to specify environment variables (including PATH) with the env keyword. But do reach out and we can get to the bottom of this.

ethomson··on Travis CI acquired by Idera
Haha, yes, sorry for making it sound bigger than it is. If you just want to do some build & test validation, it should just be a single yaml file. Not identical to Travis but close. We even added some getting started documentation if you’re familiar with Travis. https://docs.microsoft.com/azure/devops/pipelines/migrate/fr...
ethomson··on Travis CI acquired by Idera
I think that you want somebody who's unbiased to answer this from their perspective (I'm a PM for Azure DevOps, so I'm pretty biased). But I've built out Azure Pipelines for many platforms, including Ruby and RoR with a lot of success. Feel free to drop me an email (my HN username @microsoft.com) and I can point you to some pipelines.
ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
Thanks for the kind words; I agree that caching is a problem. We're working on it now.
ethomson··on Microsoft’s Azure DevOps: An Unsatisfying Adventure
PM for Azure DevOps here. We've been investing heavily in our user experience and our CI/CD experience, so I'm sad to see that we've disappointed here.

Some of these complaints I would agree with - in particularly, we're not (yet) caching build resources - though we're working on this now. But most of these complaints I was quite surprised to hear; not an experience I would want someone to have or what I see from the majority of our customers. So this is certainly a place where I'll follow up with the author to learn more.

ethomson··on Travis CI acquired by Idera
Indeed - from the Azure Pipelines side of things, we started seeing a fair number of open source projects move some of their workloads over to us when we announced unlimited build minutes for open source projects. (I'm a PM for Azure DevOps.)

From my perspective, it's been interesting to see how people do. Some people bring all of their builds, of course, but some people split it up so that it's a mix of Azure Pipelines and Travis (or, of course, something else). Some people are bringing one or two platforms over - maybe they had Travis working as their build validation system, but it was doing Linux builds. So adding Windows builds with Azure Pipelines made sense. Or they wanted to do macOS or iOS builds, so they started building on our macOS build agents.

Anyway, I'm happy for Travis and I'm glad to see that they're excited about this acquisition. I can speak from first hand experience that running builds for open source projects takes a lot of resources. So I trust that this will help them make sure that they're in a position to continue helping out the open source projects and communities.

ethomson··on An error message, still found in Windows 10, is a mistake from 1974
Well, actually magic(5) is used by the file(1) command to identify a file. So when you type `file foo.jar`, it can tell you "hey, this is a jar file". This isn't something that other applications do, and exec and friends do not look at it to try to determine what kind of file something is or how to execute it.

#! is special - and not because of magic(5) - if a file starts with `#!`, exec and friends will treat it special. Anything else will be attempted to be executed as a binary.

Now, one _could_ go and install binfmt_misc and set it up so that files with a jar's magic number will be executed a certain way (`java -jar ...`), but this is neither out of the box nor something that all Unix derivatives do.

Notably, binfmt_misc will also work with extensions instead of magic numbers.

ethomson··on Introducing Azure DevOps
This is not an area of the product that I work on, so I don't know what the status is. Let me look into it.
ethomson··on Introducing Azure DevOps
To clarify a bit: _Azure credits_ cannot be used to pay for Azure DevOps subscriptions. So if you want another parallel pipeline, then you cannot use Azure credits to pay for that.

However, Visual Studio subscribers do get licenses for Azure DevOps. If you're a Visual Studio Professional subscriber, then you get a Basic license for Azure DevOps. You get additional benefits if you're a Visual Studio Enterprise subscriber. You can find the details at https://docs.microsoft.com/en-us/visualstudio/subscriptions/...

ethomson··on Introducing Azure DevOps
Just wanted to follow up: did you get your issue resolved? If not, please email me (address is my HN username @microsoft.com).
ethomson··on Introducing Azure DevOps
I'm sorry to hear that - can you contact our support directly through the method of your choice? https://azure.microsoft.com/en-us/support/devops/ has the options. (Sorry, our team hangs out most places, but we don't do support on HN).
ethomson··on Introducing Azure DevOps
Update: the Director of Engineering for Azure DevOps has posted this. https://blogs.msdn.microsoft.com/vsoservice/?p=17485
ethomson··on Introducing Azure DevOps
I love Visual Studio, but the product currently known as Azure DevOps (formerly known as VSTS) really has nothing to do with Visual Studio.

The name made a lot more sense back in the day when the premier client was actually the Visual Studio IDE. But today, most people interact with Azure DevOps with their browser and too many people think "Visual Studio Team Services" is a web-based IDE.

The name change is bittersweet. We've been "Visual Studio <something>" since the first release of our on-premises product, well over a decade ago. But I'm confident about this next phase of Azure DevOps.

ethomson··on Introducing Azure DevOps
I'm glad you're mostly happy, but I'm sorry it's only mostly. I hope that we'll improve this. Honestly, the lowest latency mechanism is to hit @AzureDevOps up on twitter (or me personally) and we'll make sure that your problems get routed to the right person.

For outages, you can subscribe at https://blogs.msdn.microsoft.com/vsoservice (in the toolbar on the right hand side). We don't send out email notifications without you opting in, nor will we, but we do have some ideas to improve the way we notify people that we're working on.

And as for build agents, we're working on that, especially around the caching. Appreciate all the feedback.

ethomson··on Introducing Azure DevOps
At the risk of sounding philosophical, when you're building a cloud service that gets continuous delivery of features... when is that simply an iteration, versus something new?

Anyway, I'm not a philosopher. But I don't think that this is simply a "rebranding exercise", and it's been in the works for quite a while; it's not related to GitHub (which, for the record, we have not yet acquired).

We've made a huge engineering effort into the individual components that make up Azure DevOps, and those deserve (in my opinion) to be recognized. So, now "Azure Pipelines" gets to shine on its own.

ethomson··on Introducing Azure DevOps
You can subscribe to get emails for availability incidents on our service availability blog, https://blogs.msdn.microsoft.com/vsoservice/ (it's in the right-hand sidebar).
ethomson··on Introducing Azure DevOps
They try to keep me away from the SQL, so I don't have the most enlightened answer, to be honest. But smart people that I trust tell me that Redgate's tools are really excellent for SQL Server and SSRS projects. And that they integrate nicely into a CI/CD pipeline for "Database DevOps".
ethomson··on Introducing Azure DevOps
It does indeed. You can deploy to Azure (of course) or to AWS, GCP or on-premises.
ethomson··on Introducing Azure DevOps
It will be on our service availability blog: https://blogs.msdn.microsoft.com/vsoservice/, and I'll reply here with a direct link once it's online.
ethomson··on Introducing Azure DevOps
I certainly hope not. I'm not going to argue that this was anything but a disappointment to our customers - and one that we're eager to prevent from happening again.

But we have never said that this was Azure's fault. It wasn't. We've put the blame where it belongs: on us. We're nearly done writing up the root cause analysis and an analysis of our next steps to prevent this from happening in the future.

ethomson··on Introducing Azure DevOps
PM for Azure DevOps here. The team is really excited about this launch, and many of us are here to answer questions on Azure DevOps, or any of the individual services like Azure Pipelines, the new GitHub Marketplace app, or our free build offer for open source projects.
ethomson··on Introducing Azure DevOps
I'm sorry to hear that - without knowing more about how it broke, it's hard for me to say. Can you give me some more information about how it's broken in the past? Links to the forums posts would be great. Probably the best way to get them to me is by email, it's my HN name @microsoft.com.
← PreviousPage 2 of 12Next →