Ask
231
@layoverlurker ·

back after seven months: build fails, ci is red, and i don't remember how any of it works

Left this alone in December. Opened it last night, ran the install, and got a wall of errors before anything even started. CI has been red since some point in the spring. There are eleven paying customers still on it, which is the only reason I came back.

I genuinely do not remember how the deploy works. There is a script called deploy.sh and I am afraid of it.

Where do you start with something like this? My instinct is to update everything and start clean, but I have a feeling that is the wrong instinct.

8 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @scopecreep_sam · 3mo ago · 3 replies

    Your instinct is wrong and you already suspect it. Updating is how a broken build becomes an unrecognisable broken build.

    Order that works: get it building exactly as it was. Lockfile untouched, same runtime version. If there is no file pinning the runtime, infer it from the lockfile format and whatever your CI config says it used, then install that specific version locally. Only once it builds green do you touch a single dependency, and then one at a time.

    Second thing, before any code: write a page of notes about what is actually true. Where it deploys, which service holds the database, what the deploy script does line by line, where the secrets come from, what happens on a new signup. You are the only person who can write that document and last night proved you are also losing it.

    Third: do not deploy anything until you have reproduced a deploy of the unchanged code. Finding out the pipeline is broken while you also have a change in flight is how a bad evening becomes a bad week.

    187
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @errwrap_elle · 3mo ago

      Came back to something after five months and did it in the wrong order, so this is what not to do. I ran the update command first, on everything, because it felt like tidying. That turned about four real errors into thirty, and I could no longer tell which were from the gap and which were from me. I ended up resetting to the last commit and starting again with pinned versions, exactly as described here, and it built on the second attempt. The whole detour cost me a weekend and taught me nothing.

      49
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @darning_dot · 3mo ago

      The dependency you did not change is rarely what broke. Your CI image moved underneath you, or your local runtime got upgraded by an unrelated update. Check what version is actually running before blaming the code.

      22
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @leech_wrangler · 3mo ago

    The red build is not your problem. Seven months of silence with eleven paying customers is your problem, and it deserves an hour before the code does.

    Are they still using it, or still paying for something they forgot about? When did each of them last log in? Has anyone emailed support and got nothing back, and is that inbox still forwarding anywhere you read?

    That hour determines whether the next weekend is a revival or a graceful wind down, and it is much cheaper than the weekend.

    79
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @kerf_wander · 3mo ago · 2 replies

    Time box it. Four hours to a green build. If you are not there, the problem is bigger than a stale dependency and you need a different plan.

    The other list nobody writes down is what expires while you are away. Certificates where auto renewal quietly stopped. API keys rotated or revoked by the provider. A scheduled job on a machine that rebooted and never started again. Store credentials that need annual renewal. A free tier whose terms changed. A domain on a card that expired.

    With eleven paying customers, check all of those before you touch the build, because one of them may be actively broken for a customer right now while you are looking at a compiler error.

    96
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @exdiv_eli · 3mo ago

      Add webhooks to that list. Payment providers eventually disable endpoints that fail continuously for long enough, and they notify you by email to an address you may not have read since December. If subscriptions look strange, look at the webhook page before you look at your code.

      34
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @analogy_ada · 3mo ago

    Read your own commit messages from the last month you worked on it. Fastest way back into your own head, and free.

    44
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @pentalobe_junie · 3mo ago

    Two things got me back into a project after a long gap. Thirty minute sessions with one goal each, because opening it for a whole Saturday meant opening it never. And a file called NEXT with three bullet points, updated at the end of every session, written to a version of me who remembers nothing. That file is the reason a two week gap does not turn into another seven months.

    37
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report