Add functionality to disable resolutions

Adds functionality to disable resolutions from a static resolution list.
Adds hidpp20 driver implementation for this functionality.
Some other minor changes, see commits.
Closes #869.

My approach is to define that removing a dpi means setting it to 0, behavior which is different from that requires a quirk. This is consistent with the description of ratbag_resolution_set_dpi in libratbag.h and makes an implementation in piper easier.

It took me a couple of tries before I got a working example. A couple of things to note:

HIDPP_CAP_REMOVABLE_RESOLUTIONS still needs to be implemented properly, would be nice if someone can help me since I've no idea how the definitions of the capabilities work.
When setting a resolution to active which has a dpi of 0, the device responds with ERR_INVALID_ARGUMENT (at least my G Pro did). That was possible before, but we should prohibit such behavior.
I added some debug outputs. I think they are useful, so I wouldn't remove them if it's okay.
I'm not sure why the test on Ubuntu fails.
It took me a while to enable the verbosity for ratbagd.devel. I did it by replacing cmd.verbose with 2 in ratbagctl.devel line 59. What is the proper way?
Kinda offtopic, but why are there goto's instead of return's in the driver? (line ~970f)

Sorry for all the force pushes, had some troubles with the test suite (we don't want to allow users to switch the active resolution to a resolution with zero dpi, but the test suite does that).

Sorry for all the force pushes, had some troubles with the test suite (we don't want to allow users to switch the active resolution to a resolution with zero dpi, but the test suite does that).

No problem, that's perfectly fine :)

It took me a while to enable the verbosity for ratbagd.devel. I did it by replacing cmd.verbose with 2 in ratbagctl.devel line 59. What is the proper way?

IIRC -vvv

Kinda offtopic, but why are there goto's instead of return's in the driver? (line ~970f)

Probably leftover. At some point we might have been freeing memory there and it's easier to just define it once.

I added some debug outputs. I think they are useful, so I wouldn't remove them if it's okay.

Sure, but please do it in a separate commit.
Also, try to keep the git history tidy. Having a good commit messages and descriptions makes it easier to go debug things (find relevant patches) and also doubles as documentation.
For example, in this case I would put something of the sorts:
hidpp20: add debug messages when setting DPI
libratbag: add option to disable resolutions
hidpp20: enable disable resolutions

So, I think the implementation plan is:
- Add is_enabled and allows_disabling property to resolutions
- Implement a new method to in the driver to enable/disable resolutions (only called when allows_disabling is set)
- Make the HID++ 2.0 driver enable allows_disabling for each resolution if the 0x8100 (onboard profiles)
I am pretty sure setting the DPI to 0 to disable it only works in the 0x8100 feature but I will need to check.
Some more details: is_enabled should default to true and allows_disabling should default to false.
@whot do you remember where in the code we create the resolutions (set the defaults)?
@stephanlachnit I know this can be a lot, so please feel free to ask anything, you could also drop by the IRC (#libratbag on freenode) for live chat.

On a second step we would make piper aware of the added properties.

My idea here was basically "defining" that removing means setting to zero. If a device actually uses a different implementation, I would treat it as a quirk, that's need to be added to the driver. This has the big advantage, that the implementation is way easier. Right now, there are only Logitech devices using hidpp20, where this should work anyway. Other drivers maybe use a different default implementation, but setting a zero dpi is prohibited by libratbag anyway, so we can just use this as a sneaky workaround. But I realized to break other drivers, I would need to use a capability for all drivers.

@stephanlachnit I know this can be a lot, so please feel free to ask anything, you could also drop by the IRC (#libratbag on freenode) for live chat.

Thanks, I joined it.

I reworked basically everything. The more I get into it, the more I understand your implementation plan, thanks again. I think I'm finished, only two minor things where I would need a quick explanation, see comments in the code.

My idea here was basically "defining" that removing means setting to zero. What the driver actually does is a different thing, setting a dpi to zero is prohibited by libratbag anyway, so we can just use this as a sneaky shortcut. It has the advantage, that the implementation in the drivers (right now only hidpp20) and in piper is way easier.

That is fine for internal API but it's not a great solution for the public DBus API. I really want to have enable/disable property in DBus.

My idea here was basically "defining" that removing means setting to zero. What the driver actually does is a different thing, setting a dpi to zero is prohibited by libratbag anyway, so we can just use this as a sneaky shortcut. It has the advantage, that the implementation in the drivers (right now only hidpp20) and in piper is way easier.

That is fine for internal API but it's not a great solution for the public DBus API. I really want to have an enable/disable property in DBus.

If the mouse can add resolutions dynamically, it really makes sense to add DBus APIs for adding/removing resolutions, and we should add an own capability for that. In the static case, where the mouse even reports "disabled" resolutions, a DBus property would be nice to have, but not strictly necessary since everything is well defined. Maybe I will improve later on that, but I would prefer a real working code before making it super complicated for me (working with DBus is kinda new to me).

Developing and debugging with DBus is kinda new to me

I will also look into it but you should be able to just copy the code from other properties and see it in d-feet.

Developing and debugging with DBus is kinda new to me

I will also look into it but you should be able to just copy the code from other properties and see it in d-feet.

Actually it wasn't to hard, I really just copied the code and added the implementation anyway. Shared code should be finished (still need to review it my self that I didn't miss anything), but the HID++2.0 driver changes need a rewrite with this new change. Also there should be an implementation for ratbagctl.

PR can be reviewed now. I checked every commit now twice and I think it's good as it is.
I have two remaining questions, but I they don't really affect the state of the PR:

If a driver doesn't set a value for is_disabled, is it always disabled by default? I checked it with the hidpp20 driver without the implementation, but I'm still not sure.
See comment about launch_fail_test

Please do not merge. I have some problems in ratbagd.py  while developing the piper implementation. If you commit for example 1300 dpi but disabled, but the driver changes the resolution to 0 dpi, ratbagd.py doesn't notice this. Working on a fix.

Ok this changes will be a monster to review, I'm really sorry. I tried to document every commit as good as possible, I will also write a longer explanation here once I'm sure everything works.
Maybe will revert 8e9dd6f392502b3c29e11ded416ae1cc83949e08.

Can you squash:
* all the `implement disabled resolutions` patches (but the hidpp one), as they are really one logical change

* all the `implement changed resync behavior` patches for the same reason

And rebase against master so we get a better view?

Don't even bother to look right now, before I haven't figured out what piper's problem is I will change probably a lot. The disabled base code works fine but piper doesn't detect resolution changes while stuff got committed. It's not a problem of the library, because with a restart the value is correctly at zero. Not sure if this approach with the resync is actually what I want, have to some further debugging to actually see what the problem is.
Will report back with a squashed and rebased PR when I know what's going on.

Some extra comments on the behavior. When disabling a rtabag resolution (not the internal HID++ one) you should not set it 0 dpi, otherwise we will lose the data about the dpi level. We want users to be able to enable and disable resolutions without losing the dpi level they have stores there. Please fix this behavior before the final review.

Some extra comments on the behavior. When disabling a rtabag resolution (not the internal HID++ one) you should not set it 0 dpi, otherwise we will lose the data about the dpi level. We want users to be able to enable and disable resolutions without losing the dpi level they have stored there. Please fix this behavior before the final review.

But when you restart you'll loose it anyway, so I don't see the point here.

But when you restart you'll loose it anyway, so I don't see the point here.

Yes but keeping the values during a session is fine for most users. Optimally we would keep them across sessions but that would be a future improvement.

sorry, was on leave for a week

@whot do you remember where in the code we create the resolutions (set the defaults)?

drivers are supposed to call ratbag_resolution_set_dpi_list() or ratbag_resolution_set_dpi_list_from_range()

No problem, I figured it out :grin:.

But when you restart you'll loose it anyway, so I don't see the point here.

Yes but keeping the values during a session is fine for most users. Optimally we would keep them across sessions but that would be a future improvement.

Actually that's a good idea since it makes the whole new resync thing redundant. I have a working version here but I need to do some serious code and git history cleanup, but I should get it done this year :)

Without the resync behavior everything went faster as expected. Rebased everything, can now be reviewed (again). Works also with this piper PR: https://github.com/libratbag/piper/pull/448.
@FFY00 I squashed the driver debug logs together as suggested, and also added a "committing" and "committed" output so it's a nice visible block, for example:
ratbag: profile 0 resolution 1: set enabled
ratbag: profile 0 resolution 1: set 6500 dpi
ratbag: profile 0 resolution 1: set active
driver: committing
driver: profile 0 resolution 0: 1000 dpi
driver: profile 0 resolution 1: 6500 dpi, active
driver: profile 0 resolution 2: 0 dpi
driver: profile 0 resolution 3: 0 dpi
driver: profile 0 resolution 4: 0 dpi
driver: committed

Let me quickly go through the main changes:

I added a new is_disabled property and disabled resolution capability. This needs to be handled internally by the driver, so no super big changes to the common code are actually required here.
Bunch of changes go to the addition of the new DBus API interface, but that's mostly copied from the active/default properties.
The test driver needed some adjustments, and some test had do be edited to not just check for the word disabled.
Sometimes I changed the order in the code, so everywhere it's now first "active", then "disabled" (sometimes after that "enabled") and in the end "default". Makes it easier to find code, but maybe looks a little bit confusing when you look at the git changes.

Tip: Use fixup commits to resolve the issues.
https://fle.github.io/git-tip-keep-your-branch-clean-with-fixup-and-autosquash.html

The test driver really needs some serious rewriting. I had sooo many random fails because the driver thinks that resolution 1 is the default one even thought is explicitly not default. Now it's again not working and I have no clue why, it just doesn't make sense.

Rebased against master and included #898 & #899.

In case anyone has too much time, I rebased everything against master.

LGTM

Rebased, fixed a few errors on Python side, and added support for the sinowealth driver.

Over 3 years since the PR has been opened, finally merged. :)


Stopwatch

Deliverables:

Make a decent stopwatch using Vanilla Javascript with start, stop and reset button.

I would like to work on this .

Sure go ahead @khushi935 :)

Hey @urvashi-code1255  I also want to work on this issue can you please suggest UI you want or How should it look like.

Hey @urvashi-code1255 I also want to work on this issue can you please suggest UI you want or How should it look like.

hey @Nagsenwaghmare This issue can only be assigned to one person. There are many more issues to work on. Please have a look at those

@urvashi-code1255 ok, fine

https://user-images.githubusercontent.com/62712155/107261166-fd11ad00-6a64-11eb-81a5-ef3c8c4a3626.mp4
Does this look good?

Does this look good?

Looking pretty cool!! @khushi935 . Please make a PR for the same.

I should add a photo and shotwatch heading in the project section(home page) as well?

I should add a photo and shotwatch heading in the project section(home page) as well?

Yes make a card similar to other cards and add image of stopwatch to it. Also add link of html file to href of a in the home page.


add support custom user agent

Sometimes need special user agents
for example mobile

also i add helm chart, if you want
https://github.com/zfcsoftware/cf-clearance-scraper/compare/main...ivan1986:cf-clearance-scraper:helm?expand=1

This feature is very useful. Any prediction if would be available soon?


Adding flexible way of sizing queries in offline mode. Also, adding instructions to readme.

@mnaumovfb I merged it since the readme is really helpful. However, I'd like to double check on the parameter for offline --samples-per-query-offline=1 during the next meeting. I thought the samples per query is the same for server and offline, but it is not the case from your readme @nvpohanh

I'll be glad to explain it in more detail on Tuesday. As a background recall that each query is composed of aggregated samples, using --samples-per-query-offline=1 and --samples-to-aggregate-fix=2048 rather than vice-versa in offline scenario will just help the code run faster, but results will be the same (see https://github.com/mlperf/inference/issues/607#issuecomment-663644583).

samples-per-query-offline is essentially the perf_sample_count, and it has to be at least 204800 (~8GB of data) according to the rules.

To me, the name samples-per-query-offline is misleading. It doesn't determine how many samples a query will contain in Offline scenario.

We can discuss this in more detail on Tuesday, but I don't believe your understanding is correct.
Let me try to explain it once more.

Offline scenario
The code goes through the entire testing set of samples. The individual samples are first grouped into aggregated samples, then a query of a certain number of aggregated samples is issued, with these query being processed in a set of batches of size --max-batchsize.

The (# of queries with aggregated samples) =  (# of individual samples in the testing set) / ((# of aggregated samples per query) * (# of individual samples in an aggregated sample)). These correspond to the following parameters:
of aggregated samples in a data set = min((# of individual samples in the testing set)/(# of individual samples in an aggregated sample), --count-samples)
of aggregated samples per query = --samples-per-query-offline
of individual samples in an aggregated sample = governed by parameters --samples-to-aggregate-*

Server scenario
The # of queries is specified in the mlperf.conf and is 270336.

@nvpohanh We need to reconcile how perf_sample_count is connected with the above parameters.

Yeah, I think perf_sample_count should be it's individual parameter.
One question about this line:

num of aggregated samples per query = --samples-per-query-offline

Is this in AccuracyOnly mode or PerformanceOnly mode? In PerformanceOnly mode, the num of aggregated samples per query that LoadGen generates would be 1.1 * min_duration * offline_expected_qps. In AccuracyOnly mode, the num of aggregated samples per query is only up to perf_sample_count, but there might be multiple queries if perf_sample_count < total_sample_count in order to cover the entire test set.

For the Offline scenario, I was thinking of the accuracy mode. As far as I can see in my experiments the query length is capped here by the --samples-per-query-offline parameter (this is also used implicitly in image classification and detection by passing 500 here)

ps. I have improved the recording of query response to avoid duplication. Please review and approve when you have a chance. https://github.com/mlperf/inference/pull/675


update terraform-boot and tofu-maker Dockerfiles to support multiple version of tool

[ ] As part of the release build of terraform-boot and tofu-maker, the user can provide the list of versions of the tools that can be installed.
[ ] If not provided, a default assumed list of most widely versions of the tool must be used and installed.
[ ] Create executables with name-version format.

let me do it

I will take it

@swaroopar Please reassign this to me.


[MRG] Functions order + git presentation

Change the order of the functions and a comment such that people used the solution before the module creation.

@glemaitre Remember to put some links for extra material


feat: Workspace Sync command

This pull request completes the existing Sync command stub, and adds tests for it. It also makes a few small changes to pullVaults and pushVaults functions to make testing easier.

@kevinslin Added the push test.


Refactor the Memo field into a legacy memo and ng memo

This follows the many-rs PR https://github.com/liftedinit/many-rs/pull/201 and the specification latest master and its follow up PR https://github.com/many-protocol/specification/pull/58 which includes burnt fields (to add new fields instead of re-typing old ones).

Codecov Report

Merging #286 (b34e793) into main (e87ecce) will increase coverage by 0.69%.
The diff coverage is 83.37%.

@@            Coverage Diff             @@
##             main     #286      +/-   ##
==========================================
+ Coverage   74.96%   75.65%   +0.69%
==========================================
  Files          65       68       +3
  Lines        8778     9118     +340
==========================================
+ Hits         6580     6898     +318
- Misses       2198     2220      +22

Impacted Files
Coverage Δ

src/ledger/src/multisig.rs
0.00% <0.00%> (ø)

src/many-ledger/src/main.rs
0.51% <0.00%> (+0.05%)
:arrow_up:

src/many-ledger/src/migration/data.rs
98.70% <ø> (ø)

src/ledger-db/src/main.rs
2.85% <2.85%> (ø)

src/many-ledger/tests/common/mod.rs
96.52% <82.45%> (-1.69%)
:arrow_down:

src/many-ledger/src/storage.rs
90.47% <86.36%> (+4.92%)
:arrow_up:

src/many-ledger/src/migration/memo.rs
89.39% <89.39%> (ø)

src/many-ledger/tests/migration_/memo.rs
99.11% <99.11%> (ø)

src/many-ledger/src/module.rs
78.78% <100.00%> (+0.21%)
:arrow_up:

src/many-ledger/src/storage/abci.rs
100.00% <100.00%> (ø)

... and 15 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I think we need to migrate InfoReturn as well. I marked the fields requiring your attention with **. The Memo is still located in the old field after the migration for legacy transactions, which is not consistent with the rest.
Everything is fine for transactions submitted after the migration ran.
Before migration
InfoReturn {
**  memo_: Some(
**      Memo(
**          "Legacy_Memo",
**      ),
**  ),
    transaction: Send(
       ...
    data_: None,
    state: Pending,
**  memo: None,
}

{
    0: 3,
...
            2: {
                0: [9, [1, 0]],
                1: 10000_1(h'01054d5b7773d51b36c65324baddfd3b5bc8dbb8929270b8708e479502'),
                2: 10000_1(h'80e8acda9634f6f745be872b0e5e9b65b1d3624a3ba91c6432143f60e9000000'),
**              3: "Legacy_Memo",
           ...
                9: null,
**              10: null,
            },
        },
    ],
}

After migration
InfoReturn {
**  memo_: Some(
**      Memo(
**          "Legacy_Memo",
**      ),
**  ),
    transaction: Send(
      ...
    data_: None,
    state: Pending,
**  memo: None,
}

{
    0: 3,
   ...
            2: {
                0: [9, [1, 0]],
                1: 10000_1(h'01054d5b7773d51b36c65324baddfd3b5bc8dbb8929270b8708e479502'),
                2: 10000_1(h'80e8acda9634f6f745be872b0e5e9b65b1d3624a3ba91c6432143f60e9000000'),
**              3: null,
                4: {
                    0: [6, 0],
       ...
                7: 1(1669302311_2),
                8: false,
                9: null,
**              10: ["Legacy_Memo"],
            },
        },
    ],
}

Waiting for CI to be green, then merging https://github.com/liftedinit/many-rs/pull/201 then updating this then merging this.


Minimal Example of face tracking does not work

Hi,
When I try to run the minimal face tracking example code on local server, I get an error Uncaught SyntaxError: Illegal return statement (at mindar-face-aframe.prod.js:1:1648)  as shown in the attachment.
I am using the following code as is.
https://hiukim.github.io/mind-ar-js-doc/face-tracking-quick-start/webpage
How should I deal with this?

Thanks for reporting.  You will need to add type=module. I'll fix the documentation.
<script<EMAIL_ADDRESS>type="module"></script>

Thank you.
I tried to change it, but there appears to be another error.

what other error

As you can see in the attached screen above.
Uncaught SyntaxError: Illegal return statement (cdn.jsdelivr.net/npm…ce-aframe.prod.js:1)

sorry, my bad. Ignore my previous comment.
But it should now be fixed in latest version v1.2.2

It worked!
Thank you so much!


Dev

I see 4 commits, but there's just one line in main.py changed when I look at "Files changed". Could you please explain?

Sorry, I fixed the commits number issue.
The fix is for pycharm to work with the click package:
https://github.com/pallets/click/issues/536


feat: allow predefined security groups

Add variables to allow for preexisting security groups to be assigned to the server and cluster nodes. Useful for environments where the creation of security groups is prohibited by governance policies.

@scmeli - I took a look at this PR, and it seems that it will not be backwards compatible for anybody that has an existing cluster.  In my test environment, Terraform wanted to remove my existing cluster in order to implement these changes.  Is that something you were aware of?  This appears to be cause by your removal of resource "aws_security_group" "this" {, which I'm not sure if that was intentional.


Amplify add auth fails due to UserPoolClientLambda Runtime config of nodejs6.10

Describe the bug
Amplify add auth fails due to UserPoolClientLambda Runtime config of nodejs6.10
To Reproduce

Create a brand new amplify project and initialize as usual (amplify init, etc)
amplify add auth
amplify push

CREATE_FAILED      UserPoolClientLambda AWS::Lambda::Function Wed Dec 18 2019 09:04:38 GMT-0500 (Eastern Standard Time) The runtime parameter of nodejs6.10 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs12.x) while creating or updating functions. (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: 98fdc94c-ed13-494e-95a9-1ea28a008f68)

Expected behavior
amplify add auth results in successful execution using supported version of Lambda runtime.
Screenshots
If applicable, add screenshots to help explain your problem.

Environment

npx envinfo --system --binaries --browsers --npmPackages --npmGlobalPackages

Additional context
Add any other context about the problem here.
Sample code
You can turn on the debug mode to provide more info for us by setting window.LOG_LEVEL = 'DEBUG'; in your app.

@dave-malone This looks like an older version of the CLI being used (v<2.0) to instantiate a new app. Please check the version by running amplify -vand usenpm install -g @aws-amplify/cli`  to install the latest version of the CLI and re-add auth and then push.
Please let us know if you're facing issues with the latest version of the CLI as well.


Chkrootkit: some tests result show INFECTED.

Issue description
root@nixos_root_server> chkrootkit                                                                                ~
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... INFECTED
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not found
Checking `crontab'... not found
Checking `date'... /bin/sh
INFECTED
Checking `du'... not infected
Checking `dirname'... INFECTED
Checking `echo'... INFECTED
Checking `egrep'... not infected
Checking `env'... INFECTED
Checking `find'... not infected
Checking `fingerd'... not found
Checking `gpm'... not found
Checking `grep'... not infected
Checking `hdparm'... not found
Checking `su'... not infected
Checking `ifconfig'... not infected
Checking `inetd'... not tested
Checking `inetdconf'... not found
Checking `identd'... not found
Checking `init'... not infected
Checking `killall'... not found
Checking `ldsopreload'... can't exec ./strings-static, not tested
Checking `login'... not infected
Checking `ls'... not infected
Checking `lsof'... not found
Checking `mail'... not found
Checking `mingetty'... not found
Checking `netstat'... not infected
Checking `named'... not found
Checking `passwd'... not infected
Checking `pidof'... not infected
Checking `pop2'... not found
Checking `pop3'... not found
Checking `ps'... not infected
Checking `pstree'... not found
Checking `rpcinfo'... not found
Checking `rlogind'... not found
Checking `rshd'... not found
Checking `slogin'... not found
Checking `sendmail'... not found
Checking `sshd'... not infected
Checking `syslogd'... not tested
Checking `tar'... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `top'... not infected
Checking `telnetd'... not found
Checking `timed'... not found
Checking `traceroute'... not found
Checking `vdir'... not infected
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... no suspect files
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... /run/current-system/sw/bin/find: ‘/usr/lib’: No such file or directory
/run/current-system/sw/bin/find: ‘/usr/lib’: No such file or directory
nothing found
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... /run/current-system/sw/bin/find: ‘/sbin’: No such file or directory
nothing found
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... /run/current-system/sw/bin/find: ‘/usr/lib’: No such file or directory
nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
Searching for OpticKit... nothing found
Searching for T.R.K... nothing found
Searching for Mithra... nothing found
Searching for LOC rootkit... nothing found
Searching for Romanian rootkit... nothing found
Searching for Volc rootkit... nothing found
Searching for Gold2 rootkit... nothing found
Searching for TC2 Worm default files and dirs... nothing found
Searching for Anonoying rootkit default files and dirs... nothing found
Searching for ZK rootkit default files and dirs... nothing found
Searching for ShKit rootkit default files and dirs... nothing found
Searching for AjaKit rootkit default files and dirs... nothing found
Searching for zaRwT rootkit default files and dirs... nothing found
Searching for Madalin rootkit default files... nothing found
Searching for Fu rootkit default files... nothing found
Searching for ESRK rootkit default files... nothing found
Searching for rootedoor... nothing found
Searching for ENYELKM rootkit default files... nothing found
Searching for common ssh-scanners default files... nothing found
Searching for Linux/Ebury - Operation Windigo ssh... not tested
Searching for 64-bit Linux Rootkit ... nothing found
Searching for 64-bit Linux Rootkit modules... nothing found
Searching for Mumblehard Linux ... nothing found
Searching for Backdoor.Linux.Mokes.a ... nothing found
Searching for Malicious TinyDNS ... nothing found
Searching for Linux.Xor.DDoS ... nothing found
Searching for suspect PHP files... nothing found
Searching for anomalies in shell history files... nothing found
Checking `asp'... not infected
Checking `bindshell'... not infected
Checking `lkm'... not tested: can't exec
Checking `rexedcs'... not found
Checking `sniffer'... not tested: can't exec ./ifpromisc
Checking `w55808'... not infected
Checking `wted'... not tested: can't exec ./chkwtmp
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... not tested: can't exec ./chklastlog
Checking `chkutmp'... not tested: can't exec ./chkutmp
Checking `OSX_RSPLUG'... not tested

Why there is some packages has INFECTED?
I think that is because some binaries patched for correct working with nix-store, but i'm not sure...
Steps to reproduce
environment.systemPackages = with pkgs; [
  binutils
  chkrootkit
];

# chkrootkit
Technical details

system: "x86_64-linux"
host os: Linux 4.9.71, NixOS, 17.09.2476.53e6d671a96 (Hummingbird)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 1.11.16
channels(root): "nixos-17.09.2476.53e6d671a96"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

FWIW, using coreutils.override { singleBinary = false; } fixes a number of those tools being detected as 'INFECTED'.
I think in general this tool is not particularly suited for NixOS as-is, interpret the results with copious quantities of salt :).

Using #33152 and this nix expression:
(modify local path to an appropriate location)
with import /home/will/nixpkgs {};
mkShell {
  nativeBuildInputs = [
    (coreutils.override { singleBinary = false; })
    binutils
    chkrootkit
  ];
}

Results in much better output.  Also, consider using the -q flag to be less noisy:
$ cd /path/containing/above/default-dot-nix
$ sudo nix-shell
$ chkrootkit -q

This is a false-positive based on some strings found in the inspected binary.
Looking at chkrootkit source the check for 'basename' is:
chk_basename () {
   STATUS=${NOT_INFECTED}
   CMD=`loc basename basename $pth`

   if [ "${EXPERT}" = "t" ]; then
       expertmode_output "${strings} -a ${CMD}"
       expertmode_output "${ls} -l ${CMD}"
       return 5
   fi
   if ${strings} -a ${CMD} | ${egrep} "${GENERIC_ROOTKIT_LABEL}" > /dev/null 2>&1
   then
       STATUS=${INFECTED}
   fi

   [ "$SYSTEM" != "OSF1" ] &&
   {
      if ${ls} -l ${CMD} | ${egrep} "^...s" > /dev/null 2>&1
      then
         STATUS=${INFECTED}
      fi
   }
   return ${STATUS}
}

where
# Many trojaned commands have this label
GENERIC_ROOTKIT_LABEL="^/bin/.*sh$|bash|elite$|vejeta|\.ark|iroffer"

And since
$ strings /nix/store/y9kxbzvm78zzc9ab3i3rmlxlkgnd7bcw-coreutils-8.30/bin/basename | egrep '/bin/sh'
/bin/sh
If no command is given, run '"$SHELL" -i' (default: '/bin/sh -i').

chkrootkit considers basename as 'infected' (ie here it just means it contains the '/bin/sh' string somewhere in the coreutils binary).

https://github.com/NixOS/nixpkgs/issues/285643


fix(types): composition node

fix: https://github.com/antvis/G2/issues/5525

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 3 (100.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.008%) to 88.466%

Files with Coverage Reduction
New Missed Lines
%

src/runtime/plot.ts
1
98.4%

src/utils/helper.ts
5
90.38%

Totals

Change from base Build<PHONE_NUMBER>:
-0.008%

Covered Lines:
9841

Relevant Lines:
10769

💛  - Coveralls


Can not upload an image using axios

Summary
I want to upload an image to my AdonisJS REST API using axios from a Nuxt.js client application.
I noticed that data is always transferred successfully as long as it is not an image or any other file.
Client code:
async submit() {
  console.log(this.photo) // this is fine
  let data = new FormData()
  data.append('file', this.photo)
  let url = 'http://<IP_ADDRESS>:3333/upload'
  let options = {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  }
  await this.$axios.$post(url, data, options)
}

Server code:
This is the corresponding function on my controller:
async upload( {request, response} ) {
  console.log(request.all())
}

Server output
I always get this in case of a file: {}
Context

AdonisJs version 4.1
Environment.: node v10.13.0 chrome 71, Ubuntu 18.04*

Thank you for any suggestions,
Billal BEGUERADJ
Updated on 01/01/2019:
I tested my Nuxt.js client code as it is (without modifications) with a different RESTful API that I set using Flask (a Python framework), and this server clearly processes the request successfully.

Hey @begueradj! 👋
This is clearly more a question about how to use Adonis than a bug of the framework itself.
Please, take a look at the documentation about how to upload a file with Adonis and open a thread in the forum if it didn't help.

Hello,
Yes, I succeeded to upload images as described in the documentation. I just wanted to try with axios as a step before introducing Graphql into my application.
I asked this same question on the forum as well as on StackOverflow
Thank you.


Bug: Start of add-on fails because s6-rc failed

First, thank you for bringing paperless to homeassistant.
Currently I am running paperless in a separate container but would prefer to manage everything from inside home-assistant.
I am trying for the last three days to bring up the add-on in my homeassistant but somehow I'm stuck. The installation takes quite some time but seems to work. When I want to start the add-on I get the following error message:
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
Sadly I don't get to more information because I can't access the inside of the docker container inside of hasos.
I am running homeassistant on a x64 machine on hasos. Everything is up to date.

Here the rest of the logs. Do you have an idea if there is a bad configuration on my part or if the configuration problem is in the add-on config?
 Add-on version: 2.1.8  You are running the latest version of this add-on.  System: Home Assistant OS 14.0  (amd64 / qemux86-64)  Home Assistant Core: 2024.12.3  Home Assistant Supervisor: 2024.11.4 -----------------------------------------------------------  Please, share the above information when looking for help  or support in, e.g., GitHub, forums or the Discord chat. ----------------------------------------------------------- s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-timezone: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started [20:41:51] INFO: Configuring timezone (Europe/Berlin)... s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service base-addon-timezone successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-paperless: starting s6-rc: info: service init-nginx: starting s6-rc: info: service redis: starting s6-rc: info: service redis successfully started Ingress is enabled [20:41:56] ERROR: Please change default admin password before running addon s6-rc: warning: unable to start service init-paperless: command exited 1 s6-rc: info: service init-nginx successfully started /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information. /run/s6/basedir/scripts/rc.init: fatal: stopping the container.

It's probably because you haven't personalised your configuration and haven't set an admin password

The weird thing is that I changed the password. It seems that the configuration is not used in the add-on. Maybe something was missing in the initial install. Can you make sense of the supervisor log? Is this a temp folder?
I uninstalled and reinstalled the add-on already but the error message stays the same. I am already thinking about resetting my whole ha and trying the add-on in a fresh installation.

I don't think that you need to reset home assistant but my script must be aborted if the password is changeme in the addon configuration tab

Thank you. After a reinstall of the addon I changed first the credentials. Now everything is working like a charm!

I have one more question. Did you find the possibility to use the management utilities inside of ha? https://docs.paperless-ngx.com/administration/#management-commands
I tried to run the document-renamer
Kind regards

It works using docker exec


logging level issue

Trying to play with ros2 logging level looks like the severity is not taken into account
$ ros2 run subscribers subscribers --ros-args --log-level error
[INFO] [1694627456.794940537] [topic2]: received: Hello, Universe!
[INFO] [1694627457.044055614] [topic1]: received: Hello, World!

I checked the code and for me it looks fine, but may be I missed something
OS: Ubuntu
ROS_DISTRO: humble

Fixing as follows.
$ ros2 run client client --ros-args --log-level error
^C[ERROR] [1695100381.233383334] [client]: error: Signaled
Error: Signaled
[ros2run]: Process exited with failure 1

$ ros2 run client client --ros-args --log-level warn
[WARN] [1695100431.561940350] [client]: timeout: deadline has elapsed
[WARN] [1695100433.566167968] [client]: timeout: deadline has elapsed
[WARN] [1695100435.570462912] [client]: timeout: deadline has elapsed
^C[ERROR] [1695100436.571683511] [client]: error: Signaled
Error: Signaled
[ros2run]: Process exited with failure 1

$ ros2 run client client --ros-args --log-level info
[WARN] [1695100460.126083554] [client]: timeout: deadline has elapsed
[WARN] [1695100462.129827075] [client]: timeout: deadline has elapsed
[WARN] [1695100464.133826576] [client]: timeout: deadline has elapsed
^C[INFO] [1695100464.617568135] [safe_drive]: Received signal: 2
[ERROR] [1695100465.135891541] [client]: error: Signaled
Error: Signaled
[ros2run]: Process exited with failure 1

I've pushed the newest version of 0.3.4 to crates.io/safe_drive.
Thank you for your contributions!


Improve Alembic performance

Also restore the RelWithDebInfo since it's useful for performance analysis
On a large Alembic file, opening performance drops from 5.6 seconds to 530 ms.

should go into release imo


MessagePack Vulnerability GHSA-4qm4-8hg2-g2xm

Version Information
Package 'MessagePack' 2.4.59 has a known moderate severity vulnerability, https://github.com/advisories/GHSA-4qm4-8hg2-g2xm.
Describe the bug
The Akka.Serialization.MessagePack last version is using the version 'MessagePack' 2.4.59 , and it has a vulnerability with severity Medium.
See https://avd.aquasec.com/nvd/2024/cve-2024-48924/
https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-4qm4-8hg2-g2xm
Screenshots

Environment
.NET 4.8

Addressed by #67

Do you know when a new release with this modification will be available? Thanks !!

Do you know when a new release with this modification will be available? Thanks !!

This is honestly a decent question... I know the current package using this version is in 'beta' state but I will also note that we haven't shipped even a new beta in some time...
If you -are- using the beta and have other feedback, it might be helpful to either leave a comment on this thread or in the discord about it's usability, any other issues/etc you have had, or help contribute to the project. I did the 'upgrade/refactor' of the lib to use 2.X lib but there has not quite been enough requests/feedback to know that folks other than myself and a couple others have used it and feel it is 'battle tested' for general release.

For what it's worth we were finally able to test Akka.Serialization.MessagePack2 and for all our use cases it works as expected.
Since Veracode has marked version one with a high level issue, it has become more of a priority


Replace items prop for itemNames according to the bug in Riot API docs.

https://github.com/RiotGames/developer-relations/issues/777

@OllieJennings, hi! Could you please look at this?

@mikhin NIce find, will get merged in today

@OllieJennings, hi! I hope your doing well :) Could you take a look at this?

Apologies @mikhin had to rush to grab a flight, but back home now, will get this sorted and released today, i think the linter and prettier tests are failing above

fixed, thanks

@mikhin  have merged, going to release shortly

@OllieJennings, hi! Could you please publish the update? =)

@mikhin completely forgot to release after mering in, let me do it today, this time for sure

All released @mikhin, am the worst sometimes

@OllieJennings, it is totally OK 👌 and thank you so much for your work here


Add config values for prefix and suffix for nether and end.

It was kinda weird... prefix and suffix for nether and end setting not even in the config and there is code to load those values from config....?
I think its a good option to add to config anyways, so did as such.

Could you separate the spelling mistakes into a new commit? Would make the diff a little easier to read.
I'm talking about NETEHR_PORTALS_CONFIG and MVNPconfiguration.

you are right, or we can just quickly make a PR to fix the spelling errors and merge it first. so we don't have to deal with merge conflict of other prs as well.

Sure, sounds good.

@nicegamer7  #206

I think I will manually rebase this, too many merge conflicts lolll

Yea, but that was 2 months back, will test it now.

Ok, tested and it does work. Here is how the config looks: https://j.mp/36TLHGv
In-game test when nether suffix is changed to -NETHER:

[10:59:59 INFO]: [Multiverse-Core-Debug] TravelAgent not available for PlayerPortalEvent for Benji_0224
[10:59:59 INFO]: [Multiverse-Core-Debug] Got teleport event for player 'Benji_0224' with cause 'NETHER_PORTAL'
[10:59:59 INFO]: [Multiverse-Core-Debug] Inferred sender 'null' from name 'null', fetched from name 'Benji_0224'
[10:59:59 INFO]: [Multiverse-Core-Debug] Player 'Benji_0224' was allowed to go to 'world-NETHER' because enforceaccess is off.
[10:59:59 INFO]: [Multiverse-Core-Debug] MV-Core is allowing Player 'Benji_0224' to go to 'world-NETHER'.
[10:59:59 INFO]: [Multiverse-Core-Debug] Handling gamemode for player: Benji_0224, Changing to SURVIVAL
[11:00:03 INFO]: Benji_0224 issued server command: /mv info
[11:00:03 INFO]: [Multiverse-Core-Debug] Checking to see if player [Benji_0224] has permission [multiverse.core.info]... YES

I think it can be merged

Okay, looks good.


how to avoid paging info like '--More--'

Hi,Thanks for your wonderful ExpectIt
does ExpectIt support this function like expect shell
expect {
            "*--More--*" {send " "; exp_continue}
          "ABCDEFG" {send "exit\r"}
}

when I send some command to router to get its configuration using ExpectIt , because the configuration  is very big ,so I get the below info in the configuration,It hints that  the ouput of some command is paging display, How to avoid these infos?
"\u001b[7m--More--\u001b[m\u0007\u0007\u0007\u0007\u0007\r\u001b[K/\r\r\u001b[K\u001b[7mNo previous regular expression\u001b[m\u0007\u0007\r=======\u001b[K\r",

  "\u001b[7m--More--\u001b[m\u0007\u0007\r\u001b[K/\r\r\u001b[K\u001b[7mNo previous regular expression\u001b[m\u0007\u0007\r",
    "Most commands optionally preceded by integer argument k.  Defaults in brackets.\r",
    "Star (*) indicates argument becomes new default.\r",
    "-------------------------------------------------------------------------------\r",
    "<space>                 Display next k lines of text [current screen size]\r",
    "z                       Display next k lines of text [current screen size]*\r",
    "<return>                Display next k lines of text [1]*\r",
    "d or ctrl-D             Scroll k lines [current scroll size, initially 11]*\r",
    "q or Q or <interrupt>   Exit from more\r",
    "s                       Skip forward k lines of text [1]\r",
    "f                       Skip forward k screenfuls of text [1]\r",
    "b or ctrl-B             Skip backwards k screenfuls of text [1]\r",
    "'                       Go to place where previous search started\r",
    "=                       Display current line number\r",
    "/<regular expression>   Search for kth occurrence of regular expression [1]\r",
    "n                       Search for kth occurrence of last r.e [1]\r",
    "!<cmd> or :!<cmd>       Execute <cmd> in a subshell\r",
    "v                       Start up /usr/bin/vi at current line\r",
    "ctrl-L                  Redraw screen\r",
    ":n                      Go to kth next file [1]\r",
    ":p                      Go to kth previous file [1]\r",
    ":f                      Display current file name and line number\r",
    ".                       Repeat previous command\r",
    "-------------------------------------------------------------------------------\r",
    "\r\u001b[K\u001b[7m--More--\u001b[m\r

\u001b[7m--More--\u001b[m\r

the answer is interact


Updated filtering expression for japanese locale - Dawid Chojnacki [2…

…,0,0]

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


perf: Make every gossip thread use its own randomness instance, reduc…

…ing contention (#3006)
Closes #3005
As noted in that issue, we currently are doing extra CPU overhead and mutex contention for getting a random number. This PR removes this overhead by making every performance sensitive thread have its own rand instance.
In a subsequent PR, we can cleanup all the testing usages, and likely just entirely delete our internal randomness package. I didn't do that in this PR to keep it straightforward to verify.

[x] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments
[ ] Title follows the Conventional Commits spec

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

Note I edited the v0.37.x gossip routine. This will need backporting to v0.38.x, it is on v1.x


[Feature] Review Common Profile Tags Support Within Json-Tlv-Json Convertor

Feature description
Current Json-Tlv-Json converter supports Context and Common Profile tags. There are some issue associated with that, reflected in the following comments:
https://github.com/project-chip/connectedhomeip/pull/27635/files/f25def68e4127a807121069f11dfd5a411969b38#r1275438623
https://github.com/project-chip/connectedhomeip/pull/27635/files/f25def68e4127a807121069f11dfd5a411969b38#r1275439222
The current implementation requires Common Profile Tag Number to be greater than 255. If the Common Profile tag number is less or equal to 255 it cannot be distinguished from the Context Tag in Json.
@turon @mrjerryjohns @yunhanw-google
Platform
core
Platform Version(s)
No response
Anything else?
No response

We have decided to replace common profile id with implicit profile id, and would update across kotlin side as well using this ticket.

From @bzbarsky-apple , So if we had a Common tag that happened to fall into the "less than 256" range, we would treat it as a Context tag?
InternalConvertTlvTag
else if (tagNumber <= UINT32_MAX)
{
    tag = TLV::ProfileTag(profileId, static_cast<uint32_t>(tagNumber));
}

I think we should immediately raise the error when detecting the number within UINT32_MAX range with implicit ProfileId.

More useful links to the discussion, with my notes:

https://github.com/project-chip/connectedhomeip/pull/27635#discussion_r1275438623 -- this is because we are trying to support things that are not actual data model payloads.  The format of these things is not well-defined in the jsontlv API, but needs to be.
https://github.com/project-chip/connectedhomeip/pull/27635#discussion_r1275439222 -- this is fixed per the code cited in https://github.com/project-chip/connectedhomeip/issues/28387#issuecomment-1705831897

https://github.com/project-chip/connectedhomeip/pull/32276


replace string for MOI with enum

It would be much easier for users to have an enum that could autocomplete
df = timporter.create_hpoa_from_phenopackets(pmid=pmid, moi="X-linked recessive inheritance", target="OMIM:301109")

done


logstash version requirement

Any reason for the logstash-core < 2 dependency? I've tried removing this constraint and apparently is working...
Thanks
Marco

Fixed
https://rubygems.org/gems/logstash-input-journald/versions/0.1.0
https://github.com/logstash-plugins/logstash-input-journald/releases/tag/v0.1.0


Add support for Instant as an input and output attribute.

Add support for Instant as an input and output attribute.
Improve the unit tests for the StepAttributes class.

https://github.com/awslabs/flux-swf-client/issues/19
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

The change as it is right now stores Instants as a timestamp in millis, losing precision.
The other approach I've been considering is to allow the attribute provider to provide either type but Flux would store it as provided, and convert it to the step's desired type as needed.  So an Instant requested as a Date would lose the nanos (same behavior as the code change as it is right now), and a Date requested as an Instant would just have 0s for the nanos (also same behavior as the code change as it is right now), but an Instant requested as an Instant would keep the precision.
Also I just realized the WorkflowGraphBuilder's graph validation code for attribute availability needs to treat Date and Instant as interchangeable, so that's missing from this change and will need to be added anyway.

Have you considered jackson-datatype-jsr310? You can use it for more types then without a need for manual conversion:
public class JacksonInstantSample {
    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper()
                .registerModule(new JavaTimeModule());
                /* alternative to enabling at read/write: enable on top level
                .disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS)
                .disable(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS);
                 */

        Instant now = Instant.now().minus(10, ChronoUnit.MINUTES);
        Date date = Date.from(now);

        ObjectWriter writingWithoutNanos = mapper.writer()
                .without(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
        String nowRepr = writingWithoutNanos.writeValueAsString(now);
        String dateRepr = writingWithoutNanos.writeValueAsString(date);

        System.out.println("written values are equal: " + nowRepr.equals(dateRepr) + " and are: " + nowRepr);

        ObjectReader readingWithoutNanos = mapper.reader()
                .without(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS);
        Date dateReadBack = readingWithoutNanos.readValue(nowRepr, Date.class);
        Instant instantReadBack = readingWithoutNanos.readValue(dateRepr, Instant.class);

        System.out.println("read values are equal: " + instantReadBack.equals(dateReadBack.toInstant()));

        ZonedDateTime zonedWithTZDefaultForMapper = readingWithoutNanos.readValue(dateRepr, ZonedDateTime.class);
        System.out.println(zonedWithTZDefaultForMapper);

        // if context knows TZ

        ZonedDateTime zonedWithKnownTZ = readingWithoutNanos
                .with(TimeZone.getTimeZone("America/Los_Angeles"))
                .without(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
                .readValue(dateRepr, ZonedDateTime.class);
        System.out.println(zonedWithKnownTZ);
    }
}

@akhomchenko Interesting; if I stay with the solution that loses nanoseconds precision, I'll try that out.

I discussed this with @joeymarylander ; we think nanosecond-level precision is not meaningfully useful for timestamps once you're leaving the machine that generated it, especially considering SWF's timers have only 1-second granularity.
Additionally, since our WorkflowGraphBuilder validates the specific input types requested by the workflow steps, and since Date is being superseded by Instant in general, we think it makes the most sense to just add specific support for Instant at the framework level. Users can convert from Instant to another type inside the step if necessary.

I've updated the change as follows:

Updated WorkflowGraphBuilder to treat Instant and Date as interchangeable.
Removed internal uses of OffsetDateTime. This was a historical artifact from when we migrated off of Joda DateTime, and then after we upgraded to AWS SDK v2 all of these OffsetDateTimes ended up just wrapping the Instants provided directly by the SDK. We were then comparing them as Instants or as millisecond timestamps in all cases.


Remove pipeline functionality

Changes

Remove all functionality related to pipelines, including persistence backends
Making this it's own PR so I can easily pick out these changes if we want to restore this later

sad. i hope to see return

As do I, I have more exciting functionality coming though that this would complicate


Add supported Languages paragraph for Form Recognizer's invoices

@TFR258 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@TFR258 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@laujan Could you review the proposed update to your article?
A similar update is submitted in #73977.

#please-close


OpenAI ChatGPT 4o - Impossible to reinstall plugin

Dear Developers,
I am using ChatGPT 4o (with the online service provided by OpenAI with a ChatGPT Plus account) and need to reinstall the plugin because my credentials have changed. As a result, AskTheCode is not able to retrieve GitHub data after entering a GitHub repository URL (see the error message below). However, it is currently not possible because the Plugins Store (Beta features) is no longer available (in GUI). What should I do?
Error Message:
"I was unable to retrieve the repository structure. This typically occurs because the repository does not exist or you do not have access to it.
To query private repositories, you need to sign in to the plugin using your GitHub account. To do this, please reinstall the plugin.
For more information, you can check out the documentation..."
Kind regards

I get the same error, it seems impossible to re-authenticate your github after initial installation now under this new CustomGPT option, and I can't find any mention in the docs. The GPT even concurs with this point: "Currently, there is no way to re-install CustomGPT to refresh GitHub credentials. In this case, we can try addressing the error directly with the code snippets you provided."

Hi @HartharnSam,
Thanks for reporting the issue. Could you please try to log out and the log in once again with your GitHub account? This log out/log in process is described here:
https://docs.askthecode.ai/authentication/#subscription-quota-not-applied
Please ping me if this helps or if the issue still persists.

Hi, thanks for your reply. Unfortunately, the issue is persisting, as there are no such buttons to log out of your account in the new versions of custom GPTs.

From: Denis Somok @.>
Sent: 08 August 2024 22:46
To: askthecode/documentation @.>
Cc: Sam Hartharn-Evans @.>; Mention @.>
Subject: Re: [askthecode/documentation] OpenAI ChatGPT 4o - Impossible to reinstall plugin (Issue #39)
CAUTION: This email originated from outside of the University. Do not click links or open attachments unless you recognise the sender and know the content is safe.
Hi @HartharnSamhttps://github.com/HartharnSam,
Thanks for reporting the issue. Could you please try to log out and the log in once again with your GitHub account? This log out/log in process is described here:
https://docs.askthecode.ai/authentication/#subscription-quota-not-applied
Please ping me if this helps or if the issue still persists.
—
Reply to this email directly, view it on GitHubhttps://github.com/askthecode/documentation/issues/39#issuecomment-2276704247, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANYLFVGJJN7S5677HTWZJX3ZQPRKPAVCNFSM6AAAAABLUVFPZOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZWG4YDIMRUG4.
You are receiving this because you were mentioned.Message ID: @.***>
This message is intended solely for the addressee and may contain confidential and/or legally privileged information. Any use, disclosure or reproduction without the sender’s explicit consent is unauthorised and may be unlawful. If you have received this message in error, please notify Northumbria University immediately and permanently delete it. Any views or opinions expressed in this message are solely those of the author and do not necessarily represent those of the University. Northumbria University email is provided by Microsoft Office365 and is hosted within the EEA, although some information may be replicated globally for backup purposes. The University cannot guarantee that this message or any attachment is virus free or has not been intercepted and/or amended.

@HartharnSam could you please share how the UI looks for you?
I've checked even the mobile app version, to sign out from the account there the path is:
three dots at the top-right corner -> View Details -> Connected Accounts
and there you'll have the Log out button

Interface overall:
[cid:5f883dc4-9a64-4746-9827-a1c8e4b197d5]
On AskTheCode - Git Companion> Privacy Settings (following the video):
[cid:878f5c4f-66b7-4566-ac72-c6f6dcda7f7d]
In my overall ChatGPT settings
[cid:c98ed327-884b-435e-8bf9-741b1101a921]

From: Denis Somok @.>
Sent: 10 August 2024 18:57
To: askthecode/documentation @.>
Cc: Sam Hartharn-Evans @.>; Mention @.>
Subject: Re: [askthecode/documentation] OpenAI ChatGPT 4o - Impossible to reinstall plugin (Issue #39)
CAUTION: This email originated from outside of the University. Do not click links or open attachments unless you recognise the sender and know the content is safe.
@HartharnSamhttps://github.com/HartharnSam could you please share how the UI looks for you?
I've checked even the mobile app version, to sign out from the account there the path is:
three dots at the top-right corner -> View Details -> Connected Accounts
and there you'll have the Log out button
—
Reply to this email directly, view it on GitHubhttps://github.com/askthecode/documentation/issues/39#issuecomment-2282227528, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANYLFVGBY2GEG53CKDDDEJDZQZIBVAVCNFSM6AAAAABLUVFPZOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBSGIZDONJSHA.
You are receiving this because you were mentioned.Message ID: @.***>
This message is intended solely for the addressee and may contain confidential and/or legally privileged information. Any use, disclosure or reproduction without the sender’s explicit consent is unauthorised and may be unlawful. If you have received this message in error, please notify Northumbria University immediately and permanently delete it. Any views or opinions expressed in this message are solely those of the author and do not necessarily represent those of the University. Northumbria University email is provided by Microsoft Office365 and is hosted within the EEA, although some information may be replicated globally for backup purposes. The University cannot guarantee that this message or any attachment is virus free or has not been intercepted and/or amended.

@HartharnSam could you please upload screenshots in the GitHub issue? It seems that they are not able to parse them from the email message


Python 3.5 Error

Hello there, as @modrzew said, the future releases will only work with Py3.5, so I'm trying to make it work since now, but everytime it starts it has this error...
[2016-08-12 03:18:05,625][ worker-40][   ERROR][L 125] A wild exception appeared!
Traceback (most recent call last):
File "worker.py", line 103, in run
password=config.ACCOUNTS[self.worker_no][1],
File "C:\Users\David\Desktop\pokeminer - copia\pgoapi\pgoapi.py", line 173, in login
response = self.app_simulation_login()
File "C:\Users\David\Desktop\pokeminer - copia\pgoapi\pgoapi.py", line 150, in app_simulation_login
response = request.call()
File "C:\Users\David\Desktop\pokeminer - copia\pgoapi\pgoapi.py", line 222, in call
request.activate_signature(lib_path)
File "C:\Users\David\Desktop\pokeminer - copia\pgoapi\rpc_api.py", line 84, in activate_signature
self.signature_lib = ctypes.cdll.LoadLibrary(lib_path)
File "C:\Python35\lib\ctypes_init.py", line 425, in LoadLibrary
return self.dlltype(name)
File "C:\Python35\lib\ctypes_init.py", line 347, in init
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 no es una aplicación Win32 válida
It doesn't have any problem while executing it with Py2.7

did you install 64bit python or 32 bit? This could be your problem

Yeah I solved by using the encrypt64.dll
A little weird because Py2.7 is also 64 bits and it was working fine even with encrypt32.dll


Argo WF to fail if a step is failed

Is this a BUG REPORT or FEATURE REQUEST?:
BUG
What happened:
When an argo WF has multiple steps and if the 1st step fails, argo WF doesn't fail.
What you expected to happen:
Argo WF should fail if 1st step fails and should not proceed to next step or it should provide an option to the user something like failOnError = true/ false.
How to reproduce it (as minimally and precisely as possible):
Run an argo WF with multiple steps and write code to fail the 1st step. It will proceed to next step instead of aborting the WF.
Anything else we need to know?:
Environment:

Argo version:

2.3
$ argo version

Kubernetes version :

1.12
$ kubectl version -o yaml

Other debugging information (if applicable):

workflow result:

$ argo get <workflowname>

executor logs:

$ kubectl logs <failedpodname> -c init
$ kubectl logs <failedpodname> -c wait

workflow-controller logs:

$ kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name)

that does work out of the box as well unless you specify continueOn....


fix assignments and refactoring

Fixed some assignments and some refactoring of var names.

The problem is that is wat complaining that Unsubscriber  was readonly. I could not compile it this way. In the Microsoft  example they declare it like this as well: https://learn.microsoft.com/en-us/dotnet/standard/events/how-to-implement-an-observer#example


Auto-restart kube-scheduler in maintenance time window

How to categorize this issue?

/area robustness quality
/kind enhancement
/priority normal
/topology seed
/exp beginner
/platform all
What would you like to be added:
With #2098 we have added the auto-restarts of the KCM (and other components with the respective labels) in the shoot's maintenance time windows. The rationale behind it was to circumvent stale cache/stuck controller behaviours. However, we have not enabled this for the kube-scheduler which is no different than KCM and could have the same problems.
Hence, let's also do the same for the kube-scheduler as we have seen the mentioned issues with it meanwhile as well.
/cc @hardikdr who might have more inputs/comments.
Why is this needed:
Robustness, less ops effort, better user experience.

/assign
ref https://github.com/gardener/gardener/pull/2731#pullrequestreview-467723725


Update hackernewSummarizeBot.py

add logging

Related to https://github.com/bdim404/HackerNews-Summarize-Telegram-Bot/issues/20


Image tiles not visible on safari

Safari is not loading images inside Openseadragon, although there are no errors in the console. Even the example on the main OpenSeadragon page ( https://openseadragon.github.io/ ) doesn't show images. However, when I inspect the Network tab of the console, it does appear as if the images are loading. I'm at a loss! Is there a known issue that I'm missing?

That's strange - when I visit that page in Safari it works just fine. Are there any error messages printed to the debug console?

Really? No errors in the console at all. And it loads fine in both firefox and chrome.
FWIW, I’m on safari Version 16.6 (186<IP_ADDRESS>.2) and OS Ventura.
There are other people in my firm that aren’t seeing images as well. I’ll get specs / screenshots from them too.

On Oct 23, 2024, at 3:19 PM, pearcetm @.***> wrote:
That's strange - when I visit that page in Safari it works just fine. Are there any error messages printed to the debug console?
—
Reply to this email directly, view it on GitHub https://github.com/openseadragon/openseadragon/issues/2604#issuecomment-2433247401, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJU7OUOZKY4CUX6FCDFFDTZ47ZFZAVCNFSM6AAAAABQPMB35CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZTGI2DONBQGE.
You are receiving this because you authored the thread.

Andrea Stein-Davis
CAR OF TOMORROW
o:<PHONE_NUMBER>
c:<PHONE_NUMBER>
@.***

I'm on Ventura 13.3 and Safari 16.4
Here's what I'm seeing:

Can you try configuring OpenSeadragon with drawer: 'canvas' and see if that's working ok?

Oh, looks like adding drawer : ‘canvas’ may have done the trick.
I don’t see that option in the docs - am I missing it?
Thanks for the help!

On Oct 23, 2024, at 3:39 PM, pearcetm @.***> wrote:
I'm on Ventura 13.3 and Safari 16.4
Here's what I'm seeing:
image.png (view on web) https://github.com/user-attachments/assets/aa36770a-4475-4be6-b273-1bc4650e4bfb
Can you try configuring OpenSeadragon with drawer: 'canvas' and see if that's working ok?
—
Reply to this email directly, view it on GitHub https://github.com/openseadragon/openseadragon/issues/2604#issuecomment-2433282705, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJU7OVEQGL2OXZPPNEQ5YLZ473ODAVCNFSM6AAAAABQPMB35CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZTGI4DENZQGU.
You are receiving this because you authored the thread.

Andrea Stein-Davis
CAR OF TOMORROW
o:<PHONE_NUMBER>
c:<PHONE_NUMBER>
@.***

It is listed in the options here: https://openseadragon.github.io/docs/OpenSeadragon.html#.Options
It seems that the webgl drawer isn't working right in Safari, at least on your system... if you are able to track down anything about where the error is occurring that would be very helpful! However, since there are no errors in the console, I'm not sure how best to do this.

Interesting that your Safari versions are so close and yet it's working on one and not the other. I wonder if there's a difference between the machines... are you both on Apple Silicon?
I'm on an M1 with Sonoma (14.6.1) and running Safari 17.6 and it's working fine for me.
Of course being able to debug on a machine where it's not working would be ideal. @andreastein I don't suppose you'd care to go mucking about in the webgl drawer code? I figure what needs to happen is chopping features out of the drawer until something works, so we know which feature is causing the problem.
I suppose another option is @pearcetm could make a branch with bits of the drawer disabled and @andreastein can test that branch.
I suppose one thing to check is what happens if you force the OSD webgl drawer to use webgl 1? Safari is supposed to support webgl 2 starting in version 15, so it should be fine, but it's a place to start.
Also might be interesting if @andreastein could share the reports from https://webglreport.com/ (or some similar site) with @pearcetm to see if there are any differences that pop out.

@iangilman The current implementation of WebGLDrawer is only using webgl 1, actually. And there really aren't any parts of the drawer that can be cut out/disabled - it just loads tiles as textures and positions them for rendering.
Here's what https://wegblreport.com/ shows for my version (which is working):

@andreastein would you be able to provide a comparison on your browser that isn't working?

And there really aren't any parts of the drawer that can be cut out/disabled - it just loads tiles as textures and positions them for rendering.

Sure... I guess I just mean cutting out calls even though it won't function any more. Of course the problem with that is our symptom is a black screen, so we won't know when we have cut out the call that's breaking it. It is a conundrum!
I suppose another approach would be building up from nothing... what's the simplest webGL app one could make that draws some pixels to the screen? Then just keep adding features until we have all of the calls we're using in OSD.
Of course all of this sounds daunting without being able to test it directly. Anyway, just brainstorming!

Of course all of this sounds daunting without being able to test it directly. Anyway, just brainstorming!

Yeah it is really tough to debug without a way to reproduce the problem itself!

Just FYI, Apple and any third-party API is just **** (fill in your favorite swear word). There is my almost 1-year old discovered bug in apple implementation of the OpenGL support I had to overcome and nobody seems to be looking into it although I reported it. It is on the OS level, not a browser (breaks accross browsers, so it will not be related to this issue).
Here you have a spectacular demo where new Apple OS fails to render a completely valid WebGL (bug introduced in January 2024 update):
https://stackoverflow.com/questions/77979969/no-webgl-output-with-custom-blending-on-newest-safari-macos

But since there is also weird behavior on Android - Chrome, it will likely be some issue with feature support...

@andreastein could you try some Webgl1 only examples from https://webglsamples.org/ ? It is always good to compare against something to identify parts that 'certainly work'.

Those all work in for me in all browsers, including Safari where we had our initial problems.

On Nov 4, 2024, at 5:25 AM, Aiosa @.***> wrote:
@andreastein https://github.com/andreastein could you try some Webgl1 only examples from https://webglsamples.org/ ? It is always good to compare against something to identify parts that 'certainly work'.
—
Reply to this email directly, view it on GitHub https://github.com/openseadragon/openseadragon/issues/2604#issuecomment-2454333259, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJU7ORC7M7X5ZKXLRVQ3UTZ65DQ7AVCNFSM6AAAAABQPMB35CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJUGMZTGMRVHE.
You are receiving this because you were mentioned.

Andrea Stein-Davis
CAR OF TOMORROW
o:<PHONE_NUMBER>
c:<PHONE_NUMBER>
@.***

Hmm that does not help much. I looked into the drawer code, and there is really not much to trim, though there could be simplifications made (that no one wants IMHO program, like drawing just single tile per a draw call).. @andreastein could you please also send report from wegblreport.com as @pearcetm said? Which version of Ventura are you running? This helps much since we can compare capabilities. Though again, I would not expect any diferences.

Rendering via the WebGLDrawer happens in two phases. First, the tiles are put together on a webgl canvas (webgl 1 more specifically). Then, data is drawn onto an "output canvas" which is context2d, using the webgl canvas as a source. I wonder if it is possible that there are some edge case bugs in certain browser/OS combos that might be going wrong with this process.
Setting a breakpoint on line 482 of webgldrawer.js might shed some light:
https://github.com/openseadragon/openseadragon/blob/e1e0ec6b241e11baec873a024ddf6a7e59834647/src/webgldrawer.js#L481-L483
The question is, does this breakpoint ever get hit? If it does, inspecting the pixel data from the two canvases during this operation might help debug further. For example, it would be useful to know if all values are zero; an alternative is that the RGB values could be correct but there is a bug in the alpha channel causing the image to be fully transparent and thus rendering as black.

No problem. I’m running 13.6.4.
Attached below are two reports — one from chrome (where it was working) and one from safari (where it wasn’t).
It’s worth noting that one of my colleagues was unable to load the samples on her computer on Chrome. LMK if you’d like me to get the same info from them.
Thanks!
￼
￼

On Nov 5, 2024, at 11:29 AM, Aiosa @.***> wrote:
Hmm that does not help much. I looked into the drawer code, and there is really not much to trim, though there could be simplifications made (that no one wants IMHO program, like drawing just single tile per a draw call).. @andreastein https://github.com/andreastein could you please also send report from wegblreport.com https://wegblreport.com/ as @pearcetm https://github.com/pearcetm said? Which version of Ventura are you running? This helps much since we can compare capabilities. Though again, I would not expect any diferences.
—
Reply to this email directly, view it on GitHub https://github.com/openseadragon/openseadragon/issues/2604#issuecomment-2457641221, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJU7ORZJQ6O35UVANC5FF3Z7DW7ZAVCNFSM6AAAAABQPMB35CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJXGY2DCMRSGE.
You are receiving this because you were mentioned.

Andrea Stein-Davis
CAR OF TOMORROW
o:<PHONE_NUMBER>
c:<PHONE_NUMBER>
@.***

Attached below are two reports

@andreastein I'm not seeing any images in the github issue - you may need to post those images directly rather than attaching by email.

Sorry about that. Attaching again.
Safari:

Chrome

Wow, interesting solution! I'd say it's definitely worth a try. If nothing else, it might shed more light on the situation.

We had an end user this week apparently with this problem where image tiles are sent to their browser (200 OK) but not displayed, not in Safari and not in Chrome. We could not reproduce this on our Mac devices, so the versions of this end users browsers, etc, became important information.
This user normally uses Chrome on their Mac.
The OpenSeadragon version is 5.0.0
The end user reported that their:

operating system is Mac OS Ventura 13.7.1
brower versions were:

Chrome: 130.0.6723.117
Safari: 18.1 (186<IP_ADDRESS>.5)

We are assuming no browser or OS updates were made, and the above reported versions are versions where the bug occurs, but communication wasn't instant between fixing the problem and getting the version numbers, however it was within 24 hours of fixing the problem.
In the troubleshooting process we suggested they try a different device, and it was determined that this user could view the images on their Iphone but not on their Mac on Chrome or Safari.
We first resolved this by setting the drawer to 'html', and asking the end user to reload their page, which displayed the images.
We decided on a temporary solution by implementing a workaround: setting the drawer to ['canvas', 'html'] for this site. That was tested on the end user's browser, and they reported they can still see the images, so presumably their browser is now successfully using canvas as the drawer, avoiding WebGL for now.

The more I hear about this issue the more I wonder if it is actually somehow at the operating system/graphics card level. I remember one instance while I was still developing WebGLDrawer where rendering all of a sudden stopped working. I assumed I had introduced a bug, but I couldn't figure out what I had changed in the code. Then things like embedded videos on other websites stopped working too, and it seemed like more of a system problem. Once I rebooted, WebGLDrawer started working again too.
It is a kind of bizarre problem, and I'm not sure it is really in our control. But I think the approach I outlined above would really help mitigate this by providing auto-fallback to canvas when needed. Of course, if someone really needs webgl for their application, and don't want to have canvas as a fallback, there would still be a problem (though rebooting might help, like it did for me during development).


fix github action ci not trigger on release branch

reference:
https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
https://docs.github.com/en/actions/learn-github-actions/expressions#startswith
Change-Id: I4e8873be93197e3024deb0acf61cab4ded868a69

note if-condition trap:
https://github.community/t/implementing-dry-run-logic-if-and-env/17834

seems wildcards don’t take effect in environment variables:
RELEASE_BRANCH: ${{ github.ref_name == 'release-*' || github.ref_name == 'test-*' }}
=>
RELEASE_BRANCH: ${{ startsWith(github.ref_name, 'release-') || startsWith(github.ref_name, 'test-') }}

conditional env vars:
SLACK_COLOR: "${{ job.status == 'success' && 'good' || 'danger' }}" https://github.community/t/possible-to-use-conditional-in-the-env-section-of-a-job/135170/2


feat: setup stylelint

fixes #2

Pull Request Test Coverage Report for Build 11

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.493%

Totals

Change from base Build 7:
0.0%

Covered Lines:
448

Relevant Lines:
533

💛  - Coveralls


Multiple sdm customize runs

Can I break the process into two parts writing out a first phase image and then updating it? Some parts take a long time, but do not need to be repeated for each host, so I thought I would make a base customized image and specialize it for each target. What happens if I run sdm again on an image once its been run previously on that image?

See here: https://github.com/gitbls/sdm/issues/237#issuecomment-2227504480

Thanks. I can't quite tell if that solves my problem. I create a series of images with different hostnames, but I need to download a bunch of files each time. It seems that should only need to be done once. I guess I could fix that if I was able to burn the images from the docker container. Can I burn to a file and then flash that file to the device?

If the IMGs only differ by the hostname, then you're doing it wrong, and maybe didn't understand what I wrote over on the above-referenced topic.
If you explain how you're doing things now, I'll be happy to make improvement suggestions.
As far as "can I burn to a file then flash"?  Yes, it's just an IMG, so you can of course burn it to a disk. In case you're interested, the --convert-root switch does not work on burning to a file.

Often I need to also set wifi ssid and password in addition to the hostname. I'll see if I can split it into a customize and  burn phase with the burn phase written to a file. Because I'm on a mac, its easier to use the rpi burning app.

You can definitely do network configuration during the burn (or burnfile) by using --plugin network configured as you want.
Understand about there being burn issues on the Mac. The one thing you lose by not using sdm for the burn is that the root partition won't be expanded until the system first boots. I haven't looked at that in a while, but it may require an extra reboot (which is what caused me to add expand root in the first place).
Here's what I'd do given what you've told me:

Do a customize on a fresh IMG and customize literally everything that should be on all systems
Do a burnfile and run the plugins that are specific to the host you're burning for
rpi-imager copy that resulting burn img to a disk and boot it

Obviously the more you put in the common IMG the less that will be required at boot time.
If you still need to do more than just hostname and network (especially installing additional apps) you might want to have a look at using apt-cacher-ng running on a Debian-based system (pi or otherwise). It will still install a bunch of files, but they'll be copied from the apt-cacher-ng server instead of over the internet. The time reduction increases significantly the more you would have downloaded.  Plus, you'll benefit each time you rebuild the common base disk (after the first time of course) since those bits will all be copied across the LAN as well.

Thanks for the suggestions. I had started splitting the scripts/plugins as
you say. I think I just need to change the second stage to --burn and
--burnfile (or does --burnfile imply --burn?)
On Tue, Jul 16, 2024 at 4:27 PM Benn @.***> wrote:

You can definitely do network configuration during the burn (or burnfile)
by using --plugin network configured as you want.
Understand about there being burn issues on the Mac. The one thing you
lose by not using sdm for the burn is that the root partition won't be
expanded until the system first boots. I haven't looked at that in a while,
but it may require an extra reboot (which is what caused me to add expand
root in the first place).
Here's what I'd do given what you've told me:

Do a customize on a fresh IMG and customize literally everything
that should be on all systems
Do a burnfile and run the plugins that are specific to the host
you're burning for
rpi-imager copy that resulting burn img to a disk and boot it

Obviously the more you put in the common IMG the less that will be
required at boot time.
If you still need to do more than just hostname and network (especially
installing additional apps) you might want to have a look at using
apt-cacher-ng running on a Debian-based system (pi or otherwise). It will
still install a bunch of files, but they'll be copied from the
apt-cacher-ng server instead of over the internet. The time reduction
increases significantly the more you would have downloaded. Plus, you'll
benefit each time you rebuild the common base disk (after the first time of
course) since those bits will all be copied across the LAN as well.
—
Reply to this email directly, view it on GitHub
https://github.com/gitbls/sdm/issues/238#issuecomment-2231855582, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEQXSN6IWYZCENKYO5U4QDZMWF35AVCNFSM6AAAAABK5EL26WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZRHA2TKNJYGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Timothy H. Keitt
www keittlab org

--burn takes an argument that is the name of the device (e.g., /dev/sdX or whatever it is)
--burnfile takes an argument that is the name of the file where the "burned" IMG will be written
The two switches are conflicting and cannot be used together on the command line.
They do the same thing, as noted, except that --burnfile cannot be used wih --convert-root or --expand-root

Closing due to no activity.


Tests inside a static library

Hi,
(This is more a question than an issue)
What is the recommended way to add tests inside a static library project ?
If I compile a library (which includes TEST_CASE(s)) as a static library,
and then I try to run the tests from this library by creating a target that links
to it, the test suite is actually empty (i.e I guess the tests were stripped at link time)
Am I doing something wrong, or is there a way to circumvent this?
Below is an example of what I am trying to achieve (using cmake):
Project         <- main project
  CMakeLists.txt
  doctest/
    doctest.h
    doctest_main.cpp
  MyLibrary/
    lib1.cpp    <- these files includes actual library code and TEST_CASE(s)
    lib2.cpp
    lib3.cpp
    CMakeLists.txt <- will produce two targets : library and its test
  MyMainProgram/
    main.cpp
    CMakeLists.txt

MyLibrary/CMakeLists.txt :
    set(sources lib1.cpp lib2.cpp lib3.cpp)
    add_library(MyLibrary STATIC ${sources})
    target_include_directories(MyLibrary PUBLIC ${CMAKE_SOURCE_DIR}/doctest )

    # This does not work : it links but the test list is empty !
    add_executable(MyLibrary_DocTest ${CMAKE_SOURCE_DIR}/doctest/doctest_main.cpp)
    target_link_libraries(MyLibrary_DocTest MyLibrary)

    # This works, but it requires to re-compile all the source files and to re-define
    # exactly the same compile options as for the library (linked library, compile definition, etc);
    # this can be tedious
    add_executable(MyLibrary_DocTest ${sources} ${CMAKE_SOURCE_DIR}/doctest/doctest_main.cpp)

MyMainProgram/CMakeLists.txt :
    add_executable(MyMainProgram main.cpp)
    target_link_libraries(MyMainProgram MyLibrary)

A working example can be found at https://github.com/pthom/DocTest_LibTest

well this is weird and unfortunate - will have to investigate this

(Wild guess) If you're using Visual Studio, you may want to look at this note in the Google Test wiki (Mentioned here in the CATCH Google group).

@martinmoene : Thanks for the suggestion :-)
I use AppleClang, gcc and Visual Studio.
Actually, I observed the failure on a mac, using AppleClang.

After testing, I can reproduce the problem with Visual studio 2013, gcc 4.8 linux, and Visual Studio 2013.
However, I think I found a good potential solution!
See https://github.com/pthom/DocTest_LibTest/commit/e6373522cecdb170388e7d4c5c93b16e645089cc
If you add a dummy function in the static library and call it from the doctest main() function, then the tests will be run.
I just tested that it solves the issues with AppleClang, gcc 4.8 (ubuntu 64 bits), and MSVC 2013.
Hope this helps

seems like what the google.test docs say - will add it to my docs too - thanks!

Hi Viktor,
Hum, I thought my solution was sufficient, but it is not...
Each file containing tests needs to be "registered" separately, so that you have to create a dummy function in each file that contains tests, and call it from the main() function.
See for example : https://github.com/pthom/DocTest_LibTest/commit/33df4174efaa67c9f0b3e958731a26199d9caf66
Based on my observations, the problem is not limited to Visual Studio (not anymore ?) : I can consistently reproduce it with AppleClang and gcc also...
A more generic way to test a static library could be to add a DocTestRegister() function to the library : this function would call all the dummy functions, and it would be called by doctest's main() function.
See https://github.com/pthom/DocTest_LibTest/commit/5f42f759e12364c07f137ee6523925b5f8d02edc for an example.
May be you will have a better idea (I hope so), because my solution is a bit tedious :-)

Hi Viktor,
Actually I fought to find a solution to this problem, and I made some helper cmake scripts for this. Would you mind giving me your opinion about them ? See https://github.com/pthom/doctest_registerlibrary

I'll take a look - I do want to have a fix for this - this is the current thing I'm working on - thanks for the effort!

omg! I did some research and there really is no way to fix this in a pretty way - the executable has to reference something from each object file from the static lib... (or if all object files from the static library reference each other like a linked list - then the executable needs to reference only 1 object file from the static library).
Anyway I'll try to solve this only in cmake and without the need to modify any of the source files - with compile definitions (by iterating through the source files of the static library and also based on their count - will give some identifier to the executable - the dummy functions will be like f12(), f13(), etc.). I'll write here when it's done - in a few days.

Hum, it seems I had an idea that was close to the python script you are mentioning, since I wrote some cmake functions that call a python script in order to generate the code that makes self registering work.
Look at the repo I sent you, it might help you; and if you like the idea just let me know, I'd like to be able to help. If you do not like it, no worries though :-)

Your approach is interesting ! Good luck with the preprocessor though, it is a difficult beast :-)  your library proves that you are better at it than me

Hi,
Any news on your progress ?
If you are interested in my approach (and that is a big if ;-) , feel free to reference it or to copy it directly.
Cheers

:D I'm still delaying the finish of the 1.1 release. Actually my approach wouldn't work. I came up with a different one - if it doesn't work as well I will link in my FAQ to your project.
I hope that I release 1.1 in the next 1-2 weeks with this fixed (or linked to your solution)...

Thanks for the update. Keep me posted :D

Sooo I think I solved the issue! Here is the commit message:
Using a CMake function called "doctest_force_link_static_lib_in_target" located in "examples/exe_with_static_libs/doctest_force_link_static_lib_in_target.cmake" users of CMake can force the linking of every object file from a static library to an executable/shared target. Not intrusive - using generated dummy headers in the build folder of the target, CMake target properties and compiler flags for including the headers to the appropriate sources.
Also it is fool proof - using "doctest_force_link_static_lib_in_target" on the same target/library pair won't cause trouble.
even the scenario of linking in 2 shared objects with the same static lib with tests will work - no dummy function clashes when using the 2 shared objects together.
what do you think? It's just a single .cmake file and it doesn't modify the source files or require python or a separate build step.

Hello,
Thanks for the update. I am a bit busy today, but I will look into it quickly :-)

Wow, you did some serious cmake trickery :-)
I tested it and it worked with the following combinations :

OSX / make, OSX / XCode
ubuntu 12 / gcc 4.8
Visual Studio 2010 and 2013

I also works when you add tests to a file that was not using them, without re-running cmake.

what do you think? It's just a single .cmake file and it doesn't modify the source files or require >python or a separate build step.

I think it's just great !
May I suggest one additional thing : I am a lazy guy, and I like "ready to use" solutions.
Would it be possible to provide a ready to use cmake script that could be included by developpers of static lib ?
I wrote a draft here : https://github.com/pthom/doctest/commit/738c51a0ccd07d0c5e9ca4362f9120625390e058
What do you think ?

I have a few thoughts on this:

doctest_addincludepath should be used on the test target as well and not only on the lib (or is the PUBLIC part in target_include_directories supposed to be for this? not really in touch with modern cmake yet)

in doctest_main.cpp you propagate the result from doctest with a return only when shouldExit() returns true - that's for query flags (and the exit flag), but normal test execution always returns 0 - but should also return res. For this boilerplate main calling shouldExit() can be skipped and just return context.run();.

not sure if it should go in the root directory

wrapper macros - they suit the needs of someone perfectly but aren't general enough

an alternative to using doctest_lib_location would be to just add doctest in the include directories for the entire cmake tree from the root CMakeLists.txt

doctest_main.cpp can be generated by cmake (as I do with the dummy headers) in the build folder of the static lib and then doctest_lib_location will be less likely needed

this use case seems too niche, but it won't hurt to provide these functions :D

So I'm a bit hesitant on this... still wondering

not  fond of the idea it going in the root directory
this use case seems too niche, but it won't hurt to provide these functions :D

I agree. It might be enough to provide these functions as a code comment inside examples/exe_with_static_libs/readme.md
People who might need would then copy / paste / adapt to their needs

so I added the doctest_make_exe_for_static_lib function.
It generates the main.cpp for the executable in the build folder.
It assumes that it can include the doctest header like this: #include "doctest.h" so it should be already added in the include directories...
Does this suit your needs?

so I added the doctest_make_exe_for_static_lib function.
Thanks a lot !

It assumes that it can include the doctest header like this: #include "doctest.h" so it should be already added in the include directories...

I saw this, and I see no better solution since when a function comes from an included cmake, there is no way for this function to know where in which folder it is implemented.
So, that'll do it !
Thanks for the great job!

Hum...
I'm afraid I found an issue with your solution.
If the library uses precompiled headers, each source file that will "use" the precompiled header ("/Yu" flag) will not obey to the forced include directive you added ("/FI")
It's very easy to test : just create a dummy project with precompiled headers, change one of the file to "force include" a files with voluntary syntax errors => it will compile just fine.
I tested this on Visual Studio 2010 and 2013.
... Sorry

That's unfortunate... I'm all out of tricks.
I found this issue on the web but it isn't very clear.
I did find one configuration that works though:
// main.cpp
int main() { void f(); f(); }

// a.cpp
void f() { printf("%d", from_force_included); }

// b.cpp

// c.cpp

// pch.h
#include <stdio.h>

// force_included.h
int from_force_included = 8;

# CMakeLists.txt
cmake_minimum_required(VERSION 3.0)

project(FI_TESTS)

include(../doctest/examples/exe_with_static_libs/doctest_force_link_static_lib_in_target.cmake)
include(../game/libs/third_party/ucm/cotire/CMake/cotire.cmake)

add_executable(FI_TESTS main.cpp a.cpp b.cpp c.cpp)

set_target_properties(FI_TESTS PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
set_target_properties(FI_TESTS PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "pch.h")

cotire(FI_TESTS) # used for precompiled headers

doctest_include_file_in_sources(force_included.h a.cpp)

The above example works only in this configuration. If I change the order of the cotire() call and doctest_include_file_in_sources() then things break.
If I move the stuff from a.cpp to main.cpp and force include force_included.h in main.cpp instead of a.cpp things break again because main.cpp is 'compiling' the precompiled header (I guess since it's the first in the list of sources) - it has the /Yc option instead of ```/Yu````.
Here are the compiler flags for a.cpp: /Yu"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.hxx" /FI"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.hxx" /FI"force_included.h" /Fp"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.pch"
and for main.cpp: /Yc"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.hxx" /FI"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.hxx" /Fp"D:\downloads\build\Debug\cotire\FI_TESTS_CXX_prefix.pch"
Thanks for the huge donation! Hope you don't feel let down.

Hi,
Long time, no talk :-)
I might have a better solution, with a different approach (using add_library(... OBJECT ...))
It might be totally wrong, but my tests showed that it can work under linux, osx and windows.
Could you look at this and tell me your opinion :
https://github.com/pthom/cmake_registertest/blob/master/examples/example_doctest_raw/MyLibrary/CMakeLists.txt

Thanks for discovering this!
I'll write about it in the FAQ section about tests in static libraries!
Btw version 1.2 should be released in the next 24 hours :)

Hey, I'm currently using the following CMake module that disables my build tests for a release version and export all symbols for debug. Adding all symbols to the dynamic symbol table solves the issue and seems far more elegant. The option can be turned off for any subdirectory or target with --no-export-dynamic. On the other side, it can be enabled at the target level with target_link_options(<target-name> LINKER:-export-dynamic). Please let me know if you can any downsides to this.
find_package(doctest QUIET)

message("Using a ${CMAKE_BUILD_TYPE} build.")
if(CMAKE_BUILD_TYPE STREQUAL Release)
  add_compile_definitions(DOCTEST_CONFIG_DISABLE)
  message("The tests are OFF.")
else()
  add_link_options(LINKER:-export-dynamic)
  message("The tests are ON.")
endif()

I'm a bit late to the show, but I noticed that the example here only works if the static library source files and main.cpp are in the same directory. If they reside in different directories I get unresolved symbols.
Is there a workaround for this?


Breakpoints grouping and management

Feature
I would love to see an ability to create groups for breakpoints and ability to turn them on and off independently.
Usecase
Lets say you want to debug 2 features 1 in your project but you don't want or need to debug them at the same time.
There for you might want to debug 1st feature, then 2nd, then again 1st, etc.
Ability to have groups for breakpoints would greatly improve effectivity of this workflow.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

We try to keep VS Code lean and we think the functionality you're asking for is great for a VS Code extension. Maybe you can already find one that suits you in the VS Code Marketplace. Just in case, in a few simple steps you can get started writing your own extension. See also our issue reporting guidelines.
Happy Coding!


Feat/embeddings

WIP implementation of the RAG to replace the GPT store.
Need to finish auth (waiting on DNS propagation), and add a basic admin interface to update games and upload resources.

Alright implementation I think works.
I'm probably going to swap out the PDF scraper (via a boolean flag) and have it point to a paid API that does a significantly better job converting PDF to markdown, and then use that for the embeddings. I'd run it in parallel but it requires a GPU unfortunately.


Performance review of webchat start times

@m4thfr34k @maxnorth - Do we have any more information on this as to what needs to be tackled in this? Just noting down the performance of the Webchat? Also, Max, does the newly added package for App Insights tackle this?