<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: sameenkarim</title><link>https://news.ycombinator.com/user?id=sameenkarim</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 16:48:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=sameenkarim" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>Yes, we handle this both in the CLI and server using git rebase --onto<p><pre><code>  git rebase --onto <new_commit_sha_generated_by_squash> <original_commit_sha_from_tip_of_merged_branch> <branch_name>
</code></pre>
So for ex in this scenario:<p><pre><code>  PR1: main <- A, B              (branch1)
  PR2: main <- A, B, C, D        (branch2)
  PR3: main <- A, B, C, D, E, F  (branch3)
</code></pre>
When PR 1 and 2 are squash merged, main now looks like:<p><pre><code>  S1 (squash of A+B), S2 (squash of C+D)
</code></pre>
Then we run the following:<p><pre><code>  git rebase --onto S2 D branch3
</code></pre>
Which rewrites branch3 to:<p><pre><code>  S1, S2, E, F
</code></pre>
This operation moves the unique commits from the unmerged branch and replays them on top of the newly squashed commits on the base branch, avoiding any merge conflicts.</p>
]]></description><pubDate>Tue, 14 Apr 2026 00:07:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759587</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759587</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>We're shipping a skill file with the CLI: <a href="https://skills.sh/github/gh-stack/gh-stack" rel="nofollow">https://skills.sh/github/gh-stack/gh-stack</a><p>Everyone will have their own way of structuring stacks, but I've found it great for the agent to plan a stack structure that mirrors the work to be done.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:52:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759487</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759487</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>Stacked PRs can be created via the UI, API, or CLI.<p>You can also run a combination of these. For ex, use another tool like jj to develop locally, push up the branches, and use the gh CLI to batch create a stack of n PRs, without touching local state.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:44:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759426</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759426</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>> So, if I have three patches in the stack, and I want to merge the bottom two, I'd merge one, wait for tests to run on the other, merge the second vs. merge just those two in one step<p>As we have it designed currently, you would have to wait for CI to pass on the bottom two and then you can merge the bottom two in one step. The top of the stack would then get rebased, which will likely trigger another CI run.<p>Thanks for the callout - we'll update those docs to make it clear multiple PRs can be merged at once.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:11:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759175</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759175</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>Yup, there will be an API for stacks, just like there is one for regular PRs.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:03:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759098</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759098</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>The CLI is not required and you can push up your bookmarks as branches and open stacked PRs via the UI. You can also use the gh CLI to just create the stacked PRs on github.com (essentially an API wrapper), without using it to manage local state.</p>
]]></description><pubDate>Mon, 13 Apr 2026 23:01:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759080</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47759080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759080</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>The CLI is completely optional, you can create stacked PRs purely via the UI.<p>Also the rationale for having a chain of branches pointing to each other was so the diff in a PR shows just the relevant changes from the specific branch, not the entire set of changes going back to the parent/trunk.<p>Curious how you're thinking about it?</p>
]]></description><pubDate>Mon, 13 Apr 2026 22:17:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47758652</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47758652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47758652</guid></item><item><title><![CDATA[New comment by sameenkarim in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>Yeah features need to be released as GA (general availability) before they can be included in GHES. I don't have a definitive timeline, but it will likely be end of this year or early next.</p>
]]></description><pubDate>Mon, 13 Apr 2026 22:11:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47758575</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=47758575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47758575</guid></item><item><title><![CDATA[New comment by sameenkarim in "Show HN: Auto-document your analytics setup (npx package)"]]></title><description><![CDATA[
<p>Wow, that's a lot of events! Hope this helps with keeping track of it all now.</p>
]]></description><pubDate>Wed, 11 Sep 2024 21:28:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41515496</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=41515496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41515496</guid></item><item><title><![CDATA[New comment by sameenkarim in "Show HN: Auto-document your analytics setup (npx package)"]]></title><description><![CDATA[
<p>Glad to hear I'm not alone in the frustration! Thanks and let me know how it goes.</p>
]]></description><pubDate>Wed, 11 Sep 2024 21:19:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=41515432</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=41515432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41515432</guid></item><item><title><![CDATA[Show HN: Auto-document your analytics setup (npx package)]]></title><description><![CDATA[
<p>Hey HN, sharing an npx package that I’ve been working on to help teams automatically document their analytics setups.<p>It crawls any JS/TS codebase and generates a YAML schema that catalogs all the events, properties, and triggers. Currently supporting GA, Amplitude, Mixpanel, Amplitude, Rudderstack, mParticle, PostHog, Pendo, Heap, Snowplow. Let me know if there’s any more I should add to the list!<p>Came out of a personal pain where I was struggling to keep tabs on all the analytics events we had implemented. The “tracking plan” spreadsheets just weren’t cutting it, and I wanted something that would automatically update as the code changed.<p>Hoping it’ll be helpful to other folks as well. Also open to suggestions for things I can build on top of this! Perhaps a code check tool to detect breaking changes or some UI to view this info when you’re querying your analytics data?<p>Would love your thoughts and feedback!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41514823">https://news.ycombinator.com/item?id=41514823</a></p>
<p>Points: 17</p>
<p># Comments: 5</p>
]]></description><pubDate>Wed, 11 Sep 2024 19:56:47 +0000</pubDate><link>https://github.com/fliskdata/analyze-tracking</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=41514823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41514823</guid></item><item><title><![CDATA[Show HN: I made an app to set my status emoji in Slack]]></title><description><![CDATA[
<p>Article URL: <a href="https://slacklunchstatus.com">https://slacklunchstatus.com</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27222855">https://news.ycombinator.com/item?id=27222855</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 20 May 2021 15:57:51 +0000</pubDate><link>https://slacklunchstatus.com</link><dc:creator>sameenkarim</dc:creator><comments>https://news.ycombinator.com/item?id=27222855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27222855</guid></item></channel></rss>