• ShortN0te@lemmy.ml
      link
      fedilink
      English
      arrow-up
      33
      ·
      8 months ago

      Disclaimer ⚠️ The project is under very active development. ⚠️ Expect bugs and breaking changes. ⚠️ Do not use the app as the only way to store your photos and videos. ⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!

      Yes project does not follow semantic versioning. But you can consider it it the 0.y.z state where it is even in the semantic versioning allowed to have breaking changes without major version increase.

      • azertyfun@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        13
        arrow-down
        1
        ·
        8 months ago

        There are quite a few mature projects in 0.x that would cause a LOT of pain if they actually applied semver.

        I am generally of the opinion that version numbers do not matter at all until the author/distributor has GUARANTEED that they do. Until then they’re worthless, including in places where semver is supposedly enforced like NPM. If I had a penny for every NPM package that broke my project after removing the package-lock.json, I could retire.

        • ShortN0te@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          8 months ago

          Absolutely agree with you. Just because the Versioning looks like x.y.z does not mean it follows that convention. The most prominent example is probably the Linux Kernel Versioning.

          Read the notes of the dev team and subscribe to the changelog or update channel.

        • BlueBockser@programming.dev
          link
          fedilink
          English
          arrow-up
          3
          ·
          8 months ago

          There are quite a few mature projects in 0.x that would cause a LOT of pain if they actually applied semver

          Depending on how one defines the “initial development” phase, those projects are actually conforming to semver spec:

          Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

    • Sibbo@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      1
      ·
      8 months ago

      Yep. Semver is so much more useful than the marketing versioning which many projects do.

  • quaff@lemmy.ca
    link
    fedilink
    English
    arrow-up
    9
    ·
    8 months ago

    Good share. I saw the nudge in the mobile app, but I didn’t realize there was breaking changes and upgraded in the middle of the night before bed (what the hell was I thinking???). Spent a good extra hour trying to figure out why.

    Key take away, the pgvecto.rs version needs to be upgraded. If you are using docker, update the docker-compose.yml. If you’re not, upgrade your pgvector.rs version first. 🙏

  • walden@sub.wetshaving.social
    link
    fedilink
    English
    arrow-up
    6
    ·
    8 months ago

    Thanks for the heads up!

    I got Immich running last week and it’s impressive.

    The only thing I yearn for is a way to get the pictures to easily display on the cloaed-source frame we have.

    Anyone know of a way to automatically email pictures added to an Immich album?

  • sabreW4K3@lemmy.tf
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    2
    ·
    8 months ago

    I don’t understand. Why are they so specific in the Docker Compose? Why not just have a Docker that pulls the latest of each package without requiring the user to copy long strings?

    • EarMaster@lemmy.world
      link
      fedilink
      English
      arrow-up
      14
      ·
      8 months ago

      For the exact reason they are posting this. What if some service you are referencing has breaking changes? If you pinpoint the exact version it will have no effect to your project unless you decide (hopefully after some consideration) to upgrade the service version number.

      • sabreW4K3@lemmy.tf
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        1
        ·
        8 months ago

        Sorry, I think I’m asking my question poorly, what I mean is instead of

        image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
            
        

        Which clearly requires user interaction, why not take that out of users’ hands and just have

        image: tensorchord/pgvecto-rs:latest-stable
            
        

        Which is effectively what they’re using anyway? I can understand freezing on a version when the upstream removes a feature, but that’s not happened and even so, why do they need the SHA verification? Sorry if it seems stupid and straight forward, this is the only container I host that does this and so I’m trying to understand it rather than just feel aggrieved by it.

        • topsecret@feddit.uk
          link
          fedilink
          English
          arrow-up
          7
          ·
          8 months ago

          Also, it’s best practise to specifically refer to the digest for containers to avoid re-tags resulting in different images. For folks who audit what runs on their infrastructure, digests are the standard way of referring to an image. For Immich, I’d presume that the digest is partially a security thing and partially a “this specific image is known to be working”.

        • ShortN0te@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          8 months ago

          pgvecto.rs is a Postgres extension that provides vector similarity search functions. It is written in Rust and based on pgrx. It is currently in the beta status, we invite you to try it out in production and provide us with feedback. Read more at 📝our blog.

          Because there is no stable release. Any update can have breaking changes since it is beta software like immich itself.

          • sabreW4K3@lemmy.tf
            link
            fedilink
            English
            arrow-up
            4
            ·
            8 months ago

            Thank you very much. I looked at their Github and saw a couple channels for releases and made a poor assumption. Thanks for sharing your insight.

        • GravitySpoiled@lemmy.mlOP
          link
          fedilink
          English
          arrow-up
          4
          ·
          8 months ago

          I wondered about the sha as well but that’s good if you really depend on that version. Since immich is still heavily developing, this isn’t something I’d focus in the short term. Only if it persists

  • Tywèle [she|her]@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    8 months ago

    I’m using the Immich app from TrueNAS, how do I properly update it? Or is it being taken care off by TrueNAS?

    Edit: I asked on the TrueNAS discord for help and someone who already updated their Immich figured out how to fix the installation afterwards. I copy&paste the guide here:

    This guide assumes that Heavyscript is installed and pgAdmin.
    https://github.com/Heavybullets8/heavy_script
    https://truecharts.org/charts/stable/pgadmin/

    • Upgrade Immich to v.1.95.1.

    • If Immich fails to deploy check the logs heavyscript pod --logs immich. If the logs complain that indexes need to be deleted continue with this guide.

    • Access the shell for the postgres pod heavyscript pod -s immich.

    • Select the postgres pod.

    • Inside the pod run env and record the password. Then type exit to exit the pod.

    • Get the DNS address and port for Immich postgres pod. heavyscript dns -a

    • Launch pgAdmin and right-click on Servers select Register > Server.

    • In the Connection tab put the hostname and port from step 6. The username is immich and use the password from step 3.

    • Once connected create a backup by expanding Servers > Immich > Databases and right-click on immich then select Backup.... Follow the prompts to create a backup.

    • Right-click on immich and select Query Tool.

    • Use the following query to delete your indexes.

        FROM pg_index X JOIN
             pg_class I ON I.oid = X.indexrelid JOIN
             pg_am A ON A.oid = I.relam
        WHERE A.amname = 'vectors';
    
    • Stop Immich with heavyscript heavyscript app --stop immich.

    • Once all pods have scaled down start Immich heavyscript app --start immich.

    The SQL query will complain about a syntax error but it will work regardless. It just takes some time to redeploy immich.

    Credit goes to @verbalsiegeengine on Discord

  • DontNoodles@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    For someone freshly interested in self hosting, what does breaking changes with respect to immich really mean? Does it mean that if I upgrade to this version, I have to rebuild my library, face tags etc? Or does it mean that things might stop working and some files might need to be changed, upgraded manually and things may get awry in doing so.

    • baatliwala@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      8 months ago

      Normally a breaking change means after you apply the change it’s not easy/straightforward to rollback to the older version if you want to do that for whatever reason.

      For example, a new version is released and underlying database table or structure changes. You upgrade properly, and find the new version has some bugs (or you simply don’t like it). If you want to use the older version again until the newer one is fixed it’s not a matter of simply point to old version.

      As the database structure has fundamentally changed underneath in the new version, when you put back the old version it simply doesn’t understand the new structure and might stop working. You need ways to be able to make the DB structure compatible with the older application.

      If the application is stable the devs might provide ways to do this. But since this is an alpha… You’re on your own.

      TL;DR it means the older and newer version of the application aren’t strictly compatible with each other

    • BCsven@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      I haven’t reviewed the changelog for this immich, but yes a breaking change typically means if you just went and updated you would have a broken system. sometimes something like you mentioned if a backend database is changed or db column attributes altered.

      • DontNoodles@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 months ago

        This scares me to an extent but as long as immich provides some instructions on what to do to get back on track, this should be okay.

        Also, what happens if one skips multiple such breaking updates? Will it be my responsibility to hunt down the changes and make corresponding amends?

        And finally, while I understand that immich is not supposed to be photo backup solution, does it allow export and import of metadata, tags etc? I ask because I intend to set it up and I may skip few of these updates and instead do a fresh install a year or so later. If I can simply export my settings, face ID info, albums from old setup and import it into the new one then it makes things very easy.

        Otherwise the phrase breaking changes does sound really scary.

        • BCsven@lemmy.ca
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          8 months ago

          Yep

          Yes

          That part I haven’t read up on

          Breaking changes are scary for running solutions. it is why IT has a mandate of “Never touch a running system” (security patches only)

          Immich is a younger, quickly evolving project, so new features or improvements may justify breaking the upgrade path. There may be folks that share data migration tips when that happens. It is why in corporate world we never want to be on the latest version of something; let the non critical data users find the problems.

          Also you may have seen this on the project page. Basically use at own risk until things mature:

          ⚠️ The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!

      • BCsven@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        8 months ago

        As an example in an engineering software it had been forward compatible for 30 years, recently they changed the datatypes for certain expressions: some expressions that could be number type now were restricted to integer. This broke every formula built off of that expression type in legacy data. ugg

  • RegalPotoo@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 months ago

    Cool - was trying to get set up with v1.94, but had real trouble getting pgvecto-rs to work properly, pgvector seems much more stable and better supported and was a breeze to get running

  • nyakojiru@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    8 months ago

    Fuck… late for me. Thanks watchtower… wonder if this means an update will fix it or it’s just dead and needs manual intervention

  • DeltaTangoLima@reddrefuge.com
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    2
    ·
    8 months ago

    Lol - Immich is one of those stacks that I let Watchtower auto-upgrade. I don’t consider it mission critical if it breaks and it takes me a day or so to notice it (all my photos and videos are also backed up using Syncthing).

    I’ve gotten used to just going to the repo if the error message for the container doesn’t immediately lead me to the fix.

    • Chewy@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      8 months ago

      Immich has breaking changes too often, so I disabled auto updates for the server and phone app. Updating every few months with backup beforehand is a good tradeoff for something as important as images.

      Reading patch notes is especially important with some Immich releases requiring minor admin intervention, e.g. running an extract metadata job.

      • DeltaTangoLima@reddrefuge.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        8 months ago

        Each to their own. Immich devs themselves strongly recommend not relying on Immich as a backup solution.

        I don’t, therefore I don’t consider it critical enough to worry about.