Git Product home page Git Product logo

uu-notify's Introduction

Hey there! Nice to see you.


Languages:

java kotlin javascript

Tooling/Technologies:

intelliJ vscode git bash postgresql docker

Platforms:

linux aws GitHub


Bio

My name is Frank (alias franok).

I'm a Java Developer and generally interested in software development and any other IT related stuff.

Hobbies

๐Ÿ“š ๐ŸŽง ๐Ÿˆ ๐Ÿ๏ธ ๐Ÿ”๏ธ

Fun fact

My favourite 2020 lockdown activity: learning to play the harmonica (blues harp).

uu-notify's People

Contributors

franok avatar renovate[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar

uu-notify's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/build.yml
  • actions/checkout v3
  • actions/setup-node v3
npm
package.json
  • @octokit/core ^4.0.0
  • node-fetch ^2.6.7
  • chai ^4.3.7
  • mocha ^10.2.0
  • sinon ^15.0.3

  • Check this box to trigger a request for Renovate to run again on this repository

Script execution as alternative to notification

I've just stumbled upon #3 and #1 and I thought: why not simply execute a user provided script if an update is available? Then the user can decide if they want to send a mail, try an automated update or do something completely different.

Each software entry could take an optional script path to be executed. The script should accept the new version nr. and release download URL as arguments. Would be easier to implement than #1 and #3 and also more flexible imho...

E-Mail Notification as Gotify Alternative

Motivation: Make it the user's choice whether to use gotify for software update notifications, or receive them via email.

Thoughs on the code:
Should be some sort of interface* (e.g. notification-utils.mjs) that can be called with the same parameters. Based on configuration, either the gotify-utils or email-utils should be used to send out the notification.

*I'm a Java guy, thus I'm talking about interfaces. Not sure how one would properly realize such a pattern in JavaScript/Node.js

add unit-tests

merging renovate pull-requests (and also other code changes) can be done with more confidence, if the existing code has a sufficient test coverage

Todo: get into the topic of node.js unit testing

installation error when running setup.sh

affected versions of uuNotify: v1.1.3 (and higher)

Issue description:

Installation using the setup.sh script fails during npm clean-install step with following error:

Running 'npm clean-install' ...
npm WARN prepare removing existing node_modules/ before installation
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ssh://[email protected]/mapbox/node-sqlite3.git
npm ERR! 
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR! 
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR! 
npm ERR! exited with error code: 128
...

Root cause

A mix of npm v6 git dependency url resolution (ssh instead of https) and a workaround to get over a too old version of node-gyp in sqlite3 version 5.0.2. Won't go into details here.

The update of node-gyp in sqlite3 was already committed, but not yet packed into a new release of sqlite3. So there was the need to install sqlite3 from the git project directly, causing the issue described above.

Long term solution

update sqlite3 dependency, as soon as there is a new release of it on the npm registry, including the mentioned commit.

Workaround

Run 2 commands, one before, and one after ./setup.sh:

git config --global url."https://[email protected]".insteadOf ssh://[email protected]
./setup.sh
git config --global --remove-section url."https://[email protected]"

As you can see, this workaround requires changing a global git config. To avoid unwanted side-effects, you want to change this back with the second command, directly after setup.sh has completed!

generate release artifacts

Create release artifacts. A zip file containing only the relevant project files (in minified versions?), that can be downloaded (e.g. via wget).

The release artifacts should not include any files like

  • contributing.md
  • package.json (only package-lock.json)
  • mocks/
  • .gitignore

LICENSE.txt should be included!

Add auto-update functionality

Just a thought, not sure if it's a good or bad idea.

Try to auto-update patch levels (or even minor versions?). Send notification about update availability, execute update, send notification about success/failure.

Pros:

  • less manual interaction if updates are available
  • registering hooks to call update-scripts, located next to the installed software

Cons:

  • Cannot rely on SemVer. Software could also introduce breaking changes in patch-levels.
  • Other software doesn't follow Semver.
  • Danger of breaking something is high.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.