text:
Can we know at which frame each trajectory node was generated?

Hi all!
Currently i am trying to extract the final trajectory of a robot after doing offline mapping in cartographer. By following issue #332 , and using this code, now I am able to access the pose of robot for each trajectory node.
I ran my cartographer_ros in my bagfile that generated from KITTI raw dataset using kitti2bag and have 1101 frames on it. From the .pbstream file that generated, I got 526 trajectory nodes. From the number itself, it seems there's no correlation between amount of generated trajectory nodes and amount of scanning frames.
Is there any way to know at which frame each trajectory node was generated? Or what parameter(s) that can affect the amount of generated nodes?
Thank you!

From the number itself, it seems there's no correlation between amount of generated trajectory nodes and amount of scanning frames.

To get the same number of poses as there are scans, you have to make sure that a trajectory node is inserted for every laser scan:

disable motion filter (set values to 0)
make sure that num_accumulated_range_data equals options.num_laser_scans * options.num_subdivisions_per_laser_scan, i.e. using single scans for scan matching

Maybe there are other options you need to change that I forgot, but you can try it.

Hey @nobinov
I'm working on a project where I need to achieve the same task you are describing (extract the poses from a pbstream file generated with cartographer), and I'm also working with the KITTI dataset. I have several questions regarding where should I place the pbstream_reader.cpp source code within my workspace.
I believe this is the correct path, but I am not completely sure:
catkin_ws -> src -> cartographer_ros -> cartographer_ros -> cartographer_ros -> pbstream_reader.cpp
Also, the CMakeLists.txt file I need to modify is the one in the following path?
catkin_ws -> src -> cartographer_ros -> cartographer_ros ->  CMakeLists.txt
The modifications that need to be done for the above mentioned CMakeLists.txt file are adding the following lines?
add_executable(read pbstream_reader.cpp)
target_link_libraries(read cartographer_ros )
And finally, is this file run as a ros node (rosrun)? I am still new to ROS so sorry if I'm asking something obvious.
Thank you in advance!

@GuillermoHerreraF There's already something similar in the repository: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros/cartographer_ros/dev/pbstream_trajectories_to_rosbag_main.cc
rosrun cartographer_ros cartographer_dev_pbstream_trajectories_to_rosbag ...

Hello @MichaelGrupp thank you for your help.
I tried adding the pbstream_trajectories_to_rosbag_main.cc to my cartographer workspace and modified the corresponding CMakeLists.txt following this:
https://code.research.uts.edu.au/13110756/cartographer_ros/commit/6ee68c22f922c6234c5488f649f1b413e860eae2
But it gives me a compilation error. I also tried cloning the git from the link you provided into my workspace, but I still get compilation errors.
How should I modify my workspace in order to be able to run the executable with the command you provided?
Thank you again.

@MichaelGrupp I manage to install the new version of cartographer and cartographer_ros in a new workspace. but I had to do it manually (without the cartographer_ros.rosinstall) and everything compiles.
Now I'm trying to run the command rosrun cartographer_ros cartographer_dev_pbstream_trajectories_to_rosbag [pbstream file] [output bag file], but it gives me an error saying that the input pbstream file is missing. What is the format to pass the pbstream and bag files?

cartographer_ros cartographer_dev_pbstream_trajectories_to_rosbag --input <pbstream> --output <bagfile>

Great thank you very much for your help @MichaelGrupp!

hi @MichaelGrupp and @GuillermoHerreraF , thank you for replying this issue. glad to get a new insight for this problem!

disable motion filter (set values to 0)
make sure that num_accumulated_range_data equals options.num_laser_scans * options.num_subdivisions_per_laser_scan (or num_multi_echo_laser_scans, depending on what's used...) i.e. using single scans for scan matching

I've tried this, and now the generated trajectories increased, but only to 1090. Meanwhile I have 1102 frames. I am still not check whether it can be matched to the frames in the rosbag or not, I'll try it and give you an update soon.

I tried adding the pbstream_trajectories_to_rosbag_main.cc to my cartographer workspace and modified the corresponding CMakeLists.txt following this:
https://code.research.uts.edu.au/13110756/cartographer_ros/commit/6ee68c22f922c6234c5488f649f1b413e860eae2
But it gives me a compilation error. I also tried cloning the git from the link you provided into my workspace, but I still get compilation errors.

In my environment, the error seems ocurred because I am using the old version of cartographer_ros and there's no package named Abseil that required when calling #include "absl/strings/str_cat.h" I've tried to fix it by install those package manually using sudo apt-get install ros-${ROS_DISTRO}-abseil-cpp  and with another way by include the Abseil as ros package based on https://github.com/Eurecat/abseil-cpp. After that, I modified CMakeLists.txt on src/cartographer_ros/cartographer_ros by adding find_package(abseil_cpp REQUIRED). However, both of them are still not detected.
Is there any way to fix those problem without re-installing cartographer_ros from scratch again? Because I've made several modification needed internally on cartographer-ros.
Thank you!

Hey @nobinov. The only way i could make it work was by installing from scratch the cartographer and cartographer_ros packages. As you pointed out, if not, it does not find the Abseil library. I tried to modify the files without having to reinstall both packages but I couldn't make it work as I mentioned earlier.
I wanted to ask you how did you manage to increase the number of poses to scans? I tried doing what @MichaelGrupp suggested, modifying the max_time_seconds, max_distance_meters and max_angle_radians variables to 0 in the motion_filter_options.proto file; however, I get this compilation error when I recompile it:

Also, which value did you put in the num_accumulated_range_data variable from the local_trajectory_builder_options_3d.proto file? I changed to 0 as well as the num_laser_scans from my lua file is 0. I do not know if I understood correctly.

Don't modify the .proto files, they define internal message formats. If you want to change the configuration, adapt the .lua files.

@MichaelGrupp I did as you suggested and indeed I get more poses than before. However, I checked poses from the same timestamp (with and without the .lua modifications) and they do not agree.
This is the changes I made in the .lua:
TRAJECTORY_BUILDER_3D.motion_filter.max_time_seconds = 0
TRAJECTORY_BUILDER_3D.motion_filter.max_distance_meters = 0
TRAJECTORY_BUILDER_3D.motion_filter.max_angle_radians = 0
TRAJECTORY_BUILDER_3D.num_accumulated_range_data = 0
as
num_laser_scans = 0,
num_subdivisions_per_laser_scan = 1,
Do you have any idea why this difference appears?

@MichaelGrupp @GuillermoHerreraF  I did tried to install cartographer from master branch, but I got an error when compiling them : https://github.com/googlecartographer/cartographer/issues/1589 do you guys have any idea what's missing?

Hey @nobinov. Did you install it using the cartographer_ros.rosinstall file? Because I couldn't make it work that way... for some reason it keeps installing the older version. What I did was copy the folders corresponding to cartographer and cartographer_ros packages within my workspace (https://github.com/googlecartographer/cartographer_ros and https://github.com/googlecartographer/cartographer) and recompile everything with catkin_make_isolated --install --use-ninja.
The problem with this for you is that you will have to modify again the changes you made before in those packages.
I wanted to ask you, can you shared the .lua configuration file that you are using for the KITTI dataset please.
Let me know if it works for you.

@GuillermoHerreraF you can see my simple configuration on here https://github.com/nobinov/kitti_cartographer. it's working but not fully tuned so the result might be a bit off.
I also already tried to install the way you already did. But in my case, the cartographer package got an error out of nowhere on ray_casting.cc, so it failed to compile. (error messages can be seen on https://github.com/googlecartographer/cartographer/issues/1589 ). Did you previously got the similar error while compiling?

hi @MichaelGrupp previously i am working on the kitti data set that only have one pointcloud2 topic. Now I am using another data that use 3 different pointcloud2 topics, and 1 of them is using different frequency(2 slow velodynes, 1 fast velodyne). Is there any way to set the frame references to one specific frequency?

I'm sorry, I can't help with setting this up.

Greetings @nobinov @MichaelGrupp,

I've tried this, and now the generated trajectories increased, but only to 1090. Meanwhile I have 1102 frames. I am still not check whether it can be matched to the frames in the rosbag or not, I'll try it and give you an update soon.

were you ever able to understand why this mismatch between the number of /scan topics and the number of /trajectory topics (obtained from running cartographer_dev_pbstream_trajectories_to_rosbag)?

authors: GuillermoHerreraF MichaelGrupp marcoluis97 nobinov


text:
docker copy instead of volume mount to resolve dubious ownership issue

Resolved dubious ownership issue due to which test cases are failing.
✨ Special Thanks to @rohitagg2020 and @renuy for helping in resolving this.

LGTM

source: gharchive/pull-request

repo: carvel-dev/kbld

license_type: permissive

license_source: github-api


text:
Is it totally necesary to copy each frame?

When working with big files (about two hour long videos) the time-altered frame saving takes a very long while, and I was wondering if it wasn't possible to calculate which frames will disappear and just delete the frames you won't need and use the ones remaining as input for ffmeg. Am I mising something?

Had the same thought and tried with ffmpeg params - vf select and - af aselect with "between(n, chunk[0],chunk[1])" on chunks with chunk[2] equal to 1. The problem is that the generated command exceeds Windows cmd's limit of 8192 characters. I've tried also to generate a txt file with the parameters but couldn't make it work. Be aware that this technique will cut the video and the audio sequence, but with the original approach is not to cut but to speed up the silenced parts, giving a more natural feeling.

I found a script that does it much faster (by a lot) and doesnt have to extract each frame, saving time and space. Also it doesn't seem to have any A/V desync problems (an issue no one has reported yet).
https://github.com/excitoon/video-remove-silence
I am not trying to keep people away from carykh's project but to point to an alternative and a cool script that may give an idea of how to optimize this process. Also carykh's project has another purpose, that is cutting with hand gestures and much other features.

I found a script that does it much faster (by a lot) and doesnt have to extract each frame, saving time and space. Also it doesn't seem to have any A/V desync problems (an issue no one has reported yet).
https://github.com/excitoon/video-remove-silence
I am not trying to keep people away from carykh's project but to point to an alternative to just fullfill this task and show a script that may give an idea of how to optimize this process. Also carykh's project has another purpose, that is cutting with hand gestures and much more features.

The one you linked looks cool but has no tolerance settings so you cannot adjust it for different sensitivities.

@petermg yes it has, look from line 17. Sorry for the formating, I am using the mobile.
parser.add_argument('path', type=str, help='path to video')
parser.add_argument('--threshold-level', type=float, default=-40, help='threshold level in dB')
parser.add_argument('--threshold-duration', type=float, default=0.2, help='threshold duration in seconds')
parser.add_argument('--constant', type=float, default=0, help='duration constant transform value')
parser.add_argument('--sublinear', type=float, default=0, help='duration sublinear transform factor')
parser.add_argument('--linear', type=float, default=0.1, help='duration linear transform factor')
parser.add_argument('--save-silence', type=str, help='filename for saving silence')
parser.add_argument('--recalculate-time-in-description', type=str, help='path to text file')

source: gharchive/issue

authors: EquipoP egrinant petermg

repo: carykh/jumpcutter

license: MIT


text:
Policies table is missed

In the current version of casbin-dashboard policies table is missed

Hi my friend, I will requset to my mentor about whether to add a Policies table or not.

repo: casbin/casbin-dashboard


text:
noopener added

Fixes : #71
Description :
In the anchor tag rel="noopener noreferrer" this is used when taget="_blank".

Please ensure Checkmark the following :
[x] - Tested Localy
[x] - Checked in IE11 and Firefox
[ ] - Checked in mobile
[ ] - Backend work
[ ] - Frontend work
[ ] - Bug Fixes
[ ] - Enhancements

@hsluoyz Please review.

resolved.

authors: nodece samagragupta


text:
feat: add detailed policy storage description

Signed-off-by: tangyang9464 tangyang9464@163.com

lgtm!

repo: casbin/casbin-website


text:
Adding gocloud.dev based watcher

https://github.com/rusenask/casbin-go-cloud-watcher

lgtm

authors: nodece rusenask


text:
token_type_hint should be optional in introspect url

Hi.
I've been trying to setup OIDC with a custom mail server but I'm having an issue that is related to the introspection url requiring token_type_hint in parameters.
As stated in the OIDC RFC found here
I've reproduced this issue using the demo website of casdoor: https://door.casdoor.com/
Step 1 : Login request with curl
curl --request POST \
  --url https://door.casdoor.com/api/login/oauth/access_token \
  --header 'content-type: application/json' \
  --data '{
    "grant_type": "password",
    "client_id": "541738959670d221d59d",
    "client_secret": "66863369a64a5863827cf949bab70ed560ba24bf",
    "username": "admin",
    "password": "123"
}
'

Step 2: Get the access token from the previous request, and send an introspection request:
curl -d "token=eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ.[encoded data, 5164 characters].XphAeh45PpOcNoMxB06RJaJDpUsrmg-w7X9uXt4b3S6TB1tubzpyniiVWlSGqvQtfsL3mF2FY38hp_bDu6NFrNVfV7iEFV7-aEkBCqmF0L17UrswpyGvalwAQbPHa93N9OvGjWZwtod3d--mKJQGeAciO9G1GIat2LmZlyADh7RdblmV3KoVBGpZllT3dB16jkJ2oH9pykPay3eCfOydl7MbdzcVwXEARQq4u7cFJrli-A4lUPcw2_wTIBFB8H2GLrbws87lrhojYdomCDEt_Xi7WV3fdQJ6YRFt_PWUFQ-ay8FvOtwtRzamSIClaX3Nh1GrfQBFqoOUMw2x7ZGuvdi_EVG41zF68dX9Qr6jYWR6gEIbvhNDT6Yx7pgpmwWYjXSdkfLvxArhUS6dV-vCSpbBHeGlxzQjUILH8mPVCMsTmjKjKKdusTzNDZQ3_5L2X8DXW6iXnjRFMwQinwU06qObgNz9m2D0N69sIg6an7xLMZrq-B_Rtjk6-Z3DYMTi441eBzyUhhaSHpd3oII-t7MfH7-Eo0soTUN3oI06shKJB7EG3xJFni4C5hVVoiW2gEGXNZ-YXsQbfNijzl9co3Vfu8GaU3U9TWIp1V8knCiQMEKrIZYsluwpP3d1yPJXbSqElKC89UIa0df9brFQDHGp6jskPAlcquN-oFMNAt8" https://door.casdoor.com/api/login/oauth/introspect   --header 'Authorization: Basic NTQxNzM4OTU5NjcwZDIyMWQ1OWQ6NjY4NjMzNjlhNjRhNTg2MzgyN2NmOTQ5YmFiNzBlZDU2MGJhMjRiZg=='

Step 2 responds with:
{
  "active": false
}

Step 3: Expected response when passing token_type_hint=access_token as well:
curl -d "token=eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ.[encoded data, 5164 characters].XphAeh45PpOcNoMxB06RJaJDpUsrmg-w7X9uXt4b3S6TB1tubzpyniiVWlSGqvQtfsL3mF2FY38hp_bDu6NFrNVfV7iEFV7-aEkBCqmF0L17UrswpyGvalwAQbPHa93N9OvGjWZwtod3d--mKJQGeAciO9G1GIat2LmZlyADh7RdblmV3KoVBGpZllT3dB16jkJ2oH9pykPay3eCfOydl7MbdzcVwXEARQq4u7cFJrli-A4lUPcw2_wTIBFB8H2GLrbws87lrhojYdomCDEt_Xi7WV3fdQJ6YRFt_PWUFQ-ay8FvOtwtRzamSIClaX3Nh1GrfQBFqoOUMw2x7ZGuvdi_EVG41zF68dX9Qr6jYWR6gEIbvhNDT6Yx7pgpmwWYjXSdkfLvxArhUS6dV-vCSpbBHeGlxzQjUILH8mPVCMsTmjKjKKdusTzNDZQ3_5L2X8DXW6iXnjRFMwQinwU06qObgNz9m2D0N69sIg6an7xLMZrq-B_Rtjk6-Z3DYMTi441eBzyUhhaSHpd3oII-t7MfH7-Eo0soTUN3oI06shKJB7EG3xJFni4C5hVVoiW2gEGXNZ-YXsQbfNijzl9co3Vfu8GaU3U9TWIp1V8knCiQMEKrIZYsluwpP3d1yPJXbSqElKC89UIa0df9brFQDHGp6jskPAlcquN-oFMNAt8&token_type_hint=access_token" https://door.casdoor.com/api/login/oauth/introspect   --header 'Authorization: Basic NTQxNzM4OTU5NjcwZDIyMWQ1OWQ6NjY4NjMzNjlhNjRhNTg2MzgyN2NmOTQ5YmFiNzBlZDU2MGJhMjRiZg=='   --header 'content-type: application/x-www-form-urlencoded'

What I get on step 3, which is also what I'm expecting at step 2 is the following :
{
  "active": true,
  "client_id": "541738959670d221d59d",
  "username": "admin",
  "token_type": "Bearer",
  "exp": 1733841394,
  "iat": 1733236594,
  "nbf": 1733236594,
  "sub": "d835a48f-2e88-4c1f-b907-60ac6b6c1b40",
  "aud": [
    "541738959670d221d59d"
  ],
  "iss": "https://door.casdoor.com",
  "jti": "admin/5aa5262a-70a1-4acf-8fe6-00387fe8e8e5"
}

This should also work and return the same when passing the refresh_token without the token_type_hint parameter.
I don't have any knowledge of the Casdoor codebase nor of go, but I've tracked which section of the code is responsible for the introspection url requests handling.
It's the function named GetTokenByTokenValue  in objet/token.go.
I think it should be something like this if my little knowledge of Go from what I found online is correct :
func GetTokenByTokenValue(tokenValue, tokenTypeHint *string) (*Token, error) {
    switch  {
    // if no token_type_hint provided, check both access and refresh tokens
    case tokenTypeHint == nil:
    case *tokenTypeHint == "":
        token, err := GetTokenByAccessToken(tokenValue)
        if token != nil {
            return token, nil
        }
        token, err2 := GetTokenByRefreshToken(tokenValue)
        if token != nil {
            return token, nil
        }
        if err2 != nil {
            return nil, err2
        }
    // if either access_token or refresh_token is provided, only search that kind of token
    case *tokenTypeHint == "access_token":
        token, err := GetTokenByAccessToken(tokenValue)
        if err != nil {
            return nil, err
        }
        if token != nil {
            return token, nil
        }
    case *tokenTypeHint == "refresh_token":
        token, err := GetTokenByRefreshToken(tokenValue)
        if err != nil {
            return nil, err
        }
        if token != nil {
            return token, nil
        }
    }

    return nil, nil
}

@dacongda

I have made a PR ,can you help me to test?

Sure, just give me 5 minutes to get the project up and running locally and I'll tell you if it works as intended

I've been trying since I sent that message to run both the backend and frontend locally on my machine from your PR but it doesn't want to build rn, I will try again tomorrow, sorry but I can't manage to test it, I even tried cloning your repo and running it on my vps but it keeps crashing whenever I try to build the docker version.

Sorry for the late response, I managed to make it run locally.
I've configured my casdoor backend to run using a sqlite db instance, my conf/app.conf contains the following:
appname = casdoor
httpport = 8000
runmode = dev
copyrequestbody = true
driverName = sqlite
dataSourceName = "file:casdoor.db?cache=shared"
dbName = casdoortable
NamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 0
logPostOnly = true
isUsernameLowered = false
origin =
originFrontend =
staticBaseUrl = "https://cdn.casbin.org"
isDemoMode = false
batchSize = 100
enableErrorMask = false
enableGzip = true
inactiveTimeoutMinutes =
ldapServerPort = 389
radiusServerPort = 1812
radiusSecret = "secret"
quota = {"organization": -1, "user": -1, "application": -1, "provider": -1}
logConfig = {"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
initDataNewOnly = false
initDataFile = "./init_data.json"
frontendBaseDir = "../cc_0"

I have then run the backend and frontend apps as indicated in the server installation section.
I have then added the Password Grant to the app-built-in application:

I've made a simple Hoppscotch collection and environment with the default admin username and password, the default app-built-in clientId and clientSecret and made some basic tests that need to pass.
Here's the Hoppscotch export (that you can also import in postman) of the collection and environment I used:
CasdoorEnv.json
Casdoor.json
I've run my collection and as you can see, the test are not passing:

I made a simple test on the active attribute for both the access and refresh tokens.
Technically both responses should be the same but I couldn't manage to save the body of the requests with the token_type_hint to test against the response of the requests without it.

Tried it on the fix branch as well, same results

authors: dacongda hadestructhor hsluoyz

repo: casdoor/casdoor


text:
DigitalAddressFacet subclasses and is-a vs. has-a confusion

Oresteia.json, in today's state (e87a8e0eabe54762fec1347ff0e563173f3ccac0), has a design issue with the Clytemnestra iPhone.
The issue is in this excerpt, where the two Facets were modified to have an @id solely for discussion here:
{
    "@id": "kb:clytemnestra-device-uuid",
    "@type": "uco-observable:Device",
    "uco-core:hasFacet": [
        {
            "@id": "kb:facet-1",
            "@type": "uco-observable:WifiAddressFacet",
            "uco-observable:addressValue": "d0:33:11:13:e7:a1"
        },
        {
            "@id": "kb:facet-2",
            "@type": "uco-observable:BluetoothAddressFacet",
            "uco-observable:addressValue": "d0:33:11:13:e7:a2"
        }
    ]
}

This is an instance of Facets confusing is-a vs. has-a object relationships.  It is also an instance of a potential conflict when RDFS subclassing is used.
UCO Issue 445 details the issue with subclassing and a yet-unencoded design point.  The issue is: If RDFS expansion (/inferencing) were applied, several more subclasses would be added into this snippet.  I'll add just a few - there are significantly more that would be added, but what comes in is sufficient for demonstration.
{
    "@id": "kb:clytemnestra-device-uuid",
    "@type": [
        "uco-core:UcoObject",
        "uco-observable:Device"
    ],
    "uco-core:hasFacet": [
        {
            "@id": "kb:facet-1",
            "@type": [
                "uco-observable:DigitalAddressFacet",
                "uco-observable:WifiAddressFacet"
            ],
            "uco-observable:addressValue": "d0:33:11:13:e7:a1"
        },
        {
            "@id": "kb:facet-2",
            "@type": [
                "uco-observable:BluetoothAddressFacet",
                "uco-observable:DigitalAddressFacet"
            ],
            "uco-observable:addressValue": "d0:33:11:13:e7:a2"
        }
    ]
}

Informal discussion in committee meetings has led me to understand that an object should only ever have one instance of any particular Facet class.  If that were encoded in OWL, that would mean that kb:facet-1 and kb:-facet-2, having a class in common, would be kb:clytemnestra-device-uuid's one instance of a DigitalAddressFacet.  The relevant OWL mechanics (likely something about qualified cardinalities) would trigger a owl:sameAs inference, collapse kb:facet-1 and kb:facet-2 into one object with two IDs (or just duplicate all properties from either to the other), and then trigger a SHACL validation error because this DigitalAddressFacet would have two addressValues.
If UCO starts encoding how Facets correspond with their similarly-named UcoObject subclasses, this example in Oresteia will be a significant forcing function towards creating and relating separate objects.

The requirement that an object should only ever have one instance of any particular Facet class is applicable to any specific Facet class and is not applicable to its superclasses or subclasses.
If we tried to apply it to superclasses then ALL instances would fail as ALL Facet subclasses are all subclasses of Facet.

The requirement that an object should only ever have one instance of any particular Facet class is applicable to any specific Facet class and is not applicable to its superclasses or subclasses.

I appreciate how we would like that to be true.  We should be aware that in RDFS inferencing, such a requirement will take care to encode.
For instance, one consequence is we may need to "freeze the leaf set" of Facet subclasses to enforce that data made today using a certain Facet subclass doesn't get invalidated in a future release because a new subclass of that "formerly specific" Facet subclass was implemented.  That is, being a "Specific Facet" is apparently a point of backwards compatibility.
Using intermediary Facet subclasses might be convenient for programming, but there is a non-trivial impact on semantics and inferencing.

authors: ajnelson-nist sbarnum

repo: casework/CASE-Examples


text:
Make tests faster to run and easier to write

Split Ordinal, Height, Epoch stuff into its own crate. Will be fast to compile and run unit tests. No I/O or state.
Figure out how to unit-test server. Should be able to run and test in-process for speed. The blockchain explorer can be tested against blocks and transactions that we construct, and doesn't need its own bitcoin core node. Bring back the fake RPC server.
The wallet does need to talk to bitcoind, however, for tests which are about logic and error handling, create a separate crate (or just struct or whatever) that takes all information that it needs to construct a transaction or perform a function, and returns a result, without doing I/O, and we can intensively test that, and as long as we call it correctly, things will work.

Done!

repo: casey/ord


text:
Enforce that Db classes have everything as 'open' for better Hibernate behavior

Like this:
@Entity
@Table(name = "registered_backfills")
open class DbRegisteredBackfill() : DbUnsharded<DbRegisteredBackfill>, DbTimestampedEntity {
  @javax.persistence.Id
  @GeneratedValue
  override lateinit var id: Id<DbRegisteredBackfill>

  @Column(nullable = false)
  open lateinit var service_id: Id<DbService>

  ...
}

Because that way Hibernate can do bytecode magic that yields better performance.
See also https://github.com/cashapp/backfila/pull/79/files

Lets use this:
https://stackoverflow.com/a/60276352
https://kotlinlang.org/docs/reference/compiler-plugins.html#all-open-compiler-plugin

See also: https://github.com/cashapp/backfila/pull/80/files

repo: cashapp/misk


text:
Subtemplates? Especially for Tailwind CSS

Tailwind CSS is a popular CSS framework. It uses a lot of verbose inline classes rather than custom CSS. Part of the motivation behind Tailwind is that since everyone is rendering HTML from templates, use those HTML templates to do reusable styles instead of CSS.  Don't have a button class with a bunch of CSS, have a button HTML template with a bunch of inline styles.
Parts of this work great with JTE, but parts don't. The big thing missing is that it's too verbose to create an entire file for every template. It would help a ton if we could declare smaller, possibly private templates within the bigger JTE template. For example, here's a template we have
@import models.SalesState
@param SalesState state

Recent usage

Past 7 days:

				${state.getUsage().getCount().get(SalesState.RecentUsage.Period.WEEK)}

Past 28 days:

				${state.getUsage().getCount().get(SalesState.RecentUsage.Period.MONTH)}

Past 365 days:

				${state.getUsage().getCount().get(SalesState.RecentUsage.Period.YEAR)}

It would be so nice if we could do something like this:
@import models.SalesState

@param SalesState state

Recent usage

		${usagePeriod("Past 7 days:", SalesState.RecentUsage.Period.WEEK)}
		${usagePeriod("Past 28 days:", SalesState.RecentUsage.Period.MONTH)}
		${usagePeriod("Past 365 days:", SalesState.RecentUsage.Period.YEAR)}

@private usagePeriod(String header, SalesState.RecentUsage.Period period)

${header}

			${state.getUsage().getCount().get(period)}

@endprivate

It doesn't really matter if it's private or not, and the syntax doesn't matter. But being able to easily add a little "subroutine" inside template files would really be a game changer.
Besides Tailwind, a lot of the new frontend tech (AlpineJS is another one) is perfect for a system like JTE, because they let you build great user experiences from "static" HTML. But they assume that the HTML is being written from e.g. TSX files, where you can easily whip up a quick function that spits out HTML. JTE is very close to being able to do that also...

I've been using Tailwind with JTE. I use DaisyUI component library. So one thought is using a component library with Tailwind reduces the classes you add within the HTML
Otherwise I've been rendering repeated sections in a loop, so the markup isn't repeated, or else creating a separate template file. It doesn't feel that onerous to me.

I definitely think JTE is the best game in town as far as JVM templating. But if I spend an afternoon in Typescript world, the extra friction in JTE becomes apparent.
There is a loop version of my example, maybe something like
@param SalesState state

Recent usage

		@for (entry : Map.of(
				"Past 7 days:", SalesState.RecentUsage.Period.WEEK,
				"Past 28 days:", SalesState.RecentUsage.Period.MONTH,
				"Past 365 days:", SalesState.RecentUsage.Period.YEAR).entrySet)

${entry.getKey()}

					${state.getUsage().getCount().get(entry.getPeriod())}

		@endfor

but it feels like code golf, and it doesn't work for the general case. It's certainly not a bug that JTE is strictly one-file-per-tempate, but I think it would be a great added feature if you could easily break up a template file with inline subfunctions.

Here's an idea (I haven't use this approach much - so I don't know how convenient it is in practise): Using lambdas to define sub-templates.
Example:
 !{Function<String,Content> component = (s) -> @`<div>${s}</div>`;}

@for(entry: entries)
   ${component.apply("foo")}
@endfor

@nedtwigg : Does this help with your use-case?

Oh, this is an awesome idea, thanks so much @chkl. We tried this and went through two evolutions:
v1: we happen to be using jOOQ, so we already have org.jooq.Function1 (and 2, 3, 4, 5, etc.) so we have a ready-made type for every reasonable function.
v2: we tried switching to kte, and Kotlin's lambda syntax makes it absolute butter
.jte
declare: !{org.jooq.Function2<String, String, gg.jte.Content> li_link = (String href, String content) -> @` ...
usage:   ${li_link.apply(Admin.URL_impersonate, "Stop impersonating")}

.kte
declare: !{val li_link = { href: String, content: String -> @`
usage:   ${li_link(Admin.URL_impersonate, "Stop impersonating")}

With the .jte syntax, it's onerous but doable. With the .kte syntax, I think this issue is totally solved. Thanks a ton!

authors: chkl edward3h nedtwigg

repo: casid/jte


text:
Bug report: joinme breaks symlink after automatic self-update

Description of issue
join.me application (https://github.com/caskroom/homebrew-cask/blob/master/Casks/joinme.rb) contains self-update functionality (cannot be turned off). After the first launch (even right away after brew cask install joinme) it performs self-update and replaces symlink-ed version with installed in-place. Moreover, if app is installed into ~/Applications instead of Applications it installs updated version into Applications.
This behaviour is consistent even if --appdir=/Applications is provided which makes this cask pretty useless.

No cask is useless from the point it can download the app automatically. This even installs correctly, so it’s far from useless.
Furthermore, links won’t even be a thing in the future. #13201 pretty much invalidates this.

authors: maxromanovsky vitorgalvao

repo: caskroom/homebrew-cask


text:
Owncloud

upgrading to the latest stable version

Please squash your commits.

readded the missing empty line but failed to squash...

No worries. It will be merged in a different pull request squashed. Your contribution is still included (and still credited to you). Thank you for the contribution

authors: meduz vitorgalvao


text:
updated kube-solo (0.5.2)

Closes #18354.

Merged as c48691b7bd7d2c2c537b9583cc19f72cb59c3b46.


text:
updated metabase (0.14.1)

Closes #18360.

Merged as a92dc96b41ebf87b69a7219c5727a1068a8f142a.


text:
updated visual-studio-code (1.0.0,fa6d0f03813dfb9df4589c30121e9fcffa8a8ec8)

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Merged as 31ee614803d90b8596442369ab61088e58c08724.


text:
Update casks to support SUDO_ASKPASS.

After making all changes to the cask:

[ ] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[ ] The commit message includes the cask’s name and version.

While you're at it, mind creating a separate PR to replace all instances of system with system_command? Should be pretty straightforward to script.
Once that's done, we can add a new rubocop-cask cop to disallow system in favor of system_command.

authors: jawshooah reitermarkus


text:
abyss-web-server: rename from abyss

See https://github.com/Homebrew/homebrew-core/pull/18354. This cask has a name conflict with the formula abyss. The app is also actually called "Abyss Web Server".

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Thanks @jonchang!

Thanks for the quick merge @commitay :heart:

Thanks, Jon!

authors: commitay ilovezfs jonchang sjackman


text:
Update josm to 12921

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] sha256 changed but version stayed the same (what is this?).
I’m providing public confirmation below.

Thanks for the PR!

authors: ckesc commitay


text:
Add cask for ComicBookLover

"ComicBookLover for Mac OS X enables comic fans to easily view,
collect, and organise digital comics. Find comics to read by
browsing cover artwork, smart lists, or using the advanced search
functions. Read comics on your laptop, on an external display, in
full screen, or perhaps even in Manga mode. Let ComicBookLover do
the hard work of managing thousands of comics while you just enjoy
your reading!"

Hi. Sorry to revive this old issue. If I should create a new one, please let me know.
Is there a way to select the version depending on the OS running? I have 10.6.8 and it installs the latest version, which crashes, unfortunately.


text:
🛑 My Homepage is down

In 4974aec, My Homepage (https://casman.co.uk) was down:

HTTP code: 0
Response time: 0 ms

Resolved: My Homepage is back up in f554054.


text:
Increase performance when using expressions

This pull request fixes https://github.com/castlemock/castlemock/issues/197.
With this changes, the response time with usingExpressions=True takes < 1 seconds (around 350 miliseconds), using the given usingExpressions.zip file.
The main change is the refactory of the TextParser.parse(String, Map) method to use StringBuilder instead of regex to make text find and replace.
Adictional changes was made to facilitate testing. Examples are:

Creation of ExternalInputBuilder class, using code that was in AbstractRestServiceController and AbstractSoapServiceController
Creation of TextParseMockConfig, a test utility class used by TextParserTest class
Creation of the several new test methods in TextParserTest class.
Construtors in TextParser to allow predictable expression results in TextParserTest tests methods.

Great work @tobiasrdm! Nice that you managed to resolve this issue.
I only have one feedback:

Missing license in the new classes

Could you please add the Apache License header in the classes that you created?
Once again, great work and thank you for your amazing contribution.
Best regards,
Karl Dahlgren

Great work @tobiasrdm! Nice that you managed to resolve this issue.
I only have one feedback:

Missing license in the new classes

Could you please add the Apache License header in the classes that you created?
Once again, great work and thank you for your amazing contribution.
Best regards,
Karl Dahlgren

Hi, @karldahlgren! I made a new commit now with the Apache License header in the classes ExternalInputBuilder, ExternalInputBuilderTest, TextParseMockConfig. Check that it is correct, please!

Hi, @karldahlgren! I made a new commit now with the Apache License header in the classes ExternalInputBuilder, ExternalInputBuilderTest, TextParseMockConfig. Check that it is correct, please!

Looks great!
Once again, great work! Thanks.
Best regards,
Karl Dahlgren

Looks great!
Once again, great work! Thanks.
Best regards,
Karl Dahlgren

authors: karldahlgren tobiasrdm

repo: castlemock/castlemock

license_source: bigquery


text:
Extensions.DependencyInjection: Existing services in container are cleared when registering in host

The use case is creating a container and registering components before registering it with the host. The naming sub-system is replaced, and all existing components are cleared.
The following example fails:
public interface IFileSystem
{
}

public class FileSystem : IFileSystem
{
}

public interface ICustomFileWriter
{
}

public class CustomFileWriter : ICustomFileWriter
{
	public CustomFileWriter(IFileSystem fileSystem)
	{
	}
}

public class Startup
{
	public void Configure(IApplicationBuilder app, ICustomFileWriter writer)
	{
            // ICustomFileWriter fails to resolve
	}
}

public class Program
{
	public static void Main(string[] args)
	{
		var container = new WindsorContainer();
		container.Register(Component.For<IFileSystem>().ImplementedBy<FileSystem>());

		Host
			.CreateDefaultBuilder()
                        // Register our own container
			.UseWindsorContainerServiceProvider(container)
			.ConfigureServices(x => x.AddSingleton<ICustomFileWriter, CustomFileWriter>())
			.ConfigureWebHostDefaults(x => x.UseStartup<Startup>())
			.Build()
			.Run();
	}
}

@robertcoltheart the changes I made to the WindsorServiceProviderFactory opened up for a base, and hence you can substitute.
In this base, you can override the AddSubSystemToContainer.
Would this not help you. I.e. you make your own WindsorServiceProviderFactory implementation. One could argue that resetting the container makes it "conforming".

Yes, there are definitely ways around this. My point is that if you are using the IHostBuilder extensions, namely UseWindsorContainerServiceProvider(this IHostBuilder hostBuilder, IWindsorContainer container), then the implication is that you can use your ready-built container in the ASP.NET Host.
What actually happens, however, is that all your components are are wiped out because the naming subsystem is replaced. If there is a cleaner or better way to make this more obvious, or work around for this, I'm happy to submit another PR.

Hi @robertcoltheart
Yes i know they get wiped. This is why I fought to get the container exposed.
So before there wasn't even a work around for it..
I like your change, if @jonorossi thinks it is good, it will also solve issues for me!

@robertcoltheart when i got the container exposed in the service provider factory this was the only workaround i could get implemented:
I think your fix might be better...

I have a viable workaround, which is to create the container, and immediately create a WindsorServiceProviderFactory, which sets the naming subsystem. After that I can configure my container, and finally add it to the host builder. So I'm happy with this approach for now. Someone that may know the inner workings of Windsor better than me might be able to attempt to solve this without using a new naming subsystem.

repo: castleproject/Windsor


text:
IIS Process hangs when recycling due to deadlock happened with Castle Windsor

Dears,
My application is hanging when IIS App Pool Process w3wp.exe got recycled, and after a lot of investigations and taking a lot  of crash dump files, the root cause of my issue was due to Threads being blocked and a deadlock happened.
it happened when I changed my cache API from Transient to Singleton
Here's the stack trace I got when investigating the dump file.
[[HelperMethodFrame]]
System.Threading.SpinWait.SpinOnceCore(Int32)+7d
Castle.Core.Internal.ThreadSafeInit.ExecuteThreadSafeOnce()+9e
Castle.MicroKernel.Lifestyle.SingletonLifestyleManager.Resolve(Castle.MicroKernel.Context.CreationContext, Castle.MicroKernel.IReleasePolicy)+4f
Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(Castle.MicroKernel.Context.CreationContext, Boolean, Boolean, Castle.MicroKernel.Burden ByRef)+14a
Castle.MicroKernel.Handlers.DefaultHandler.Resolve(Castle.MicroKernel.Context.CreationContext, Boolean)+21
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernelByType(Castle.MicroKernel.Context.CreationContext, Castle.Core.ComponentModel, Castle.Core.DependencyModel)+fffffffffb40fe8c
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveFromKernel(Castle.MicroKernel.Context.CreationContext, Castle.Core.ComponentModel, Castle.Core.DependencyModel)+fffffffffb40fd6c
Castle.MicroKernel.Resolvers.DefaultDependencyResolver.Resolve(Castle.MicroKernel.Context.CreationContext, Castle.MicroKernel.ISubDependencyResolver, Castle.Core.ComponentModel, Castle.Core.DependencyModel)+fffffffffb40fa76
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.ObtainPropertyValue(Castle.MicroKernel.Context.CreationContext, Castle.Core.PropertySet, Castle.MicroKernel.IDependencyResolver)+fffffffffb416ab8
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.SetUpProperties(System.Object, Castle.MicroKernel.Context.CreationContext)+b3
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(Castle.MicroKernel.Context.CreationContext)+fffffffffb40e968
Please, advice me on how to solve this issue as it happened on Production and affect our customers

@jonorossi  any updates as this issue is critical for us

I'm not trying to sound rude, but I think you misunderstand the open source license you are using Windsor under, you are the one being paid to maintain your system for your customers, not sure what you expect me to do.
For it to be blocked there you've probably got a deadlock, look at more of your threads in the memory dumps and you might find you've got a race from multiple ASP.NET worker threads to initialise the singleton. You've probably introduced a deadlock by making it a singleton because of some other assumptions. I've not seen anyone report anything like this in the decade that code has been there, you'll have to work it out in the code I can't see.

Closing as this has no reproduction, and the stack trace outside of Windsor code and some of the Winsdor frames is completely snipped off, so no idea how you are even initialising your container. If you find a defect we can reopen the issue.


text:
Add processed fiber photometry

Add data from processed fiber photometry
TODO:

[x] Add raw fiber photometry series to acquisition
[x] Add processed data to ophys
[x] Figure out single vs multi experiment type (do not write second fiber metadata for single fiber experiment)
[x] Add velocity and acceleration (continuous)
[x] Add reward events
[x] Add movement events (movement onset, acceleration and deceleration onset)
[x] Add peak transient events (the onset of large transient peaks for green or red fiber fluorescence)

Full here

Thanks, I'll add a follow up PR to switch to ndx-fiber-photometry soon.

repo: catalystneuro/dombeck-lab-to-nwb


text:
Add spikeinterface support to PhySortingInterface

As stated in the title. Linked to https://github.com/catalystneuro/nwb-conversion-tools/issues/500.

Nice and simple!

authors: CodyCBakerPhD h-mayorquin

repo: catalystneuro/nwb-conversion-tools


text:
Incorrect Excel parsing when system decimal separator is a comma

If the system is configured to use decimal separator different from a dot (.), Excel converter parses floats incorrectly.
Source Excel:

Converted JSON:

I narrowed this down to a ToString call in ExcelSheetConverter.Page.GetCell:
Debugger console:
  _table.Rows[row][col]
  0.29999999999999999

  _table.Rows[row][col].ToString()
  "0,3"

I fixed it like this. Don't know if that's the only place to fix though.
public string GetCell(int col, int row)
{
	if (col >= _table.Columns.Count || row >= _table.Rows.Count)
		return null;

	if (_table.Rows[row][col] is IConvertible conv)
		return conv.ToString(CultureInfo.InvariantCulture);
	else
		return _table.Rows[row][col].ToString();
}

My regional settings for reference:

Thank you for reporting! This should've been accounted with https://github.com/cathei/BakingSheet/issues/12, but I overlooked it.
Fixed in v4.1.3

Thanks for fixing and releasing so quickly!

repo: cathei/BakingSheet


text:
Broken syntax highlighting

The syntax for C++ is not highlighted correctly, or has colours that are too similar
Others

purple
nord

Catppuccin

Hey 👋
I am actually aware of this, and it seems to be an issue with specifically org-mode source block, that use the normal source block face rather than default for unstyled parts.
I am looking into it, but haven’t found a solution nor workaround yet.

Yeah so all the other themes have the same problem, what is happening with Catppuccin is that both string and the source blocks are green. What purple and nord have is that their source blocks without a language set are just white. As a workaround you can change the color of source blocks to text with
(defun ctp/text-org-blocks ()
   (face-remap-add-relative 'org-block (list :foreground (catppuccin-get-color 'text))))

(add-hook! 'org-mode-hook 'ctp/text-org-blocks)

I'll leave the issue open until a proper solution is found.

This should now be possible to overwrite with org-mode 9.6.4 with
(setq org-src-fontify-natively t)
(add-to-list 'org-src-block-faces '("" '(:foreground (catppuccin-get-color 'text))))

I will keep this open until I get around to making a PR that has catppuccin automatically set this.
ref: org-mode: Fontify src blocks without lang

org-mode 9.7 has since been released

repo: catppuccin/emacs


text:
feat(barbecue): add alt_background integration setting

https://github.com/catppuccin/nvim/issues/462#issuecomment-1515612974

@ArtAndreev

Thank you!

authors: ArtAndreev mrtnvgr

repo: catppuccin/nvim


text:
🛑 BA Anglers is down

In d47cb3a, BA Anglers (https://www.buenosairesanglers.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BA Anglers is back up in eb33040.

repo: cavalicenti/upptime


text:
Acer Chromebook 317, numlock is defualted as off, but there is no numlock button

My Chromebook is one of the few with a numpad, but it does not have a numlock button as it is just for the numbers nothing else. When I started using breath I quickly noticed that numlock was "off". I had to install numlockx and set up the command numblockx on at boot.
This only works after the login screen. I use budgie which luckily has a setting to have numlock on at the login screen.
Just want to bring this to your attention if you want to mess with this, if not feel free to just close it.
Not sure if there is a better way to do this on your end so it is just defaulted to be "on" as I would guess if any other chromebooks have a numpad it would be similar with no numlock button.

I think I can make a udev rule that’ll enable numlock in Chromebook keyboards with numpads.

Awesome, just let me know if you want me to try anything.
I looked to see if any other Chromebooks have a numpad and it looks like there are 3 others and they are all like mine, without a numlock button.

I'm afraid there's no hardware-level solution to enable/disable numlock. All of this is dependent on the desktop environment, Xorg, Wayland, or having no display server.

authors: MilkyDeveloper xSPARExSTEWx

repo: cb-linux/breath


text:
Warning when hiding title bar

Electron[21329:3926948] *** WARNING: Textured window <AtomNSWindow: 0x7fbf75488090> is getting an implicitly transparent titlebar. This will break when linking against newer SDKs. Use NSWindow's -titlebarAppearsTransparent=YES instead.

⏳ Waiting for https://github.com/electron/electron/issues/11150 issue on Electron repository to be resolved.

 🐛 Bugs

I can't reproduce it on Electron 12


text:
Seeking Clarification: Cumulative Rewards in Batch B1 and B2 - SDP Process (ISAC)

Hello everyone,
I hope this message finds you well. I've been working on implementing the SDP (Part 1 of the paper), and I've come across a point of potential confusion regarding the cumulative rewards for transitions in batch B1.
The paper mentions that every transition within batch B1 should have the same cumulative reward( following the math description of  B_1), but upon reviewing the code, it seems that transitions are randomly selected with the possibility of having different cumulative rewards.
Before jumping to any conclusions, I wanted to open up a discussion and seek clarification from the community and maintainers. Could someone please shed light on whether the intended behavior is to have uniform cumulative rewards for all transitions in B1, or if the current code aligns with the paper's specifications?

Sorry for the confusion.
In SDP, the episodic reward is not same for entire B1, batches are sampled sampled randomly from buffer.
The modification is made to each transition before saving it to buffer.
An additional element is added to each transition tuple before saving to buffer.
This additional element/ score is the episodic return, which remains same for all the transitions of a certain episode only,
check code lines: 403-404,of sac_isac.py

thank you for the clarification and the fast response, got it!


text:
Add color to the CLI

It would be nice to have errors and warnings color-coded

https://github.com/mitchellh/cli supports this.

I'm lazy. So not going to do this. :)

repo: cbednarski/hostess

license: mit


text:
beanshell dependency removed from testng

Hi,
Beanshell was under compile scope in TestNg 6.14.3, but totally removed in 7.5.
Why not add beanshell as a optional dependency since it seems that it is still supported, at least documentation still exists
https://testng.org/doc/documentation-main.html#beanshell
TestNG Version
7.5
Expected behavior
Add beanshell as a optional dependency if TestNg still support beanshell.
Actual behavior
beanshell is removed
Is the issue reproducible on runner?

[ ] Shell
[ ] Maven
[ ] Gradle
[ ] Ant
[ ] Eclipse
[ ] IntelliJ
[ ] NetBeans

Test case sample

Please, share the test case (as small as possible) which shows the issue

Contribution guidelines
Incase you plan to raise a pull request to fix this issue, please make sure you refer our Contributing section for detailed set of steps.

@martinaldrin - TestNG has moved into a SPI approach for loading javax.script.ScriptEngineFactory implementations. This basically removes any dependency that TestNG has to by default bring in for supporting method selectors via beanshell (or) javascript.
Thanks for pointing out this missing information on the documentation. We will update the documentation stating that if one needs to use beanshell for method selectors they can add up an explicit dependency on https://mvnrepository.com/artifact/org.apache-extras.beanshell/bsh/2.0b6
Personally I see no reason for TestNG to continue to bring in such optional dependencies which can very well be added up by a downstream consumer based on their individual needs.

thanks for the information, I just thought that this is the purpose of the optional, since they will not be resolved unless I manually add them. but I'm fine if the documentation is updated as well.

It was optionnal before because we had a real dependency at compile time.
Now, no more need to have it 😉

authors: juherr krmahadevan martinaldrin

repo: cbeust/testng


text:
#1598 Injected types parameter and optional parameters cannot be used together.

Injected types parameter and optional parameters cannot be used together
Fixes # 1598.
https://github.com/cbeust/testng/issues/1598

@juherr - Please add your comments as well, so that @eyehwan can fix all of them in one shot instead of doing it over multiple iterations.
@eyehwan - Please hold off on pushing fixes for the comments, till @juherr adds his observations as well.

@juherr Thanks for reminding， I will check this part of code.

Generic request. Please see if you can limit the formatting only to the section of code you change. So in a method, if you are changing only 3 lines, please help format only those 3 lines, instead of formatting the entire method. That way, the git diff is a bit more easier to go through. Else one would need to open up the URL as https://github.com/cbeust/testng/pull/1599/files?w=1 (notice the ?w=1 which instructs github to remove the whitespace diff) to see the actual changes.
This is just a suggestion.

@krmahadevan Thanks for your suggestion. Actually I am struggling with format stuffs before I push for review, which annoying me a lot :(
Question to @cbeust , @krmahadevan , @juherr
Do we have a code formatter for TestNG project used by IDEs? Because I am using google formatter which seems like have confict with current format style.

Do we have a code formatter for TestNG project used by IDEs?

@eyehwan No, we don't have and sources have many different styles. So, don't format whole files.

No, we don't have and sources have many different styles. So, don't format whole files.

Thanks.

you should add support of @Optional into ReflectionRecipes.inject
@juherr I have checked code. But ReflectionRecipes.inject is used to parsing and get injected type into final result vResult together with parameters (marked by @Parameters, not matter from xml or optional) . I don't think I need to add any support of @Optional to it.

@eyehwan But optional parameters are types too, right?
ReflectionRecipes.inject should manage params injection of a method according to the context.
The first use case was parameters but it should manage the other kinds of params too.
Do you think it is possible?

I will add bin/** later.

Werid, why does my commit always delete files under the bin/?

Does TestNG have ignore list, which I guess could make submit simple?

Finally return back bin/  :) .

Remove bin/com/beust/testng/TestNG.class
Done.

@juherr Thanks for your suggestion. :)
Let's take your perudo code for example, I will write down my concern behind it upon code execution performance view:

If more than one optional values provided in test case, then multiple FilterOutInJectedType instances as a list would be created correspondingly.But  I prefer to using one instance.
If we return back as a  FilterOutInJectedType  List, then we have to recurse this list and assign values seperately to optionalValues and parameterNames from Parameters::createParam. Such recurse also would impace effectiveness somehow in my view.

@eyehwan Performance arguments without measures don't exist and the JVM has no problem with objects.
But I agree it will have too many impacts on createParam.
Could you just add a TODO comment on createParam because I think something smells about it when we see its parameters?

authors: eyehwan juherr krmahadevan


text:
Automate Parameter Descriptions

The parameter descriptions should be generated from the information current on cchdo (paramters.json?) whenever the docs are built.
Alternatively have the parameters come from cchdo, but check the information into this repo manually so some version of the documentation may be built when offline.

Apparently I fixed this 6 months ago with 1c9cd80

repo: cchdo/exchange


text:
🛑 Main site is down

In cf332d3, Main site (https://ccm.sickkids.ca) was down:

HTTP code: 0
Response time: 0 ms

Looks fine now. not sure what happened.

Resolved: Main site is back up in a77304a.

repo: ccmbioinfo/status


text:
BottomSheetActionController doesn't hide when tapping background

Hello!
In BottomSheetActionController, you set settings.behavior.hideOnTap = true. Its backing XLActionController sees this and adds the proper gesture recognizer, but the gesture never actually gets triggered because it's assigned to the background of its collectionView rather than the background view of the controller.
I have a fix for this that involves a small change to XLActionController (which I'll make a PR for now), but I wanted to bring this to your attention here since you'll need to update that dependency here.

That's... really weird. I just set up this project last night, so I don't know why it's out of sync, but it appears the version of XLActionController that CocoaPods decided to pull was the original, and not your fork which already has the fix. Weird. Anyway, I'll just go ahead and close this...

I was wrong. This project's Podfile.lock points to an old commit for your fork of XLActionController that doesn't have the fixes for the tap gestures. Podfile.lock needs updating.

repo: ccrama/Slide-iOS


text:
Crash after hiding post

Steps to reproduce:
-Hide a post (either by long clicking and choosing hide or clicking the hide icon from the post)
-Quickly swipe to another subreddit while the red “undo” button is active

Fixed!

authors: WickedColdfront ccrama


text:
Add support for copying files between the web browser's IndexedDB and an external nodejs webserver.

On mobile, one can't always use the SqueakJS support for getting files in and out of the web browser's IndexedDB. That makes deploying snapshots elsewhere difficult. The problem is especially acute on iOS Safari, which often reloads pages when Safari is in the background. Add support for importing and exporting files directly from Squeak code.

Added in 467f56d.


text:
An internal error occurred in ../../../src/lib/tree.h(101)

I have posted the protein file (20.pdbqt) and the ligand file(2.pdbqt).
When I run './DOCKING/vina_1.2.5_linux_x86_64 --receptor ./20.pdbqt --ligand ./2.pdbqt --size_x 20 --size_y 20 --size_z 20 --autobox', I encountered an error: An internal error occurred in ../../../src/lib/tree.h(101)
I have tried many groups of protein files and ligand files, and this error occurred too many times.
files.zip

Hi @YvetteJxy, Your upload appears as a HTML file (it looks very like the login page of Jupyter server). Let us know if you reshare the files.
One more thing about --autobox, in this scenario (a docking search), --autobox doesn't actually set the grid size or the grid center (?). --size_x --size_y --size_z are necessary even with --autobox, and if not specified the center seems to be 0,0,0. Not sure if this is related to the error.

Thank you for your help! I am very grateful for that!
I have uploaded the file again and I hope this time it will work!
files.zip

Hi @YvetteJxy, the problem was caused by your ligand PDBQT file, which doesn't have valid 3D coordinates but all 0s. You might want to review your procedure for ligand preparation.
[If I guessed your ligand right] (https://en.wikipedia.org/wiki/Dimethylsulfoniopropionate), here's how you could generate a PDBQT with coordinates and charges (although not necessary for vina) with obabel:
./obabel -:"C[S+](C)CCC(=O)[O-]" -o pdbqt --gen3d
REMARK  Name =
REMARK  5 active torsions:
REMARK  status: ('A' for Active; 'I' for Inactive)
REMARK    1  A    between atoms: C_1  and  S_2
REMARK    2  A    between atoms: S_2  and  C_3
REMARK    3  A    between atoms: S_2  and  C_4
REMARK    4  A    between atoms: C_4  and  C_5
REMARK    5  A    between atoms: C_5  and  C_6
REMARK                            x       y       z     vdW  Elec       q    Type
REMARK                         _______ _______ _______ _____ _____    ______ ____
ROOT
ATOM      1  C   UNL     1       3.420  -1.521   0.625  0.00  0.00    +0.283 C
ENDROOT
BRANCH   1   3
ATOM      2  C   UNL     1       1.153  -0.143   0.096  0.00  0.00    +0.340 C
ATOM      3  S   UNL     1       2.913  -0.014  -0.300  0.00  0.00    -0.016 S
ATOM      4  C   UNL     1       3.321   1.174   1.001  0.00  0.00    +0.340 C
ENDBRANCH   1   3
BRANCH   1   5
ATOM      5  C   UNL     1       4.918  -1.736   0.537  0.00  0.00    +0.106 C
BRANCH   5   6
ATOM      6  C   UNL     1       5.385  -2.974   1.303  0.00  0.00    +0.046 C
ATOM      7  O   UNL     1       6.631  -3.182   1.245  0.00  0.00    -0.550 OA
ATOM      8  O   UNL     1       4.496  -3.633   1.911  0.00  0.00    -0.550 OA
ENDBRANCH   5   6
ENDBRANCH   1   5
TORSDOF 3

@rwxayheee Thank you for your help! I think I know what the problem is! I didn't generate valid 3D coordinates of my ligand and now I have corrected my error! Thank you very much!

authors: YvetteJxy rwxayheee

repo: ccsb-scripps/AutoDock-Vina


text:
List style

hi,
There is no problem with RSS submission. everything works fine, but I think it would be better if you make a correction like this.
You open the RSS file on Kinle, there is a list of RSS content in the Beginning section, but the lines are mixed. List style can be reorganized. Maybe there can be a point at the beginning of the line. Can you check the image I sent in the attachment?

![Uploading Screenshot 2024-06-09 at 17.31.55.png…]()

Screenshot is missing.

How about add some padding?

The problem here is not padding. For RSS that comes as a list, there may be a sign at the beginning of the line, there may be a number. in the previous version it looked like this.

Calibre removes list symbol in CSS to maximize the valuable space on Kindle's small screen.

I don't think so. KindleEar @1.26.8 does not cause problems with this version. Here is the RSS image I sent with Kindlear version 1.26.8;

got it. the code you wrote is much better :)

Haha, Calibre's better~
If you really want the list item symbol to come back, you can add an item in "Advanced" / "Calibre Options":
{
  "extra_css": "li {list-style-type: circle;}"
}

If you find this TOC annoying, you can remove it, and it will be replaced by another type of TOC:
{
  "epub_inline_toc": false
}

:)
thank you.

authors: ahmbyrm cdhigh

repo: cdhigh/KindleEar


text:
Review the Rules that are skipping - CG0148

This may spawn multiple PR/Tickets based on what is discovered.  We need to look through the skipped rules per nick's email and figure out why rules are being skipped and resolve them.

this rule also needs the min() function in #807

repo: cdisc-org/cdisc-rules-engine


text:
V0.4.x

Please merge v0.4.3 to the main

It is OK to merge

repo: cdisc-org/crbuilder


text:
chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-25-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1333

Questions ?
Please refer to the Backport tool documentation


text:
chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3695

Questions ?
Please refer to the Backport tool documentation


text:
Integration "Failed Setup" - currently bricked

Hardware and versions

Inverter model & generation: GIV-AC3.0
Inverter firmware version: D0.535-A0.535
Battery firmware version: 3015
Home Assistant integration version: 2.0.3

Describe the bug
Overnight the integration failed.  It's been running for some time without issue but now it can't see the devices/entities.
Tried a restart and reload but no luck, grabbed some log files and hopefully this will help determine the problem (looks like the Givenergy data context may have changed).
Debug log
home-assistant_givenergy_local_2024-05-16T09-12-58.317Z.log

Upgraded from 1.9.1 to latest version and stopped working. Same hardware & firmware as above. Have rolled back to 1.9.1 and started working again.

Thanks for the update Alex. I'm also facing this big but prefer not to roll back. Am keeping an eye out for any further developments as I love this integration. Thanks all.

Hi,
I believe I may have found a workaround for the reported issue. I'm sharing the information here in case it helps you too.
I'm running with:
Inverter model & generation: GIV-HY5.0
Inverter firmware version: D0.450-A0.451
Battery firmware version: 3015
Home Assistant integration version: 2.0.4

I had (almost) the same issue. My logs showed the following warnings:
2024-06-26 10:23:54.173 WARNING (MainThread) [custom_components.givenergy_local.coordinator] Failed to convert discharge_slot_2 from [0, 60]: minute must be in 0..59
This is similar to the warnings in the attached log:
2024-05-16 00:42:47.327 WARNING (MainThread) [custom_components.givenergy_local.coordinator] Inverter model failed validation: Failed to convert discharge_slot_1 from [60, 2359]: minute must be in 0..59
and the givenergy_local integration would error out and give me ‘no devices or entities’ and ‘failed to setup, will retry’.
I used the givenergy cloud remote control on https://givenergy.cloud/ to read the Discharge 2 Settings.
In my case, the Discharge 2 End Time config was showing a value of --:--.
I set it to 00:00 and reloaded the integration.
After doing that, the integration is working correctly.

Checks have been added to look for that invalid '60' value in timeslot definitions. We'll assume this means "undefined" since the portal displays "--:--" in such cases. This should allow the integration to load with the timeslot sensors in the 'off' position until a valid time is set.
Thanks for the logs to help pinpoint this one.

repo: cdpuk/givenergy-local


text:
Docker run command produces error

I just copied and paste the docker run command from your docker hub (https://hub.docker.com/r/codercom/code-server) but I get the below error:
~/test/docker-vscode$ docker run -it -p 127.0.0.1:8080:8080 \
>   -v "$PWD:/home/coder/project" \
>   -u "$(id -u):$(id -g)" \
>   codercom/code-server:latest
[2021-01-13T15:25:01.230Z] error ENOENT: no such file or directory, mkdir '/home/coder/.config'

I am using Ubuntu 18.04 and docker version 19.03.13.

The ~/.config also needs to be mounted into the container:
docker run -it -p 127.0.0.1:8080:8080 \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  codercom/code-server:latest

The ~/.config also needs to be mounted into the container:
docker run -it -p 127.0.0.1:8080:8080 \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  codercom/code-server:latest

It might be a good idea to mount ~/.config anyway just to perserve
settings but I ran the first command and wasn't able to replicate the
error. Maybe you have a cached code-server image? I think we did have
this error at one point.

It might be a good idea to mount ~/.config anyway just to perserve
settings but I ran the first command and wasn't able to replicate the
error. Maybe you have a cached code-server image? I think we did have
this error at one point.

No, I never installed or pulled code-server before, it was my first time.

No, I never installed or pulled code-server before, it was my first time.

Looks like I didn't update the docker hub listing.
See https://github.com/cdr/code-server/blob/v3.8.0/doc/install.md#docker for the correct command!

Looks like I didn't update the docker hub listing.
See https://github.com/cdr/code-server/blob/v3.8.0/doc/install.md#docker for the correct command!

Updated.

Updated.

authors: avarf code-asher nhooyr

repo: cdr/code-server


text:
Sync settings shows "loading..."

OS/Web Information

Web Browser: Vivaldi 4.1
Local OS: MacOS
Remote OS: MacOS
Remote Architecture:
code-server --version:

Steps to Reproduce
Using Macbook Air M1

install the latest code-server from brew
open code-server on the default port in vivaldi
click on "user" icon to login

Expected
Allow me to login to my microsoft account so vscode can sync my settings.
Actual
Shows "loading" like so...

Logs
I see the following in /opt/homebrew/var/logs/code-server.log file
[2021-08-05T14:13:31.522Z] error vscode is not running Error: vscode is not running
    at VscodeProvider.send (/opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/vscode.js:121:19)
    at VscodeProvider.sendWebsocket (/opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/vscode.js:117:14)
    at async /opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/routes/vscode.js:203:5
[2021-08-05T14:13:31.542Z] error vscode is not running Error: vscode is not running
    at VscodeProvider.send (/opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/vscode.js:121:19)
    at VscodeProvider.sendWebsocket (/opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/vscode.js:117:14)
    at async /opt/homebrew/Cellar/code-server/3.11.0/libexec/out/node/routes/vscode.js:203:5

Screenshot
included above
Notes
This issue can be reproduced in VS Code: No

Duplicate of #https://github.com/cdr/code-server/issues/3418 - please subscribe to that issue. Thanks!

authors: jsjoeio sindhus-in


text:
Font scaling

Summary | Résumé
Super-sized text caused UI issues. Text would take up most of the screen making it difficult to effectively use the app.
This branch fixes that issue by limiting how big the text can get and adjusts the layout and size of the components.

Checked both iphones & Androids using both Large/Largest font text sizing. Android (MotoG6) was the only capture that looked the worst when in the Largest Font - but is fine in large text.
MotoG6 - Largest Font:

MotoG6 - Large Font:

All other iPhones (both small & big screens) looked good in the Largest Font.
iPhone5 (small screen) - Largest Font:

Android - Galaxy S7 (small screen) - Largest Font:

Given the above, all screen sizes are optimized well when using the Large Font. Largest still doesn't optimize 100% with bigger screen Androids. All screens for iPhones are optimized as expected in the largest font.

Merging the latest - will adjust further as need be in the next set of test builds.

Retested with build version 1.2.54 (259). Still seeing an issue with largest font on MotoG6.
MotoG6 - Largest Font:

However, my LGg4 has a setting for Maximum Font that I only used this time and noted the same issue as Moto.
LGg4 - Maximum Font:

authors: maryrae-qa omartehsin1 timarney

repo: cds-snc/covid-alert-app


text:
Notification prompt is displayed in English (iOS)

iPhone 8
French
Just downloaded the app, went through the onboarding (no province selected). chose to enable the COVID-19 Exposure logging.
focus is returned to the home screen. tapped to open the menu.
Clicked the turn on notification from menu.
prompt is displayed in English. see screenshot.
Expected result: prompt should be in French.

We do not have the ability to change this because it comes from the OS level, which is the language of the OS install.
@mmiron-HC are you okay with closing this issue?
This is the similar as issue: https://github.com/cds-snc/covid-shield-mobile/issues/190

@JuliannaR  yes it is fine to close..

authors: JuliannaR mmiron-HC

repo: cds-snc/covid-shield-mobile


text:
Add Ontario property tax page and change flow for OTB

https://trello.com/c/9Ghd8mMo/465-m-update-otb-property-tax-flow
Added a new page for Ontario property tax, and re-ordered the flow to match the content document.
Jest tests solution:
I've added a new test suite to handle pages that redirect to /ontario pages, and separated them out. The original test suite will continue to be used for testing the /ontario pages. For now, pages that haven't been updated yet will continue to be in the original test suite, but as they are updated, they should be moved to the new test block, and their URL in the original should be replaced with the /ontario page in their flow.

I am not sure why SonarCloud is flagging duplicated code in checkAnswers.js

Although this does raise the question of whether the Ontario questions should show up on the checkAnswers page or not. I left them off for now, but they can easily be added.

repo: cds-snc/cra-claim-tax-benefits


text:
[WIP] Test out heroku PR builds

Last one, I think. Sorry for all the noise.

Forking the repo so I stop emailing everyone.

repo: cds-snc/ircc-rescheduler


text:
Brainjam with Hillary re: UX Research Specificity opportunities

Precursor meeting before in-depth interviews for both usability testing and research interviewing articles.
Identifying opportunities for increased specificity, while respecting SME expertise.

Booked for Monday Jan 23

repo: cds-snc/resources-ressources


text:
🛑 tanecni-divadlo.cz is down

In 84cccc8, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 502
Response time: 28776 ms

Resolved: tanecni-divadlo.cz is back up in 9189054.

repo: cebreus/upptime


text:
🛑 tanecni-divadlo.cz is down

In ae0db26, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 038b967.


text:
🛑 tanecni-divadlo.cz is down

In 1c67c47, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 28ba06b.


text:
🛑 Bali 2017 is down

In 02c57f0, Bali 2017 ($SITE_BALI) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bali 2017 is back up in b6da010.


text:
🛑 tanecni-divadlo.cz is down

In 6561bdd, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 174f8bd.


text:
🛑 tanecni-divadlo.cz is down

In 7a95e54, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in bbd08ab.


text:
🛑 tanecni-divadlo.cz is down

In d26bfdc, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in cb24375.


text:
🛑 tanecni-divadlo.cz is down

In 904cee7, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 5d8bcfb.


text:
🛑 tanecni-divadlo.cz is down

In 44af978, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 11e7493.


text:
🛑 tanecni-divadlo.cz is down

In 40633a1, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 11ab6a6.


text:
🛑 tanecni-divadlo.cz is down

In f2cb7b2, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 4e2efd9.


text:
🛑 tanecni-divadlo.cz is down

In 3352c74, tanecni-divadlo.cz (https://www.tanecni-divadlo.cz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: tanecni-divadlo.cz is back up in 7db78ec.


text:
🛑 CDN is down

In 5f82be7, CDN (https://cdn.ceccun.com/cdynamic/captive) was down:

HTTP code: 522
Response time: 15631 ms

Resolved: CDN is back up in b193a2c.

repo: ceccun/status


text:
🛑 CDN is down

In 24e71d7, CDN (https://cdn.ceccun.com/cdynamic/captive) was down:

HTTP code: 522
Response time: 15716 ms

Resolved: CDN is back up in 815c85c.


text:
🛑 CDN is down

In fe2da2b, CDN (https://cdn.ceccun.com/cdynamic/captive) was down:

HTTP code: 502
Response time: 523 ms

Resolved: CDN is back up in 27e09a8.


text:
Amend RFC 80

This PR amends RFC 80 in two ways.

Introduce a new constructor for datetime.
Do not overload comparison operators. Instead, use methods like the decimal extension.

Closed now given new info.

repo: cedar-policy/rfcs


text:
Create computation for overall Ticket implementation time and rollout time

generally consider the influence of all aspects on employee satisfaction and retainment, consider recruiting and onboarding effort
consider the amount of time required by Devs and PMs to manually test the implementation

consider that there is a limit in time regarding the overall testing that can be performed

ticket creation takes more time the better the specifications are
features not concluded from tracking are useless or will require additional changes in later steps

consider computing the actual value of the software in the end, too

badly designed features are not used and don't increase the actual value
incomplete ACs lead to

missing deadlines
re-work at the end of the development cycle
context switching on Dev and PM side

the later ACs change, the more effort is required to perform the change
hard to verify ACs consume more (manual) testing time
split computation in manual and automated work
incomplete mockups lead to

communication overhead
context switching on Dev and PM side

the later mockups change, the more effort is required to perform the change
incomplete api endpoints lead to

re-working the implementation later on
communication overhead
missing deadlines
context switching on Dev and PM side

incomplete tracking specifications lead to

no / bad tracking

wrong tracking implementations lead to

bad features decisions
badly invested developer and PM time
follow up efforts will be required

unrealistic timelines lead to

not meeting the timeline
delivering bad quality in the worst case
delivering scoped down features, frustration at the side of other involved parties
frustrated developers due to the inability to deliver good work, leaving the company in the end

consider influences of test automation, clean code and architecture, ...
increasing complexity increases time for implementation, fixing and re-testing
not applied clean code

maintainability decreases in that area
repeated violation multiplies the debt
blocks unit testing

not applied good architecture

leads to unwanted side effects
complexity increases after repeated violations
blocks unit testing

not applied refactorings

technical debt constantly increases, complexity also
at a certain point refactorings become impossible
saves devloper time (short-sighted)

not applied unit testing

slows down working on code because after every change it needs to be manually checked for proper operation
prevents early detection of bugs and side effects
does not avoid live issues
does not avoid issues being undetected for a longer time

not applied ui testing

slows down working on code because after every change it needs to be manually checked for proper operation
prevents early detection of bugs and side effects
increases load on PM side for manual testing
increases feedback loops in QA cycle
increases the number of crashes due to missing regression tests
does not avoid issues being undetected for a longer time

not applied screenshot testing

slows down working on code because after every change it needs to be manually checked for proper operation
prevents early detection of bugs and side effects
increases load on PM side for manual testing
increases feedback loops in QA cycle

not applied e2e testing

unhappy customer since main features of the application might not work in every aspect

not applied smoke testing

easily preventable crashes still occur and cause trouble

not completely qa verfied implementation

unhappy user
crashing app
context switching, hotfix creation
time for implementation of new features wasted for hotfixing
saves PM time (short-sighted)

not completly performed regression testing

bugs going live
unhappy users
wasted time due to late fixing efforts requiring context switching
saves PM time (short-sighted)
crashing app

more manual testing time leads to

PM cannot focus on writing good new tickets or observing the market

unhappy users lead to

less valuable product

for modelling, it could help to have the following:
holder class for "shortcut"
holder class for "effect of shortcut"
immediate effects, e.g. saving of time during implementation
delayed effects, e.g. increased time when performing changes on current implementation and when performing later changes in the same area

repo: cee-dee/life-of-code


text:
feat: sign pre-built binary with GPG key

Closes https://github.com/celestiaorg/celestia-app/issues/2445
Testing
https://github.com/rootulp/celestia-app/releases/tag/v1.0.0-rc2

Codecov Report

Merging #2568 (34db4a4) into main (5682d2c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #2568   +/-   ##
=======================================
  Coverage   20.58%   20.58%
=======================================
  Files         131      131
  Lines       15319    15319
=======================================
  Hits         3153     3153
  Misses      11863    11863
  Partials      303      303

Two things remaining on this PR:

Consider adding the GPG public key as an artifact so that users can run

gpg --import <path-to-public-key-file>

Document how to sign checksums.txt manually on maintainers.md

Codecov Report

Merging #2568 (f3d94ae) into main (5682d2c) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head f3d94ae differs from pull request most recent head 750a16c. Consider uploading reports for the commit 750a16c to get more accurate results

@@           Coverage Diff           @@
##             main    #2568   +/-   ##
=======================================
  Coverage   20.58%   20.58%
=======================================
  Files         131      131
  Lines       15319    15319
=======================================
  Hits         3153     3153
  Misses      11863    11863
  Partials      303      303

I sync'ed w/ Evan and we agreed that we don't need the ability to manually create binaries locally + sign them because ci-release.yml does this for us. If the ci-release.yml workflow fails, we can re-run it and also pursue making the workflow less flakey.
Converted this PR to draft b/c it can be massively simplified to remove all the steps to manually create + sign binaries. cc: @MSevey

authors: codecov-commenter rootulp

repo: celestiaorg/celestia-app


text:
“Placeholder” text is shown on Payment request notification section when user send payment request to  other user.

Frequency: 100%
** Repro App version:** Celo Integration build v1.8.2 (34)
Repro on device: iphone 6+ (12.4.5)
Tested Account 503 447 5958 / back up key
Repro Steps:

Launch the app and login with tested account.
Tap on Request button.
Select any phone number
Enter an amount. tap on review button.
Enter Security PIN.
Tap on request button.
Navigate to Home tab and observe

Current Behavior:  Placeholder Text is shown
Expected Behavior: Reason of sent payment request should be shown
Impact: User B will not able to get reason why they receive payment request.
Attachment: PlaceholderIssue.png

Hey @gnardini I have verified this issue using  latest Android internal build V1.15.1 & Test Flight build V1.15.1 & observed that issue is fixed now. User is able to see amount & description (if added) below waiting for section.
Verified On Devices:  iphone 6+ (12.4.5), iPhone SE (14.2), Redmi Note 8 (9.0)
Thanks..!!

authors: Celoqa Lss-Ankit

repo: celo-org/celo-monorepo


text:
Allow installing cli without dependencies

yarn and npm are fine for devs but if you are not a dev or even not a node js dev its annoying and frustrating to need them
see if we can package up the cli for installation

Hello
I would love to engage in your team

authors: Oyase-shinobi aaronmgdr

repo: celo-org/developer-tooling


text:
Update Using MetaMask with Celo

Update Using MetaMask with Celo to match updates previously made to Docs 1.0.

Duplicated by https://app.zenhub.com/workspaces/celo-docs-60ca5ea01d17b00017edba0c/issues/celo-org/docs/67

repo: celo-org/docs


text:
Force new connections to relayer on the application side

ClusterIP isn't suitable as a TCP Load Balancer because it's a headless construct. It's just a set of ip-tables rules.
So once a TCP connection is established it lives on until it's closed explicitly.
The solution I initially prototyped using HAProxy as a load balancer was also misguided in the sense that it did indeed achieve round robin access but it did so by explicitly terminating TCP connections which could potentially cause in-flight requests to be terminated as well because multiple requests being served by the onboarding service would reuse the same TCP connection to the relayer, at least in the current setup.
In order to mitigate these we can either:
(a) Move to a more robust transport mechanics - some form of queue (redis/kafka/rabbit/ampq) which was the long term plan anyway but it didn't seem worth it for the MVP
(b) Use service discovery in K8s via DNS lookup to periodically get available relayer endpoints and maintain an application level pool of connections and manage load-balancing on the application level.
(c) Take a slight performance hit by making NestJS instantiate some of our application's dependency tree on a per-request basis. Thus when a relayer interaction occurs during a request it creates a new TCP connection because a new provider is instantiated for that request.
This PR takes path (c) in order to validate the hypothesis on staging and because it's the smallest lift.

I tested this implementation in the East-US cluster and can confirm that the expected behaviour occurred.

repo: celo-org/komenci


text:
Add NodeWallet into Celo use-contractkit

As a Celo mobile wallet, Kindly request to add NodeWallet into use-contractkit walletConnect SDK.
More info about NodeWallet below:
https://www.nodewallet.xyz/
Non-Custodial DeFi Made Easy on Celo Network.

Does this mean NodeWallet is Leaving Beta?

Does this mean NodeWallet is Leaving Beta?

Very quickly approaching public launch.  Want to make sure wallet connection via useContractKit is smooth before then though, as a majority of dapps on Celo use this library.

Does this mean NodeWallet is Leaving Beta?

Very quickly approaching public launch. Want to make sure wallet connection via useContractKit is smooth before then though, as a majority of dapps on Celo use this library.

BTW we are planning on releasing a beta of next version the 25th and full release shortly after. (if you want to get this in by then)

Looks like there are issues with the SVG attributes or something.
Also this SVG has a png embed init so file size wise its still bigger than it needs to be. If thats all there is that ok but the react-celo team will probably work on some way of making sure these logos conform to some standards at some point
PS
merge conflicts should just be some file name changes.

Can you let us know which file it is ?

Looks like there are issues with the SVG attributes or something.
Also this SVG has a png embed init so file size wise its still bigger than it needs to be. If thats all there is that ok but the react-celo team will probably work on some way of making sure these logos conform to some standards at some point
PS
merge conflicts should just be some file name changes.

Can you let us know which file it is ?

what is it?
if you mean what tests failed then the error I saw is
Type '{ children: Element[]; xmlns: string; "xmlns:xlink": string; width: string; height: string; viewBox: string; }' is not assignable to type 'SVGProps<SVGSVGElement>'.
https://github.com/celo-org/use-contractkit/actions/runs/2343477660

Can we change the way we're doing the Node Wallet image icon?

Changed to png.

Be Advised no Admin or team will ever DM you or share you any link so you can only chat Here on Live Chat with Celo Agent  On LIVE SUPPORT LIVE CHAT

@kandragu @d-mooers did you ever get that wallet connect id for node wallet?

closing as this is stale (and with the changes might be easier to start from scratch)

authors: JinboDev aaronmgdr d-mooers kandragu

repo: celo-org/react-celo


text:
Select: Support disabling individual items

Currently you can only disable the entire Select component, but not individual items within it. We should support this.
items={[
          {
            { label: 'Red', value: 'red', disabled: false },
            { label: 'Blue', value: 'blue', disabled: true },
          },
}]

@orion-cengage whats the styling  and expected behavior when it comes to keyboard navigation and screen readers for the disabled items

@moathabuhamad-cengage The behavior should be similar to that of a Native Select (https://codesandbox.io/p/sandbox/native-select-disabled-item-7h9p2q?file=%2Fexample.tsx).
As far as styling, I think we use transparentize(0.4, magma.colors.neutral500) everywhere we disable items.

authors: moathabuhamad-cengage silvalaura

repo: cengage/react-magma


text:
removes broken play from cais-compute role

Deployed Dev Cpu Cluster and ran ansible-playbook cais_* which runs the cais-compute role. No errors.
PLAY RECAP ****************************************************************************************************************************************************************************************************************************************
dev-backup                 : ok=16   changed=11   unreachable=0    failed=0    skipped=21   rescued=0    ignored=0
dev-bastion                : ok=19   changed=12   unreachable=0    failed=0    skipped=30   rescued=0    ignored=0
dev-login                  : ok=19   changed=12   unreachable=0    failed=0    skipped=30   rescued=0    ignored=0
inst-bqrwz-dev             : ok=36   changed=20   unreachable=0    failed=0    skipped=78   rescued=0    ignored=0
inst-y01kv-dev             : ok=36   changed=20   unreachable=0    failed=0    skipped=78   rescued=0    ignored=0

Goodbye llvm you've been good to me

authors: andriy-safe-ai steven-basart

repo: centerforaisafety/cerberus-cluster


text:
funding: add update endpoint

Update Funding Agreement
URL: PUT /document/0x[version id]/funding/agreement/0x[agreement id]/

implemented in #1002

repo: centrifuge/go-centrifuge


text:
DNM: CI debug ganesha issues

PR for debugging purposes

@guits I'm not sure if you're aware, but we have a jenkins job you can use to run any testing scenario individually without creating a PR. https://2.jenkins.ceph.com/job/ceph-ansible-scenario/
It allows for you to use any branch of ceph-ansible to test with.

closing this in favor of andrew's tips thanks maggle

thanks @andrewschoen

authors: andrewschoen guits

repo: ceph/ceph-ansible


text:
Use argparse subparsers when subcommands have their own subcommands

This patchset changes the argparse config to use more subparsers to have much better help output and only list CLI options that are relevant to a given subcommand.  This may be best demonstrated by example.  Let's look at the mon subcommand.
mon --help before:
$ ceph-deploy mon --help
usage: ceph-deploy mon [-h] [--address [ADDRESS]] [--keyrings [KEYRINGS]]
                       {add,create,create-initial,destroy} [mon [mon ...]]

Subcommands:

create-initial
  Will deploy for monitors defined in `mon initial members`, wait until
  they form quorum and then gatherkeys, reporting the monitor status along
  the process. If monitors don't form quorum the command will eventually
  time out.

create
  Deploy monitors by specifying them like:

    ceph-deploy mon create node1 node2 node3

  If no hosts are passed it will default to use the `mon initial members`
  defined in the configuration.

add
  Add a monitor to an existing cluster:

    ceph-deploy mon add node1

  Or:

    ceph-deploy mon add node1 --address 192.168.1.10

  If the section for the monitor exists and defines a `mon addr` that
  will be used, otherwise it will fallback by resolving the hostname to an
  IP. If `--address` is used it will override all other options. Please
  note that only one node can be added at a time.

destroy
  Completely remove monitors on a remote host. Requires hostname(s) as
  arguments.

positional arguments:
  {add,create,create-initial,destroy}
  mon

optional arguments:
  -h, --help            show this help message and exit
  --address [ADDRESS]
  --keyrings [KEYRINGS]
                        concatenate multiple keyrings to be seeded on new
                        monitors

Besides being so long that users probably don't read it all, it's also misleading because it lists options at the top-level that do not apply to all subcommands, like --keyrings and --address.
mon --help after:
$ ceph-deploy mon --help
usage: ceph-deploy mon [-h] {add,create,create-initial,destroy} ...

Ceph MON Daemon management

positional arguments:
  {add,create,create-initial,destroy}
    add                 Add a monitor to an existing cluster:
                        	ceph-deploy mon add node1
                        Or:
                        	ceph-deploy mon add --address 192.168.1.10 node1
                        If the section for the monitor exists and defines a `mon addr` that
                        will be used, otherwise it will fallback by resolving the hostname to an
                        IP. If `--address` is used it will override all other options.
    create              Deploy monitors by specifying them like:
                        	ceph-deploy mon create node1 node2 node3
                        If no hosts are passed it will default to use the
                        `mon initial members` defined in the configuration.
    create-initial      Will deploy for monitors defined in `mon initial
                        members`, wait until they form quorum and then
                        gatherkeys, reporting the monitor status along the
                        process. If monitors don't form quorum the command
                        will eventually time out.
    destroy             Completely remove Ceph MON from remote host(s)

optional arguments:
  -h, --help            show this help message and exit

mon add --help before:
$ ceph-deploy mon add --help
usage: ceph-deploy mon [-h] [--address [ADDRESS]] [--keyrings [KEYRINGS]]
                       {add,create,create-initial,destroy} [mon [mon ...]]

Subcommands:

create-initial
  Will deploy for monitors defined in `mon initial members`, wait until
  they form quorum and then gatherkeys, reporting the monitor status along
  the process. If monitors don't form quorum the command will eventually
  time out.

create
  Deploy monitors by specifying them like:

    ceph-deploy mon create node1 node2 node3

  If no hosts are passed it will default to use the `mon initial members`
  defined in the configuration.

add
  Add a monitor to an existing cluster:

    ceph-deploy mon add node1

  Or:

    ceph-deploy mon add node1 --address 192.168.1.10

  If the section for the monitor exists and defines a `mon addr` that
  will be used, otherwise it will fallback by resolving the hostname to an
  IP. If `--address` is used it will override all other options. Please
  note that only one node can be added at a time.

destroy
  Completely remove monitors on a remote host. Requires hostname(s) as
  arguments.

positional arguments:
  {add,create,create-initial,destroy}
  mon

optional arguments:
  -h, --help            show this help message and exit
  --address [ADDRESS]
  --keyrings [KEYRINGS]
                        concatenate multiple keyrings to be seeded on new
                        monitors

I always found this difficult, as using mon add --help does not provide any new information about the add subcommand.  It just prints the same help as mon --help, including help for other subcommands and irrelevant options.
mon add --help after:
$ ceph-deploy mon add --help
usage: ceph-deploy mon add [-h] [--address [ADDRESS]] [mon [mon ...]]

positional arguments:
  mon

optional arguments:
  -h, --help           show this help message and exit
  --address [ADDRESS]

Now we are showing the user only the options that are relevant to the command they asked for help on.
The subcommands that got modified in this patchset are:

calamari
osd
disk
config
mds
mon
rgw

I tried hard to make only one type of change here -- adding the subparsers.  There are other things that need to be fixed, but I purposely left them broken because they are covered under other open issues.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/ceph-deploy-pull-requests/1622/
Tests failed for this pull request.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/ceph-deploy-pull-requests/1623/
Tests passed for this pull request.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/ceph-deploy-pull-requests/1625/
Tests passed for this pull request.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/ceph-deploy-pull-requests/1626/
Tests passed for this pull request.

@alfredodeza I think I addressed your two comments, and I made a couple of other changes to remove redundant code and unnecessary complexity around --fs-type handling.

authors: ceph-jenkins trhoden

repo: ceph/ceph-deploy


text:
support by-path or by-id names

My servers frequently reorder my disks, so /dev/sdh might be /dev/sdab on next boot. Unfortunately the entrypoint/activate script does not work if you pass /dev/disk/by-* names for OSD_DEVICE because it uses the variable to grep in ceph-disk output which uses normal /dev/sd* names.

#317 has fixed this for me.

repo: ceph/ceph-docker