git-kick / ioBroker.e3dc-rscp

Manage E3/DC power station based on RSCP
GNU General Public License v3.0
26 stars 10 forks source link

Please consider fixing issues detected by repository checker #224

Closed ioBroker-Bot closed 3 months ago

ioBroker-Bot commented 3 months ago

Notification from ioBroker Check and Service Bot

Dear adapter developer,

I'm the ioBroker Check and Service Bot. I'm an automated tool processing routine tasks for the ioBroker infrastructure. I have recently checked the repository for your adapter e3dc-rscp for common errors and appropiate suggestions to keep this adapter up to date.

Please see the result of the check below.

ioBroker.e3dc-rscp

Downloads Number of Installations (latest) Number of Installations (stable) - Test and Release NPM

ERRORS:

WARNINGS:

Please review issues reported and consider fixing them as soon as appropiate.

Errors reported by repository checker should be fixed as soon as possible. Some of them require a new release to be considered as fixed. Please note that errors reported by checker might be considered as blocking point for future updates at stable repository.

Warnings reported by repository checker should be reviewed. While some warnings can be considered as a suggestion and be ignored due to good reasons or a dedicated decision of the developer, most warnings should be fixed as soon as appropiate.

Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged.

And THANKS A LOT for maintaining this adapter from me and all users. Let's work together for the best user experience.

your ioBroker Check and Service Bot

@mcm1957 for evidence

git-kick commented 3 months ago

ad [E204]: I think this is a false finding: https://github.com/git-kick/ioBroker.e3dc-rscp/blob/v1.2.6/io-package.json does not contain common.news "1.3.0".

https://github.com/git-kick/ioBroker.e3dc-rscp/blob/master/io-package.json does, but the error was not reported against master.

mcm1957 commented 3 months ago

The checker checks the current version of a repository. The master / main release of io-package.json does contain 1.3.0. So the finding is correct if this release is not at available at npm. Either the upload to npm (publish) did not work or something otrher is wrong. As the repobuilder uses the master / main version of io-package.json to create the informtion for admin which releases should be offered to user when selecting a dedicated version to install any version located at io-package.json but not at npm causes confision for users.

So please remove version from io-package.json.

mcm1957 commented 3 months ago

You asked: ad [E851]: I cannot find ".npmignore" in any of my files; how can I remove it?

but removed this obviously again. .npomignore is not IN a file, its a file itself.

image

git-kick commented 3 months ago

So please remove version from io-package.json.

I am using the master branch for collecting PRs (from branches), i.e. master is not identical to the latest release. Releases are always tagged with version numbers.

So, in my opinion, the checker should always check a tagged version "v.1.2.6" (= latest npm version) in the current case. "v1.3.0" should not confuse users since it is not displayed to users unless I release it. And it is correct that I do not create a npm version after each modification - as it is simply not intended to make every little change visible for users.

I think it comes down to the question "how to use the master branch". As far as I found out, both modes are quite common a) master is always the latest release b) master is the main development branch, latest release is a tag

mcm1957 commented 3 months ago

NO, as already stated the checker checks the MASTER / MAIN branch as it intended to perform the check before a release is created. Issues should be fixed before a new release is build. So its desired to check the latest development state.

AND the repository build also access the master / main branch. So 1.3.0 IS displayed to users as repository builder accesses io-package.json head release as stated above.

Normally news at io-package.json are inserted by @alcalzone/release-script during releasing a new version based on content of README.md. And release information is adapter by releasescripot duing release of adapter version too.

Collecting information at README.md tagged with WORK IN PROGRESS (as suggested by relase script) works for most repositories. Master branch is used by most developers for "latest development" content - thats fully ok and state of the art - but io-package.json news is normally updated during release only.

git-kick commented 3 months ago

I understand that the master branch is the hand-over point when I trigger a new release.

The point is that v1.3.0 was not released until now. The checker checked v1.2.6 (from May 2024) against master (as of now). This is a fragile process. No one should rely on having a master-branch unchanged for months.

But I can live with it, ignoring [E204] and similar.

mcm1957 commented 3 months ago

Please REMOVE the news entry of 1.3.0 from master/main version. This entry is incorrect and desturbs ioBroker operation for users. Users currently SEE 1.3.0 as available which is incorrect as you did notrelease it for now. Test by yourself using "bestimmte Version installieren":

image

Feel free to discuss changes to admin - although this has already been discussed and the decision was that the current file content from GitHub will be used. But for now please follow the rules used by all other developers and insert the news into io-package.json only at release of a version and not before. Simply ignoring the error is not the solution.

And as already noted: The checker does and should check the CURRENT contents of the repository. No idea why you refer to release 1.2.6. Is this release mentioned somewhere? The checker checks the repository content NOT the releaed version. Thats not its job. So I do not see any fragility there.

Anyway: Please remove 1.3.0 news from io-package.json. It's disturbing normal operation of repository.

@Apollon eventually you can explain this even better.

Apollon77 commented 3 months ago

The "problem" is here that usually io-package version list on master branch gets updated with release.

And also that the repository of iobroker is build from the latest io-package from GitHub (because of reasons) which exactly has issues when there is "future content" in it.

So it would be great if you could adjust your processes in a way that a version entry in io-package is just added when there is also a release with it (timewise near) done.

git-kick commented 3 months ago

@mcm1957 and @Apollon77, I appreciate your explanations and now I understand why you request to alter io-package only just before release.

But still consider:

  1. the original issue explicitely refers to v1.2.6, which is misleading:

    image
  2. obviously, the checker checks at times not directly coupled to releases (v1.2.6 is 2-3 months old, 1.3 was not released yet, check was 2 weeks ago) and it relies on human discipline (not to alter io-package while developing) - I call this a fragile process.

  3. since I use the "next version" (v1.3) to distinguish the dev-version easily in my test/int/prod environments, I have to change my process (like other developers working in the same way).

Therefore, I plead to impose such restrictions on master only for a small time slot around release. If this "released" state is needed later (e.g. for the checker), a snapshot should be taken during the "release transaction" and used for later operations. This I would result in a more robust process. (Indeed, the snapshot is taken by github: it's the tag!)

The fact that "bestimmte Version installieren" lists a Version which was never released is - sorry to say - a bug. This clearly breaks the "handover protocol" between adapter development and iobroker repo maintenance. npm whould be a good sync point in my opinion, because at least release checks were passed before.

mcm1957 commented 3 months ago

Ok, I understand where you saw the release. I will remoive that information to avoid confusion.

Again. The desired target of the repoisitory checker is to check the HEAD /Main / Master) version of a repository. It is NOT desingned to test a specifif release and it is also neither planned nor desired to check a specific release. Releases are checkd by the github based tests,

The repository checker is designed to check the current state of ana adapter an to early report any errors or warnings BEFORE a release is created. So the developer can adjust the code / setup before a new release is created.

The checker chesk at regular intervals and specific events. Currently a check is performed once a week, whenever a stable PR is issued and daily if a new release seems to ready for stable but is not yet released. In addition the checker can be troiggerd manually either using npx on commandline (see www.iobroker.dev) or be commenting with '@ioBroker-Bot recheck'.

Thanks for your understanding and adapting the news section.

mcm1957 commented 3 months ago

@ioBroker-Bot recheck

ioBroker-Bot commented 3 months ago

Thanks for contacting me.
I received your request to recheck this repository. I will start doing my work soon.
I will close an existing issue and create a new one if still any issues are to be evaluated and potentially to be fixed.

Thanks for spending your time and working at an ioBroker adapter.

your
ioBroker Check and Service Bot

ioBroker-Bot commented 3 months ago

This issue has been replaced by new isse #228
This issue can be closed.

your
ioBroker Check and Service Bot

git-kick commented 3 months ago

Ok, I acknowledge your approach to support adapter developers by regular and manually triggered checks of master. And it´s no big harm to receive a check result which was based on a intermediate, perhaps not really clean, master state.

But showing non-existent releases to end-users is a bug and I don't understand why "bestimmte Version installieren" is deliberately based on possibly wrong data (while consistent data are available, i.e. tag or npm) - which in the end leads to incorrect user interaction, as you stated correctly. I just cannot believe I am the only one messing around in io-package way before the next release...

Eventually I will adapt the news section, knowing that this is only a (bad) work-around.

ioBroker-Bot commented 3 months ago

Thanks for processing and closing this issue.

I will recheck for new issues later. So it's no problem if this issue has been closed premature.

You may start a new check at any time by adding the following comment to this issue:

@iobroker-bot recheck

Please note that I (and the server at GitHub) have always plenty of work to do. So it may last up to 30 minutes until you see a reaction. I will drop a comment here as soon as I start processing.

Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged. Let's work together for the best user experience.
your
ioBroker Check and Service Bot

Apollon77 commented 3 months ago

One last note: it is ok to increase the version in ip-package to check new versions. Just do not add changelog entries and bonuses would be offered that new version to install ;-)