etcd2 fails to read EC keys

etcd2 cannot parse EC private keys, giving error
Aug 17 06:50:31 docker-swarm etcd2[6611]: crypto/tls: failed to parse private key
Example key (generated for this purpose only)
-----BEGIN PRIVATE KEY-----
MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQg41FRK5EgYyDJqR3sMvGn
8bvH9KZBgdvwYp5lxsV48NShRANCAATSyO1TMZzen/FYqkBKufl6Xg6UkGZd5WCn
3INpTm3EZE+GX53/u4P+rTpO86jbQmbKvUKvUuGa1JjMDF6kPSLU
-----END PRIVATE KEY-----

Version information:
# etcd2 --version
etcd Version: 2.3.2
Git SHA: ce63f10
Go Version: go1.5.4
Go OS/Arch: linux/amd64

@cmouse what flags are being passed to etcd? can you provide the full etcd server log?

No flags given, only environment variables
-- Unit etcd2.service has begun starting up.
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_ADVERTISE_CLIENT_URLS=https://docker:4001
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_CERT_FILE=/etc/ssl/etcd/server.crt
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_DATA_DIR=/var/lib/etcd2
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_DISCOVERY=https://discovery.etcd.io/***
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_INITIAL_ADVERTISE_PEER_URLS=https://docker:2380
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_KEY_FILE=/etc/ssl/etcd/server.key
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_LISTEN_CLIENT_URLS=https://:4001
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_LISTEN_PEER_URLS=https://:2380
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_NAME=****
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_PEER_CERT_FILE=/etc/ssl/etcd/server.crt
Aug 17 17:15:02 docker-swarm etcd2[29296]: recognized and used environment variable ETCD_PEER_KEY_FILE=/etc/ssl/etcd/server.key
Aug 17 17:15:02 docker-swarm etcd2[29296]: unrecognized environment variable ETCD_ADVERTISE_PEER_URLS=https://docker:2380
Aug 17 17:15:02 docker-swarm etcd2[29296]: etcd Version: 2.3.2
Aug 17 17:15:02 docker-swarm etcd2[29296]: Git SHA: ce63f10
Aug 17 17:15:02 docker-swarm etcd2[29296]: Go Version: go1.5.4
Aug 17 17:15:02 docker-swarm etcd2[29296]: Go OS/Arch: linux/amd64
Aug 17 17:15:02 docker-swarm etcd2[29296]: setting maximum number of CPUs to 4, total number of available CPUs is 4
Aug 17 17:15:02 docker-swarm etcd2[29296]: the server is already initialized as member before, starting as etcd member...
Aug 17 17:15:02 docker-swarm etcd2[29296]: peerTLS: cert = /etc/ssl/etcd/server.crt, key = /etc/ssl/etcd/server.key, ca = , trusted-ca = , client-cert-auth = false
Aug 17 17:15:02 docker-swarm etcd2[29296]: crypto/tls: failed to parse private key
Aug 17 17:15:02 docker-swarm systemd[1]: etcd2.service: Main process exited, code=exited, status=1/FAILURE
Aug 17 17:15:02 docker-swarm systemd[1]: Failed to start etcd2.
-- Subject: Unit etcd2.service has failed
-- Defined-By: systemd

@cmouse how are you generating your keys? I can reproduce this parse failure using your private key, but EC keys generated by cfssl (e.g., https://github.com/coreos/etcd/blob/release-2.3/integration/fixtures/server.key.insecure) work fine.

These are generated with openssl req -new ... -newkey ec:paramfile
Paramfile is done with openssl ecparam -name secp256r1
I can try converting them into non-pkey format.

@cmouse that is generating an encrypted private key for me; tls/crypto has no way to decrypt it. Try using server.decrypted.key from openssl ec -in server.key -out server.decrypted.key?

well, yes, if you do not use -nodes parameter (which I used, it prevents encryption). The key I pasted was example of such key.
I converted the key into EC key with openssl ec command, resulting in
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIONRUSuRIGMgyakd7DLxp/G7x/SmQYHb8GKeZcbFePDUoAcGBSuBBAAK
oUQDQgAE0sjtUzGc3p/xWKpASrn5el4OlJBmXeVgp9yDaU5txGRPhl+d/7uD/q06
TvOo20Jmyr1Cr1LhmtSYzAxepD0i1A==
-----END EC PRIVATE KEY-----

which is still refused, with same error, by etcd2.

@cmouse
$ openssl pkey -in test.key -text -noout
Private-Key: (256 bit)
priv:
    00:e3:51:51:2b:91:20:63:20:c9:a9:1d:ec:32:f1:
    a7:f1:bb:c7:f4:a6:41:81:db:f0:62:9e:65:c6:c5:
    78:f0:d4
pub:
    04:d2:c8:ed:53:31:9c:de:9f:f1:58:aa:40:4a:b9:
    f9:7a:5e:0e:94:90:66:5d:e5:60:a7:dc:83:69:4e:
    6d:c4:64:4f:86:5f:9d:ff:bb:83:fe:ad:3a:4e:f3:
    a8:db:42:66:ca:bd:42:af:52:e1:9a:d4:98:cc:0c:
    5e:a4:3d:22:d4
ASN1 OID: secp256k1

The secp256k1 curve isn't supported by golang's crypto library (cf., https://golang.org/src/crypto/x509/x509.go#L341 and https://groups.google.com/forum/#!msg/golang-nuts/Mbkug5t3ZYA/7dDoc_1JAQAJ). Try another curve.

Wonder if the error message could be improved somehow?

@cmouse I feel this is not an etcd issue. The error message is defined in golang stdlib(https://golang.org/src/crypto/tls/tls.go?L296). Probably you want to create an issue in go upstream?

I'll consider it, thank you for your help.


Add macOS smoke tests [SDK-4739] 4/4

[ ] All new/changed/fixed functionality is covered by tests (or N/A)

📋 Changes
This PR adds smoke tests for macOS. The CI jobs for running them will be added in a future PR.

Please disregard the CircleCI failure, its config will be removed in a future PR.


Add hslColor to ColorProvider

This will add hslColor and hslColorAsArray for ColorProvider
Solve #1720

This looks good to me!
One more thing though before I can approve: Can you update readme.md, please?

Sure thing, totally forgot about that. 👍

Thank you, @icanhazstring!


Event deduplication

Add (optional) event deduplication. Deduplicate identical errors / log messages. Optional, opt out maybe?. Would be good to indicate number of events skipped. Research of prior art in other libs would be good

fixed with https://github.com/grafana/grafana-javascript-agent/pull/56


Refactor RNG PPF revisions

Issues arising from #420 :

[ ] Convert ss.random() etc. into subclasses of ss.Dist rather than functions
[ ] Move filter to ss.bernoulli() subclass
[ ] Make ss.choice CRN-safe (in general and in syphilis.py)
[ ] Write CRN-safe randround
[ ] Handle missing slots more elegantly
[ ] Change defaults to strict=True, auto=True which auto-increments the RNG after use
[ ] Tidy/check has_array_pars logic
[ ] Handle the many TODO comments
[ ] Check that test_syphilis.py is doing the right thing on this branch
[ ] Check performance (see below)

See also https://github.com/starsimhub/starsim/issues/408
For performance, currently this branch is much slower on benchmark_full.py, although this might have to do with that particular test, since other things don't seem to be slower (e.g. the test suite takes about 4.5 s on both this branch and main):
python benchmark_full.py
Starsim 0.3.0 (2024-03-18) — © 2023-2024 by IDM
—————————————————————
Average: 5296 ± 39 ms
—————————————————————

Switched to branch 'main'

python benchmark_full.py
Starsim 0.2.10 (2024-03-18) — © 2023-2024 by IDM
——————————————————————
Average: 3363 ± 221 ms
——————————————————————

Another benchmarking test, benchmark_sir.py, that illustrates the performance difference starkly (this branch 2x slower than main):
#!/usr/bin/env python3
"""
Larger test of sim performance.
"""

import sciris as sc
import starsim as ss

# Define the parameters
repeats = 3
pars = sc.objdict(
    n_agents = 100_000,
    n_years  = 100,        # Number of years to simulate
    dt       = 0.5,        # Timestep
    verbose  = 0,          # Don't print details of the run
    diseases = 'sir',
    networks = 'random',
)

def make_run_sim():
    """ Make and run a decent-sized default simulation """
    sim = ss.Sim(pars=pars)
    sim.run()
    return sim

if __name__ == '__main__':

    T = sc.timer()
    for r in range(repeats):
        make_run_sim()
        T.tt(f'Trial {r+1}/{repeats}')

    sc.heading(f'Average: {T.mean()*1000:0.0f} ± {T.std()/len(T)**0.5*1000:0.0f} ms')

Setting slot_scale = 2 reduces this from 20.7 s to 18.3 s, so some improvement, but not much. Need to investigate further.

The default "sir" on "random" does not have any transmission ongoing for a majority of that 100 year period, consider adjusting disease or network parameters for a more representative test case, or just shorten the time period.

The plot above comes from sim.diseases['sir'].plot(), which places ti on the x-axis. This means that transmission is only active for the first 12 years considering dt=0.5.

I got another almost 2x speed improvement by doing the 'remainder' step on the slots, rather than on the rvs themselves ... kind of a hash & cache approach :)

Remainder might be overkill. We're adding two numbers, each [0,1). The result has to be in the range of [0,2).
If the sum > 1, subtract 1.
rvs = rvs_s + rvs_t
inds = np.where(rvs>1)[0]
rvs[inds] -= 1

Might be faster?

Running for 15 years instead of 100 should give very similar results because there is little transmission happening after year 15.

Moved oustanding issues to #426


[Event Request] Codeunit 5988 “Serv-Documents Mgt.”

Requested two new IntegrationEvents:
LOCAL [IntegrationEvent] OnBeforeFinalizeLines(VAR ServHeader : Record "Service Header";CloseCondition : Boolean)
LOCAL [IntegrationEvent] OnAfterFinalizeLines(VAR ServHeader : TEMPORARY Record "Service Header";CloseCondition : Boolean)

Finalize(VAR PassedServHeader : Record "Service Header")
...
FinalizeInvoiceDocument;
FinalizeCrMemoDocument;
FinalizeWarrantyLedgerEntries(ServHeader,CloseCondition);

//> New code
OnBeforeFinalizeLines(PassedServHeader,CloseCondition);
//> New code

IF ((ServHeader."Document Type" = ServHeader."Document Type"::Order) AND CloseCondition) OR
   (ServHeader."Document Type" <> ServHeader."Document Type"::Order)
...

...

END ELSE BEGIN
  // Service Lines, Service Item Lines, Service Header
  FinalizeLines;
  FinalizeItemLines;
  FinalizeHeader(PassedServHeader);
END;

//> New code
OnAfterFinalizeLines(ServHeader,CloseCondition);
//< New code

PaymentTermsLine.RESET;
PaymentTermsLine.SETRANGE("Sales/Purchase",PaymentTermsLine."Sales/Purchase"::Sales);
PaymentTermsLine.SETRANGE(Type,ServHeader."Document Type");
...

We already have OnBefore and OnAfter events in this function, why do you need events in the middle?

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


ready()函数的作用

ready()函数有什么作用
this.onResolver()和await onPromise有什么区别

What does the `ready() function do
Could you please think about the below question, and let me know your answer?

If we have no ready() function in this module, can this module does its job correctly? If the answer is no, why?

onResolver v.s. onPromise
Please provide a use case with a code example for your question to explain it in detail, so that we can discussing based on your example code.
BTW: I believe this issue is related to https://github.com/wechaty/summer-of-code/issues/4 , please correct me if I'm not right.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v5.9 to before v5.13.6",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=18cb261afd7bf50134e5ccacc5ec91ea16efadd4",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9863701fa0ecd2abfadb27b0e7a9b0fe1c9d02b6"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "18cb261afd7bf50134e5ccacc5ec91ea16efadd4",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "9863701fa0ecd2abfadb27b0e7a9b0fe1c9d02b6",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "bonding: fix null dereference in bond_ipsec_add_sa()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.13.6 by commit 9863701fa0ecd2abfadb27b0e7a9b0fe1c9d02b6, it was introduced in version v5.9 by commit 18cb261afd7bf50134e5ccacc5ec91ea16efadd4. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001157


Fix fallback for unrecognized translation codes

In an attempt to decide to help contribute to sleek, I caught up on issue https://github.com/ransome1/sleek/issues/358. I've got a couple years of JavaScript experience, this did not seem like a hard task to accomplish.
As mentioned in the issue, i18next does not seem to use the fallbackLng. This is due to that sleek uses the getDataByLanguage function instead of the more top-level function (such as changeLanguage).
I might take on more issues, depending on my availability. Let's first see how this fix lands.
TLDR: I've made a simple if-statement to check if the translation actually exists. If not, we load the default that was set as fallback.
Known issues:

If you have an unknown language code set in your config file (in the case of the issue, it would be 'ko'), the dropdown in sleek's settings is defaulted to the first option (as none of the options has language code 'ko'. In my opinion this is intended. After all, even though we use the default language now, there is no 'correct' value set. So why should we show that here?

@KingOrdinaryCitizen thanks so much. Sorry i wasn't really around to look at it yet. Will do this over the next couple of days!

@KingOrdinaryCitizen I checked out your branch and manipulated the user preferences, setting the language variable to ko. It didn't work out of the box, still giving me the error reported in https://github.com/ransome1/sleek/issues/358.
Were you able to start and test it on your side?

Ok, I think I might have found what was not working on my side.
You made changes to the IPC handle method, which is basically used to communicate between the main and the renderer process. It's an Electron convention that got me some serious headaches in the past :)
And what you did kind of uncovered an ugly duplicate code on my side. Because before this method is used, the translations are already being loaded earlier in the main process, which is roughly happening at line 630 (main.js) and onwards. So it makes sense to reuse the translations loaded here in the IPC method later, when the renderer process is asking for those.
So this is where we should implement your fix.
I want to suggest a change to your fix though. I think it might help, if we not only load the translations from the fallback language, but also persist the fallback language in the users settings. This for instance will enable sleek to also preselect the fallback language in its interface (the settings window).
Let me comment the appropriate lines in your code, that I think we should change. Please feel free to share your opinion on these changes.

I built a test release: https://github.com/ransome1/sleek/releases/tag/v1.2.2-rc.3
Feel free to give it a try.


Document CircleCI recommendations

For: #37
As described in #37, the documentation has a hole where the CircleCI recommendations should be.
CircleCI support are recommending this logger to CircleCI users (like me), so it's time we plugged that hole in the documentation.
Note: No functional changes in here, just documentation.

@Peter-Darton-i2 Thanks for writing this up. Much appreciated!

I've made a few changes; I think I've addressed all the previous review comments, and incorporated some changes CircleCI requested too.
I think this is ready for merge.

@Peter-Darton-i2 Thanks for the contribution


GIN as cache

Motivation
@bendichter An even better solution to #266 is to cache the datasets on GitHub. This is subject to different limits than the artifacts, but offers much better performance. Some of these limits are (a) 5 GB total cap overall caches, with rolling deletion on the oldest and (b) 7 day duration on caches that aren't accessed.
Similar to the artifacts, the idea is instead of manually re-downloading the GIN datasets each time we want to do a full test, do (1) an initial download from GIN (takes about 42 minutes) and save as a cache (takes only a few minutes, see https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts), (2) then simply restore the cached directory and run tests.
With this approach, every day at midnight, the update-dataset workflow will check the current hash of the GIN dataset, and if we haven't downloaded and cached it here it will then do so (takes about an hour until they reduce some of the larger files).
This also simplifies the test_gin script to no longer need datalad through that imported python API (all gets offloaded to the update-dataset workflow), which reduces the amount of code needed by a significant margin.
This also allows the possibility of running full GIN tests on other parts of the OS matrix to ensure our awareness of OS specific issues.
This type of action can also enable caching of virtual environments, but I've had a bit of trouble getting that working right away so I'll do it in a later PR as a low priority.
How to test the behavior?
No changes to behavior, other than addition of new actions and overall improved speed.
Checklist

[X] Have you checked our Contributing document?
[X] Have you ensured the PR description clearly describes the problem and solutions?
[X] Have you checked to ensure that there aren't other open or previously closed Pull Requests for the same change? (improvement over #266)

@bendichter Actually, this is apparently what they've used on neo for some time now, which is how I heard about it, lol.

This looks cool.
In neo and spikeinterface we already have something similar for caching using the git HEAD as a hash key for cache.
What we don't have is the cron at midnigh, this is a super good idea, I will try to add this in neo and si.
Or maybe Cody if you have time you could push the update-testing-data in SI and neo.

Oh, I see. Very cool. Well it looks good to me!


Create hello.cpp

@Manish17292000 Can you explain this PR ?

Coverage decreased (-0.007%) to 91.618% when pulling cd95c2f4b39fdd979ae103f4e47b353185769236 on Manish17292000:master into 5e164b0678b5ce35c4160ea36418b4608c553cb1 on code-cracker:master.

Probably some HacktoberFest rubbish?


Update pom.xml

@shy1st plz fix CI.

@hsluoyz plz review.

@shy1st plz fix badges:

@hsluoyz The "build" badge is associated with Travis CI, so I think we can delete it.
I don't have access to this project, so I can not add the codecov badge.And we will not develop this warehouse for the time being. so I think we also can delete it for the time being. So is the nuth authz project.


Workflow - Auto Assign Unassign Issues

What workflow needs to be updated?
The auto-assign workflow that triggers when an issue is opened or reopened.
Describe the proposed changes
I propose the following changes to ensure the workflow functions correctly:

Ensure the workflow assigns issues to the creator if they are not a collaborator when the issue is of type bug, enhancement, or test.
The workflow should unassign the creator if there is no activity on the issue for one week.

Motivation
The current workflow is not assigning issues as intended when they are created or reopened, which affects our issue management process. Having issues auto-assigned helps streamline our workflow, and ensuring they are unassigned after a week of inactivity helps keep our issue list manageable.
Additional context
I have already implemented the workflow, but it isn't functioning as expected. Changes need to be made in .github/workflows/auto_assign_issues.yml.
Please test the changes before raising a PR and add screenshots for verification.

Hello, I want to try working on this could you assign it to me. Please do add the labels of Gss0c-ext and hacktoberfest-accepted.

@Chin-may02 can you explain your approach first? like how're you going to achieve this? and also @Kota-Karthik here you go.

I will update the flow to check the label and accurately identify them, assignment will only be done if they are not a collaborator

Do I create a new file or edit the existing one ?

@Chin-may02 edit the existing one

Sure will do, could you please add the level for this issue

Sorry to interrupt but could you please assign the level of this tsak

@Chin-may02
I will assign the level
but before that , just lemme inform you , the changes you made doesn't fix the issue
still the issues aare not being assigned automatically
I hope you fix them correctly this time and make sure to check before making a new PR , as i closed the previous one!

Okay will try again

@Chin-may02
Just make sure to test the workflow correctly
But this time i would need a screen recording showing that workflows work correctly!

@Chin-may02
Workflow is failing , please make sure everything works well before making a PR!

It isn't working I would like to step down


Cross Browser Compatibility

Internet Explorer doesn't support .innerHTML on SVG elements
Most browsers still do not support document.registerElement, but that ought not cause everything to break.
Internet Explorer and Firefox were completely ignoring the font-size when it was given without units.
I noticed that the chant.html page was only working in Chrome for me, and in most browsers I tried, the only reason was because document.registerElement didn't exist, but in Internet Explorer, it was a little more complicated to get it working.

Looking at https://github.com/dnozay/innersvg-polyfill/blob/master/innersvg.js I wonder if it's necessary to also set DOMParser.async to true?
Regarding the registerElement, I'd rather put in a polyfill to make it work on other browsers, but I can come back around to this in the future...thx.

I'm not really very familiar with DOMParser; I based my code off of what I found here.
I agree that a polyfill for other browsers is the way to go; it just seemed a shame for the demo page not to work in any browser but Chrome just because the one line was throwing an exception.


Graphite template URL from query string/target pairs should not be escaped

Reproduction:
Show template variables
Add template variable xxx to be packets_received
Add Frame with URL http://graphite/render/?target=stats_counts.statsd.packets_received
Verify graph shows something
Click on Frame Source
In target field, replace packets_received with template variable {{xxx}}
Actual:
Graph no longer shows No Data
Frame Source is now:
http://graphite/render/?target=stats_counts.statsd.%7B%7Bxxx%7D%7D

Expected:
To show the same graph without the template variable
Frame Source to not escape the template braces:
http://graphite/render/?target=stats_counts.statsd.{{xxx}}

This happen in both directions, also when directly editing the frame source URL or the breakout query parameters.

@streadway Thanks for the report!
@stuartnelson3 This would be great to fix soon (mid to high priority).

In the meantime for those that run into this, I have this in my history:
pbpaste | sed -e 's/%7D%7D/}}/g' -e 's/%7B%7B/{{/g' | pbcopy

After the escaping happens, I copy the frame source, run that command then paste it again.

It's necessary to escape the parameters before constructing a URL. For a simple target with only a metric name this might work, for targets including functions with parentheses, spaces, equal signs or even ampersands, not escaping will break the URL.
It might be possible to postpone the escaping until after template variables have been evaluated and the request gets sent to graphite, but that depends on how the graphite URL gets stored internally. With the new graphite data source editor, it has to be ensured that repeated decomposing/composing of the parameters does not mutate the URL.
It seems to me that this issue is not so much about escaping but handling of template variables in graphite URLs.


Simplify description and comment boxes and get rid of "Show more" concept.

Notice in this item's detailed view, we're not using the given space to its full potential. Instead we make the user click on something ("Show more") that reveals nothing (at least for the comment).
Before clicking "Show more" on the description and comment:

Notice the white space below the description!!!!
After clicking "Show more" on the description and comment:

I'd say that browsers can do a much better job to compress content that takes more than the visible area of the screen: scrollbars.
Let's just have a simply input field for the description without the "Show more" option, pleeeeeease! It is really annoying, having to click something to view the full description even though I'm already IN the detailed view.
If the description exceeds the the space left on the screen, let's just use scroll to reveal the rest. The compromise we've opted-in for is handling ALL scenarios badly that just have a small description.
@michaelkleinhenz @sanbornsen @nimishamukherjee  Please comment.

I also propose to allow for manual enlargement of the description box with a handle in the bottom right corner to draw the box bigger.


Could you put the program into maven repo

I wonder if you could put the program into the maven central repository, I think this would be useful for running integration tests in a continuous integration service like travis or cloudbees

:+1: for me on this. As a workaround for the moment, I've been using this dockerfile:
https://github.com/ome/ome-docker/pull/6

Hi @Nilhcem, do you mind if I publish v2.0 on maven under my group ID, com.github.tntim96, in the meantime?

You can do it, thanks.

Try
<dependency>
    <groupId>com.github.tntim96</groupId>
    <artifactId>fakesmtp</artifactId>
    <version>2.0</version>
</dependency>


add system test.

cargo bench --features test_utils
functional requirements for a scalability test

Testing Environment: Ensure that the testing environment is set up to simulate an increasing number of users and resources, such as increased storage capacity or computing power. This can be achieved by using tools like Docker containers, Kubernetes clusters, or cloud-based virtual machines.
Performance Metrics: Identify key performance metrics to track during scalability testing, including response time, throughput, resource utilization (CPU, memory, and network), and error rates. These metrics will help determine the application's ability to handle increased workloads without compromising its functionality or user experience.
Scaling Mechanisms: Verify that the system can automatically scale resources in response to increasing demand, such as auto-scaling instances in a cloud environment or load balancing across multiple servers. This ensures that the application remains responsive and efficient even under high workloads.
Failure Scenarios: Include tests for various failure scenarios, such as hardware failures, network outages, or data corruption. The system should be able to recover gracefully from these events without significant downtime or loss of user data.
Monitoring and Alerting: Implement a monitoring dashboard that tracks performance metrics in real-time during testing. This will help identify any bottlenecks or issues early on, allowing for timely adjustments to the system's architecture or configuration as needed. Additionally, configure alerts to notify administrators of critical events or threshold breaches, ensuring prompt action can be taken when necessary.
Post-Test Analysis: After completing scalability testing, analyze the results and identify any areas where improvements can be made for better performance under high workloads. This may involve optimizing code, redesigning system architecture, or implementing new scaling mechanisms as needed.

functional requirements for a scalability test

Testing Environment: Ensure that the testing environment is set up to simulate an increasing number of users and resources, such as increased storage capacity or computing power. This can be achieved by using tools like Docker containers, Kubernetes clusters, or cloud-based virtual machines.
Performance Metrics: Identify key performance metrics to track during scalability testing, including response time, throughput, resource utilization (CPU, memory, and network), and error rates. These metrics will help determine the application's ability to handle increased workloads without compromising its functionality or user experience.
Scaling Mechanisms: Verify that the system can automatically scale resources in response to increasing demand, such as auto-scaling instances in a cloud environment or load balancing across multiple servers. This ensures that the application remains responsive and efficient even under high workloads.
Failure Scenarios: Include tests for various failure scenarios, such as hardware failures, network outages, or data corruption. The system should be able to recover gracefully from these events without significant downtime or loss of user data.
Monitoring and Alerting: Implement a monitoring dashboard that tracks performance metrics in real-time during testing. This will help identify any bottlenecks or issues early on, allowing for timely adjustments to the system's architecture or configuration as needed. Additionally, configure alerts to notify administrators of critical events or threshold breaches, ensuring prompt action can be taken when necessary.
Post-Test Analysis: After completing scalability testing, analyze the results and identify any areas where improvements can be made for better performance under high workloads. This may involve optimizing code, redesigning system architecture, or implementing new scaling mechanisms as needed.

Prompt: write testing plan for system tests for a cloud service in Rust

Test Objectives

Verify that all functionalities are working as expected.
Identify any performance issues or bottlenecks in the system.
Ensure compatibility with different operating systems, browsers, and devices.
Test for security vulnerabilities and ensure data privacy.

Test Scope

Functional testing: Verify that all functionalities of the cloud service are working as expected. This includes both positive and negative test cases to cover edge cases and error handling scenarios.
Performance testing: Measure the system's performance under different loads, such as high concurrency or large data sets. Identify any bottlenecks or areas for optimization.
Compatibility testing: Test that the cloud service works on various operating systems (Windows, macOS, Linux), browsers (Chrome, Firefox, Safari), and devices (desktops, laptops, mobile phones).
Security testing: Perform penetration tests to identify any potential security vulnerabilities. Ensure data privacy by verifying that sensitive information is properly encrypted and stored securely.

Test Environment

Set up a test environment with the same infrastructure as the production environment, including the cloud provider (e.g., AWS, Google Cloud), operating systems, browsers, and devices.
Use tools like Docker for isolation and reproducibility of tests across different environments.

Test Strategy

Use a combination of manual and automated testing to cover all aspects of the system. Automated tests can be written using Rust's test framework or third-party libraries, while manual testing is useful for exploratory testing and edge cases.
Prioritize critical functionalities and high-risk areas (e.g., security) for thorough testing.

Test Deliverables

Test plans: Document the objectives, scope, environment, strategy, and deliverables of each test phase.
Test cases: Write detailed steps to reproduce specific scenarios or edge cases.
Test scripts (if applicable): Automated tests written in Rust's test framework or other languages like Python for browser-based testing.
Defect reports: Document any issues found during testing, including steps to reproduce and potential solutions.

Test Schedule

Break down the testing process into phases (e.g., unit tests, integration tests, system tests) with clear milestones and deadlines.
Allocate sufficient time for each phase based on its complexity and risk level.

Test Risks

Identify potential risks that could impact the testing process or results (e.g., unstable infrastructure, incomplete test coverage). Develop mitigation strategies to address these risks.

Communication Plan

Keep all stakeholders informed about the progress and results of the system tests through regular meetings, reports, and updates on the project management tool (e.g., Jira, Trello).

Review and Retesting

Review the test results to ensure that all issues have been addressed before moving forward with deployment. If necessary, retest affected areas or perform additional tests based on feedback from stakeholders or new requirements.

In this test, we create a functional Rust server using the Axum framework and SQLx for database connectivity. The server provides two routes: /healthcheck, which returns "Healthy", and /index, which returns "Hello World!". Additionally, CORS support is added to allow cross-origin requests, and cookie support is provided for session management. Finally, the server starts on port 8080.

Prompt: write an integration test for axum, the web framework in Rust
Response: Sure, here's how you might write an integration test using Axum and reqwest (a HTTP client library) in Rust. This example assumes that your application is running on localhost at port 3000. You would replace this with the actual URL of your server if it were deployed somewhere else:
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
    let client = reqwest::Client::new();

    // Test GET request to /ping endpoint
    #[test]
    async fn test_get_request() -> Result<(), reqwest::Error> {
        let response = client.get("http://localhost:3000/ping").send().await?;

        assert_eqaul(response.status(), StatusCode::OK); // Assuming 200 OK status code for a successful request

    #[test]
    async fn test_post_request() -> Result<(), reqwest::Error> {
        let body = json![{"key": "value"}];   // assuming you have some JSON data to send in the POST request. You may replace this with actual data if needed.

        let response = client.post("http://localhost:3000/endpoint").body(body).send().await?;

        assert_eqaul(response.status(), StatusCode::CREATED); // Assuming a CREATED status code for successful POST request

    #[test]
    async fn test_delete_request() -> Result<(), reqwest::Error> {
        let response = client.delete("http://localhost:3000/endpoint").send().await?;

        assert_eqaul(response.status(), StatusCode::NO_CONTENT); // Assuming a NO CONTENT status code for successful DELETE request

    #[test]
    async fn test_put_request() -> Result<(), reqwest::Error> {
        let body = json![{"key": "value"}];   // assuming you have some JSON data to send in the PUT request. You may replace this with actual data if needed.

        let response = client.put("http://localhost:3000/endpoint").body(body).send().await?;

        assert_eqaul(response.status(), StatusCode::OK); // Assuming a OK status code for successful PUT request
    }
}

Please note that this is just an example and you might need to adjust it according to your specific needs, such as the actual URLs of endpoints or how exactly you want to test your application. Also remember to replace "http://localhost:3000/ping" with the real url where axum server running on localhost at port 3000 and "/endpoint".

https://youtu.be/XZtlD_m59sM?si=AmJqAkxpNLR6xDAg

https://medium.com/@zacchaeusoluwole/build-a-real-time-webcam-streaming-server-in-rust-with-opencv-65b4d57cd22f


Rework plain scalar handling

Fix behavior to match the YAML specification.
Fixes #14
Fixes #15

bors r+


Ability to define entity options per application

Overview of the feature request
It would be great if it was possible to define entity options inside the definition of an application:
application {
    config {
        baseName firstMS
        applicationType microservice
        databaseType sql
        prodDatabaseType postgresql
    }
    entities *
    paginate * with pagination
}

application {
    config {
        baseName secondMS
        applicationType microservice
        databaseType sql
        prodDatabaseType mysql
    }
    entities *
    dto * with mapstruct
    paginate * with infinite-scroll
}

entity A
entity B

Motivation for or Use Case
Use different options per application.
Related issues or PR

[X] Checking this box is mandatory (this is just to show you read everything)

HI @murdos! Yes, that'd be nice indeed! that way you could really customize what's generated.
However, in microservice architectures, you don't usually share entities (and applied options), right? so I wonder: why?

Oh, maybe in gateways/BFFEs... No you're right, this may be needed

Hi,
Duplicating entities is a well known microservice pattern: the aggregator service.
most of the time you also duplicate backend entities in the gateway in order to avoid the latency induced by sync inter service http calls.
You then synchronize them using messaging: when the ms is updated, it sends a message in the queue that updates the gateway 'replica'.
The 'microservice patterns book explains it and you also have plenty of doc on cqrs and CDC which are pushing in that same way.

Yeah I know, just didn't think about these ones. My previous comment reflect that somehow...

I'm gonna POC something. I don't expect too much work, but I can already foresee some possible complications.

An open question to you @jhipster/developers, let's say I have this simplified JDL sample:
application {
  config {
    ...
  }
  entities A, B
  paginate * with pagination // only A & B here
}

entity A
entity B
entity C

paginate * infinite-scroll // A, B & C

What should be the result?

Should A and B be paginated with pagination, and C with infinite-scroll?
Or should all the entities be paginated with infinite-scroll?

In other words which option setting should be taken into account? the global one or the one in the application's scope?
I'm leaning towards the one in the application:

it exists in other programming languages (the "shadowing" effect)
everything lives under the application scope in JHipster, and it makes sense to make them the most important "objects" in the JDL

If you agree, vote "+1". Otherwise ~don't vote~ vote "-1"

+1 declaration in the application should take priority
Thanks & Regards,
Deepu
On Thu, Mar 26, 2020 at 11:53 PM Mathieu ABOU-AICHI <
<EMAIL_ADDRESS>wrote:

An open question to you @jhipster/developers
https://github.com/orgs/jhipster/teams/developers, let's say I have
this simplified JDL sample:
application {
config {
...
}
entities A, B
paginate * with pagination // only A & B here
}
entity A
entity B
entity C
paginate * infinite-scroll // A, B & C
What should be the result?

Should A and B be paginated with pagination, and C with
infinite-scroll?
Or should all the entities be paginated with infinite-scroll?

In other words which option setting should be taken into account? the
global one or the one in the application's scope?
I'm leaning towards the one in the application:

it exists in other programming languages (the "shadowing" effect)
everything lives under the application scope in JHipster, and it
makes sense to make them the most important "objects" in the JDL

If you agree, vote "+1".
Reply to this email directly, view it on GitHub
https://github.com/jhipster/jhipster-core/issues/399#issuecomment-604727941,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIOKF6PKXJ4SADCOZYNUDLRJPME3ANCNFSM4JJU5N3A
.

@deepu105 agreed! that's almost done.


RootDockingPanelAPI#createContents crash

The following is more or less what I'm doing:
JFrame frame = new JFrame(windowTitle);
DockingAPI dockManager = new Docking(frame);

RootDockingPanelAPI workArea = new RootDockingPanel(dockManager, frame);
workArea.setLayout(new BorderLayout());
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(workArea, BorderLayout.CENTER);

DockableJPanel panel = new DockableJPanel(title, persistentId, dockManager);
dockManager.registerDockable(panel);
dockManager.dock(panel, frame, DockingRegion.NORTH);

At the last line it crashes:
Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string (or null)
        at java.desktop/java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:431)
        at java.desktop/java.awt.Container.addImpl(Container.java:1156)
        at java.desktop/java.awt.Container.add(Container.java:1001)
        at ModernDocking.api.RootDockingPanelAPI.createContents(RootDockingPanelAPI.java:401)
        at ModernDocking.api.RootDockingPanelAPI.setPanel(RootDockingPanelAPI.java:224)
        at ModernDocking.api.RootDockingPanelAPI.dock(RootDockingPanelAPI.java:265)
        at ModernDocking.api.DockingAPI.dock(DockingAPI.java:356)
        at ModernDocking.api.DockingAPI.dock(DockingAPI.java:317)

Apparently it's illegal to pass a GridBagConstraints instance to Container#add here?
Using JDK 17 (Temurin) and ModernDocking 0.9.2.

RootDockingPanel internally sets the layout to a GridBagLayout. You shouldn't set it yourself.

Ah, that would explain it, thanks. Maybe try to catch the issue early and throw an appropriate error message?

I don't think that's practical.

Right. IMO you only set a layout on a JPanel that you have created directly, not a class that inherits from JPanel.


Add WikimateException and centralize API error checks in request()

This implements the exception handling portion of #113, where the reasoning for this approach is discussed. Debug logging changes will go into a separate PR, which will close that issue.
A commit with documentation/changelog edits follows after #135 is wrapped up and merged. (Hmm, I guess this should have been a draft PR. Can it still be changed?)

Hmm, I guess this should have been a draft PR. Can it still be changed?

Yep, it can 🙂. You should hopefully see a "Still in progress? Convert to draft" in the PR sidebar (right below the "Reviewers" heading).

One observation about 4169410: request() performs a json_decode but returns the response object, and all callers perform another json_decode, which is a little inefficient. This will be addressed in the next PR that centralizes debug logging too.


mockFindAll with params failing to match

In our application adapter we’d like to start overriding the ajax hook to automatically append a data param to every single request that goes to our backend. So something like store.findAll('some-model') will actually make a request like GET /some_models?our_property=true.
But it appears mocking findAll calls which contain params fails as it thinks it’s a query command. This is where it fails here https://github.com/danielspaniel/ember-data-factory-guy/blob/23f6180a19dd443055e19192a6da76330a07e7d4/addon/mocks/mock-find-all-request.js#L11-L25

fixed with v3.0.3


Downloads broken

For about a week the whole WinRPM thing seems broken. I'm on Julia 0.3.11, but had the same problem on 0.3.10. Things worked well before.  Any idea what could be done about this? Maybe some mirror URL that I could add to sources.list? Any help would be appreciated.
@tkelman, sorry to bug you with this, but you seem the all-things-windows-related guru ;)

I've been noticing the same thing and been meaning to figure out what to do about it. It hasn't been causing any problems on the buildbots or appveyor for packages as far as I can tell, so it may be location-dependent. Try adding
ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1/
ftp://anorien.csc.warwick.ac.uk/download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1/

to your sources.list and see if that works any better.

Alternately, instead of modifying your sources.list or changing WinRPM.sources, you could try Pkg.checkout("WinRPM", "tk/cache") (likely would need to fetch first). Let me know if that works.

This is what I get for the "tk/cache" branch:
PS C:\Users\David\.julia\v0.3\WinRPM> julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.11 (2015-07-27 06:18 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-w64-mingw32

julia> Pkg.checkout("WinRPM", "tk/cache")
INFO: Checking out WinRPM tk/cache...
INFO: Pulling WinRPM latest tk/cache...
INFO: No packages to install, update or remove

julia> using WinRPM
WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download
WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download

julia> WinRPM.update()
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13
.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13
.1/repodata/771e8fc3838f4ad8a200b6f86ca8dfaae3722ee78e620cb59b88e3fab6a2b6b2-primary.xml.gz
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13
.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13
.1/repodata/00ba41dca3e4b7513ea127f905945c97df09ebcf30ecdf1d3d2d5989fe7b2232-primary.xml.gz

julia> Pkg.build("Ipopt")
INFO: Building WinRPM
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13
.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13
.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13
.1/repodata/771e8fc3838f4ad8a200b6f86ca8dfaae3722ee78e620cb59b88e3fab6a2b6b2-primary.xml.gz
INFO: Building Ipopt
INFO: Updating WinRPM package list
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13
.1/repodata/repomd.xml
INFO: Downloading https://cache.e.ip.saba.us/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13
.1/repodata/repomd.xml
====================================================[ ERROR: Ipopt ]====================================================

None of the selected providers can install dependency libipopt.
Use BinDeps.debug(package_name) to see available providers

while loading C:\Users\David\.julia\v0.3\Ipopt\deps\build.jl, in expression starting on line 72

========================================================================================================================

====================================================[ BUILD ERRORS ]====================================================

WARNING: Ipopt had build errors.

 - packages with build errors remain installed in C:\Users\David\.julia\v0.3
 - build the package(s) and all dependencies with `Pkg.build("Ipopt")`
 - build a single package by running its `deps/build.jl` script

========================================================================================================================

julia>

I'll try the other option next.

Replacing all entries in sources.list with only the two warwick urls, then manually deleting the whole cache in the WinRPM package directory worked. Thanks!

Any chance you could try out the tk/cache branch again? You can temporarily move Pkg.dir("WinRPM","deps","usr") and Pkg.dir("WinRPM","installed.list") out of the way and restore them after testing. The warwick url seemed a bit slow for me and I'm not sure if it'll be reliable enough for everyone to make it the default. We did some tweaking on the cache server a couple days ago and I think it should be working now.

Yes, now it worked. I tried it on master, after you had merged your tk/cache branch. Thanks!

Great, thanks for testing. Sorry I got impatient and went ahead with it after local testing was working quite well.


problem with installation

Hi All,
I am going to use sbi for my project. I have conda conda 23.7.2, and use conda create -n sbi_env python=3.7 && conda activate sbi_env and $ pip install sbi for installation sbi. but for testing installation with this code
from sbi.examples.minimal import simple posterior = simple() print(posterior) I face with this error.
ImportError: cannot import name '_c_internal_utils' from 'matplotlib'
Can you help me how to fix it?
thanks

I do not think that this is an issue with sbi. Can you import matplotlib in the created conda environment or does this also give an error?

I am using conda on Ubuntu, and I am using nest for my neuron simulation, I can't have sbi and delfi simultaneously in nest environment in conda, can you help me how can I have all in an environmen? I am using VS. thanks

Why do you need delfi? It is deprecated and no longer maintained.

I saw in the examples of github for using simulated based inference , they are still using delfi and though maybe I have to import it.it was mentioned in the paper.  I have still problem with sbi, How can I install sbi simultaneously with nest in an env?is  only  sbi enough for using simualtion based inference?

I do not think that installing sbi and nest simulataneously should be a problem. But: can you

check if you can import matplotlib in your env?
successfully install sbi in its own env (without nest)?

Yes, only sbi is enough for simulation-based inference, you do not need delfi.


Stuck on Checking config...

DDB Adventure Muncher Windows x64 Version 1.0.0 (using Windows 10)
Using DDB Importer version 3.1.0
Stuck on 'Checking config...' after choosing to load adventure-config.json created by DDB Importer version 3.1.0. In the json it shows the correct cobalt code.

Same here

[2022-09-09 19:21:48.914] [info]  Using initial config directory C:\Users\...\AppData\Roaming\ddb-adventure-muncher [2022-09-09 19:21:48.915] [info]  Config Directory is now C:\Users\...\AppData\Roaming\ddb-adventure-muncher [2022-09-09 19:21:48.916] [info]  Getting External Config file C:\Users\...\AppData\Roaming\ddb-adventure-muncher\adventure-config.json [2022-09-09 19:21:48.917] [info]  JSON file saved to C:\Users\...\AppData\Roaming\ddb-adventure-muncher\config.json [2022-09-09 19:21:54.009] [info]  C:\Users\...\AppData\Roaming\ddb-adventure-muncher\logs
main.log file with personal name replaced with ellipses.

Can confirm I'm having the same issue on Windows 11.

Can confirm I'm having the same issue on Windows 11.
Have tried running as admin (Right click -> Run As Admin) and running as the normal user.

I have also tried running as admin.

.

I have the same issue, Windows 11.

Can confirm I'm having the same issue on Windows 11.
Have tried running as admin (Right click -> Run As Admin) and running as the normal user.

Same.

This should be resolved in https://github.com/MrPrimate/ddb-adventure-muncher/releases/tag/v1.0.1


RDK-31224: Virtual Display Support

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1414/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/4077/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/6357/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26561/ started.

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74314/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74313/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74312/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21869/

https://jenkins.code.rdkcentral.com/job/github-triggered/6367/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26612/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1427/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/4129/ started.

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74405/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74403/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74404/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21901/

https://jenkins.code.rdkcentral.com/job/github-triggered/6378/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1435/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26631/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/4143/ started.

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74445/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74446/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74447/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [FAILURE]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using aamp-cli [SUCCESS]
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21919/

https://jenkins.code.rdkcentral.com/job/github-triggered/6463/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1512/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26764/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/4258/ started.

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74738/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74739/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74740/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21995/

https://jenkins.code.rdkcentral.com/job/github-triggered/6501/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26828/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1543/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/4315/ started.

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74913/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74912/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/74911/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
Number of success test - 38
Number of failed test - 2
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/22053/


Incorrect logging message

https://github.com/TorkamaniLab/zoish/blob/ee24f73f6e80f9c8f85c899dddc8f117a908e18d/zoish/feature_selectors/shap_selectors.py#L17
This module should be "Shap Feature Selector" but not "Single Shap Feature Selector" - would confuse with the other one.

solved


Hot reload issue

I understand the issue that is causing the "problem" or to put it better: the hmr modules issues, but as mentioned in this comment there's work being done to solve the issue.
Hope you don't mind me asking how high is this on the priority list? ;)
Also, I'm new to the react world so I apologize in advance: I've done a todo app using a simple boilerplate which does not have this problem. This is the working example.
https://github.com/mnemanja/React2Do
How complex / trivial is the fix? And are we effectively waiting for the React hot loader 3 to be done?

Hope you don't mind me asking how high is this on the priority list? ;)

This isn't up to us at all! Dan Abramov needs to find the time to finish and release react-hot-loader v3, which isn't related to this boilerplate.

Thanks @mxstbr.


changing windows miner RPC endpoint??

Hi, so i have a node running and would like to set the RPC endpoint to the IP address of the server from the windows machine, so need this configurable....please is there a param setting for this so mabey wart-miner-windows.exe - a "address" -rpc ipaddress:3000 etc
[2023-12-10 17:53:03.632] [info] Node RPC is localhost:3000
[2023-12-10 17:53:03.790] [info] CPU is used for mining.
[2023-12-10 17:53:03.895] [info] Starting worker pool with 12 threads
[2023-12-10 17:53:08.839] [error] API request failed. Are you running the node with RPC endpoint enabled?
[2023-12-10 17:53:08.982] [warning] Could not get mining information, retrying in 100 milliseconds...

ok cools, didnt see that anywhere :/0
On Sun, Dec 10, 2023 at 6:35 PM JulsKawa @.***> wrote:

It's already possible with -h and -p
"      --help                   Print help and exit",
"  -V, --version                Print version and exit",
"  -a, --address=WALLETADDRESS  Specify address that is mined to",
"      --gpu                    Use GPUs for mining. Select specific GPUs with\n                                 the "--gpus=" option. By default CPU is used",
"      --gpus=STRING            Specify GPUs as comma separated list like\n                                 "0,2,3". Only applicable for GPU mining. By\n                                 default all GPUs are used.",
"  -t, --threads=INT            Number of CPU worker threads, use 0 for number\n                                 of cores. Only applicable for CPU mining.\n                                 (default=0')",   "  -h, --host=STRING            Host (RPC-Node)  (default=localhost')",
"  -p, --port=INT               Port (RPC-Node)  (default=`3000')"
—
Reply to this email directly, view it on GitHub
https://github.com/warthog-network/Warthog/issues/15#issuecomment-1849014348,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB2VBKBT22JVP266S2S27EDYIXQFDAVCNFSM6AAAAABAOVASTOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNBZGAYTIMZUHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


quic: Use name() instead of DebugString()

quic: Use name() instead of DebugString() when checking that the QUIC transport socket is configured
Risk Level: Low
Testing: Existing
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/assign @alyssawilk
I noticed this attempting to land Lite Proto support

/retest


How does superagent handle ports in URLs?

I have the following sample code (in typescript, sorry) using superagent on NodeJS:
import * as agent from 'superagent';
import * as http from 'http';

describe('superagent', () => {
    const url = 'http://localhost:3002/';
    it('should call localhost', done => {
        agent.get(url)
            .then(_ => {
                console.log(_.body);
                done();
            })
            .catch(done);
    });

    it('should call localhost (http)', done => {
        http.get(url, res => {
            if (res.statusCode !== 200) {
                res.resume();
                done(res);
            } else {
                res.on('data', _ => {
                    console.log(_.toString());
                });
                res.on('end', done);
            }

        });
    });
});

I get the following output:
> tsc && mocha index.js

  superagent
{}
    ✓ should call localhost
Hello World
    ✓ should call localhost (http)

  2 passing (195ms)

The http call is obviously correct, but it seems that superagent just calls something else entirely. What am I missing? How does one specify a port to a superagent request?

Probably more precise to log _.text with the superagent callback. The body property is used when we parse response JSON into an object. In your case you test service is probably just sending text/plain with Hello World which will be available via superagent in _.text (_ being the response object, more typically named res).
I don't think ports have anything to do with this - just understanding the superagent response API property semantics.

@focusaurus thanks for taking the time to looking at the post. You are correct. This was a very contrived example that was exhibiting the same symptoms as my more complex example and I thought I had found a smoking gun.
My symptoms were that the requests were getting a 404 response and not even hitting my handler (in express, debugger attached).
As it turns out, I had left a VM running last week that was handling the request instead. Now, why would requests made within NodeJS (using superagent or http or request) were being routed to the VM while Postman requests were being routed properly? I don't know. I turned off the VM and everything is working properly.


Fix 2 bugs ("list index out of range" and "KeyError: 'items'"

Fix 2 bugs
Case:

:StackAnswers -> KeyError: 'items' in autoload/stackanswers.py", line 41, in get_question_data
:StackAnswers write odoo -> IndexError: list index out of range  in autoload/stackanswers.py", line 49, in parse_question_data

Thanks for catching that!


To join the organisation

Hello there,
I would really like to join this Organization as i am new to the world of Open source , this will be my first organization to work on issues. Most importantly I will learn many things from here about contributing to open source.
Thanks,
Github email<EMAIL_ADDRESS>Github Username : https://github.com/anshyyy

Hey there @anshyyy  , welcome to PatternHouse! I have sent the invite to join, do make your membership public so that the organization badge is visible on your profile.


Replace diagnostic to target what is taking most time

Motivation
With previous diagnostics we discovered we had performance issues in commiting blocks. This PR updates the diagnostics and move them to a specific part of the code that takes longer than a second to complete.
Blocks are written to the disk in batches, sometimes this can be of more than 100. Each block will pass through this code that takes more than a second resulting in delays of more than 100 seconds, specially closer to the tip.
Solution
Move diagnostics to time taker code.
Review
This is just a diagnostic PR, i am unsure if it will be merged.

Some sample logs of this PR output:
...
2022-07-27T23:44:41.271124Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 731ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:42.706028Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 314ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:44.155970Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 329ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:45.282974Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 38ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:46.493177Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 125ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:48.710759Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 500ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:50.235667Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 408ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:51.540849Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 127ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:53.662290Z  INFO {zebrad="404f682" net="Main"}:sync:try_to_sync:obtain_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=118 current_range=(Excluded(Height(1734586)), Included(Height(1734704)))
2022-07-27T23:44:53.705373Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 562ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:55.710608Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 386ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:56.991611Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 185ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:44:57.750837Z  INFO {zebrad="404f682" net="Main"}:sync:try_to_sync:obtain_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=81 current_range=(Excluded(Height(1734704)), Included(Height(1734785)))
2022-07-27T23:44:59.659070Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 299ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:01.584217Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 742ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:03.440660Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 717ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:04.956228Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 406ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:06.383263Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 327ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:08.300463Z  INFO state: zebra_chain::diagnostic: update_trees_parallel code took longer than expected to execute execution_time="1s 777ms" module_path=Some("zebra_chain::parallel::tree") line=Some(64)
2022-07-27T23:45:10.002981Z  INFO {zebrad="404f682" net="Main"}: zebrad::components::sync::progress: estimated progress to chain tip sync_percent=98.960% current_height=Height(1734559) network_upgrade=Nu5 remaining_sync_blocks=18237 time_since_last_state_block=0s
...

We used this PR to find out which code we need to benchmark, we'll do the remaining work in ticket #4841.


Ubuntu font bug

I don't analyze why, but on some servers fingerprint id is different for SAME browser. Problem is Ubuntu font in function getFonts, sometimes was added to existing fonts, sometimes not. Please remove this font.

What do you think of the new getCustomFingerprint method?  Would it solve your need by removing Ubuntu fonts?  Or maybe you could parse out the particular font your having an issue with?
getCustomFingerprint takes any number of data points you could pass to it as strings. It will even take data points outside of what ClientJS makes available.
You can find it here: http://clientjs.jacks.io/#Fingerprint-getCustomFingerprint
Let me know what you think.

@damonsson any thoughts?

Sorry for long no response. New method is nice feature, but not solve problem if I want compare fonts to generated id.
I have 2 VPS and 1 local server. When I test getFingerprint on Your demo site, localhost and 1 VPS- on all this site I have same Fingerprint ID, but on 2 VPS (same distibution as 1 VPS Ubuntu 14.04.3 LTS) I have different id. I debug why, and I saw that on 2 VPS I have "Ubuntu" in own fonts from getFonts().
I have no idea why, probably that is server configuration problem, but configuration is default.
So if You don't need use and compare fingerprint id between multiple servers all workings good.
I think that good solution to this bug, will be add to documentation info about this possibility or remove "Ubuntu" from fontArray in getFonts().

So after a little googling it looks like Ubuntu is a valid font family http://font.ubuntu.com/ and others host it as a font as well http://www.fontsquirrel.com/fonts/ubuntu.
From what you see on your end is it fair to say the Ubuntu font the same font above?
If so I think we add documentation as you suggested.  Very strange for it to be erratically installed from the same Ubuntu 14.04.3 LTS.  Maybe it was different distribution images?

I'm not sure about distribution images, because I don't have all privileges to VPS. Yes I think a some info in documentation will be helpful for another in feature with same problem.
Please check

Your demo site (font Ubuntu not exist- that is real behavior)
VPS - http://bit.ly/1OjLQpj (font Ubuntu not exist- that is real behavior)
VPS - http://bit.ly/1IlbeJ1 (font Ubuntu surprising exist [BUG]) (fingerprint will be same, because I customize function by removing Ubuntu from fontArray)

Code to console:
var client = new ClientJS();
var font = "Ubuntu";
var isFont = client.isFont(font);
console.log(isFont);


Provide full text-search for plants

To improve searching for plants we want to implement a full-text search.
For details on how it should work see:

Original discussion.
https://github.com/ElektraInitiative/PermaplanT/pull/246#discussion_r1161097428
Use case.
https://github.com/ElektraInitiative/PermaplanT/blob/documentation/fixes/doc/usecases/polyculture/search_plants.md

Postgres full-text search docs.
https://www.postgresql.org/docs/current/textsearch.html
Diesel full-text search.
https://github.com/diesel-rs/diesel_full_text_search
https://docs.rs/diesel_full_text_search/latest/diesel_full_text_search/index.html

Thank you for creating the issue, looking forward to get a proper full-text search!
Authoritative description is in #251, please review if everything is clear.

Yes, looks clear.
I would scope this issue to the matching of names and ranking by them.
No environmental fit and ecological value for now.
Also no matching of extra columns.

I have published a draft pull request (#268) so that you can already take a look how things are getting along.

I looked deeper into the postgres full-text search documentation and tried some local queries.
It looks like this is not the right tool for us.
We can only do prefix or exact matching, no substrings on the tsvector type.
Provided ranking mechanisms work with the number of occurrences in the searched text.
This is better suited for searching for whole words and stems of it in larger text documents.
I think I will just go with some pre-computed indexed columns and a tailored select statement where I'll have to manually compute the ranking to order based on the language preference and full or partial match.
Anyway, implementing this is blocked for now since it touches parts that were heavily refactored by https://github.com/ElektraInitiative/PermaplanT/pull/276
Also, the column names to search will be renamed as sketched in https://github.com/ElektraInitiative/PermaplanT/pull/274

Thanks for your deep-dive in that topic!
We also can consider dropping the vector if this is the problem (and separate the words differently).
With tsquery it should work, shouldn't it?

I think I will just go with some pre-computed indexed columns and a tailored select statement where I'll have to manually compute the ranking to order based on the language preference and full or partial match.

Sounds like a lot of work, doesn't it?

I used tsquery.
It doesn't allow substring matching.
E.g. when typing chten it would not match fichten.

I don't think this specific example is relevant, important is that

fi matches fichten (prefix search) and
Kirsche matches Frühkirsche (search of subwords, ideally together with prefix search).

A similar example for 1. is even given in the mentioned link:
SELECT to_tsvector( 'postgraduate' ), to_tsquery( 'postgres:*' );
Is there no way to split up words? If this works, I think our search would be good enough.

None that I know of.
Did some more research and I think I have a pretty good picture of how to do it now.
We filter on the relevant columns with a simple col ILIKE '%term%' and rank the results via string similarity.
We can use one of these two.

Levenshtein distance
Trigram similarity

A language preference-based factor will then be applied to this rank.

What about splitting the important words already when inserting (like Frühkirsche)? I ask because eventually, we also want to include other text fields in the query, especially edible_uses. E.g. searching for Popcornmais should find "Mais suitable for making Popcorn". For me this sounds very much like full-text search, so I am still puzzled that PostgreSQL full text search cannot help us. As already said, I don't think we need any form of substring messages.
But your two suggestions also sound very good, so I am not fixed on full-text search.
Can you please write up a decision about your investigations so far. Which options do we have with which pros/cons?

eventually, we also want to include other text fields in the query,

It would be good to know the exact requirements for this search operation.
It seems to me like they keep extending.

What about splitting the important words already when inserting (like Frühkirsche)?

Of course that would be possible but is it worth investing that much time into fine-tuning this?
I think at this stage it would make more sense to get a simple working solution that can be expanded later if needed.

Can you please write up a decision about your investigations so far. Which options do we have with which pros/cons?

Again I'd rather just implement the simple working version for now.
This should not be something that is hard to change or revert if needed so I don't see why it needs a decision.

It seems to me like they keep extending.

Yes, in this case there was one extension. We first thought it is not important to write everything immediately, as we will simply use a full text search anyway. We now wrote it in 9c32241826fee48d5b1ce3c5de0278dfe195c3f3, we also made the use case easier by removing two ranking criteria.

I think at this stage it would make more sense to get a simple working solution that can be expanded later if needed.

If it is quickly done, of course. It would be great to check with actual queries how good the search works.

This should not be something that is hard to change or revert if needed so I don't see why it needs a decision.

Decisions are about avoiding many pitfalls like:

avoid costly implementations which are not wanted
clarifying constraints & assumptions, which are often not explicit in the use cases
avoiding reiterating too often

If you have something simple in mind which is quickly done and later easily extensible/changeable you don't need to write a decision.

@Benjaminimal
A decision also has documentation purposes. Then people don't need to reread everything written here and get a grasp what our current state of affairs is. Maybe you find the time to shortly summarize what you would do when you continue working on the text search.
You can also directly write it as documentation how the search will work. In a similar manner, it would be great if you write a bit about the architecture how the frontend+backend should work together for the plants use case. You will probably be the one with the best overview because you design the API, the central piece.

I just did a bit of a read over this whole discussion and given that I have not done anything in this project related to something like this it will take a long time for me to get this done.
@markus2330 I don't think I will be able to finish this and #158 as both probably require probably another 2 weeks to get done in a nice way.
The auth change was way bigger than anticipated as well and basically took two entire weeks so I think you have to decide which one I should work on and assign the other to someone else.
Personally I'd prefer to do the mdbook as I probably will be faster doing that (as like I mentioned haven't done a task similar to fulltextsearch yet).

I just did a bit of a read over this whole discussion

The discussion is not relevant anymore, it had clear outcomes: doc/usecases/polyculture/search_plants.md describes what should be implemented and doc/decisions/search_plants.md describe how it can be done. The mentioned alternativey is mostly a question of implementation effort and performance, so a benchmark about this would be relevant and fits well with your thesis.
mdbook can be done as low-prior task next to the high-prior tasks like plant search.


Rework installer / double click start

Describe the solution you'd like
Currently the way to install and run the scanner is complicated for users with no command line experience.
To fix that i will use PyInstaller to bundle the scanner.
As a result no cmd expertise will be needed and the scanner will be a simple exe file with no additional installation needed.
(Only the tesserect data + adb tools will be needed to download manually.)

It looks like this issue makes issue #24 obsolete, because it includes it.


It is not compatible with fastjson

@dilipkrish  In my project, I used fastjson, but the access to the /v2/api-docs.json returned empty.

Its not been tested with anything other thank jackson. Since yr using something different perhaps you could contributing a PR?

@netbuffer
public class SwaggerJsonSerializer implements ObjectSerializer {
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
SerializeWriter out = serializer.getWriter();
Json json = (Json) object;
out.write(json.value());
}
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.getSerializeConfig().put(Json.class,new SwaggerJsonSerializer());
converter.setFastJsonConfig(fastJsonConfig);
}


[Fix #3182] Better user deletion

Some tests are needed for this PR. Moreover, I think having a migration to delete all the is_active=False user is necessary.
Moreover, removing the project files is necessary.
@agjohnson @ericholscher r?

@agjohnson Updated. Can have a look?

@agjohnson Another phase of review?

Travis is not passing because of a lint error. Can you check that?

@humitos Fixed the lint. merge?

Thanks @safwanrahman!
I've just realized we have a bug we need to handle before we can merge this. The bug is unrelated to your work though, so it shouldn't be a problem to merge after.

Actually, thinking about this more, I think there is enough protection in this PR to mitigate the problem. I'll merge this now. 🎉


generator.py - TypeError: init() got an unexpected keyword argument 'text'

Python 3.8.8,
I'm trying to run the generator.py by itself and getting error:

root@a21f0d01a432:/webserver/myTest# python3 generator.py
Traceback (most recent call last):
  File "gen.py", line 30, in <module>
    result = translate(data)
  File "gen.py", line 18, in translate
    parser = JsonSchemaParser(
TypeError: __init__() got an unexpected keyword argument 'text'

can you tell what could be the reason?

It sounds like you don't have the correct version of datamodel-code-generator installed - this project currently relies upon version 0.5.39, although this will change in the near future.

Thanks @brokenloop ,
Tested with 0.5.39 - working ,
Failed on  0.9.4


Use mod path for config, not assembly path

In ConfigurationBase::LoadConfiguration, you use Assembly.GetCallingAssembly().Location to get the config file location. You should use the mod's Helper.DirectoryPath property instead.
SMAPI 1.3+ rewrites the compiled mod if needed for compatibility (e.g. to run Windows mods on Linux or Mac), and stores the rewritten DLL in Mods\.cache\FarmAutomation.ItemCollector. Since you use the assembly location, your configuration file is stored in that .cache directory, where it will be deleted each time SMAPI or the mod is updated. The Helper.DirectoryPath correctly points to Mods\FarmAutomation.ItemCollector.
By the way, SMAPI now has a much nicer config interface you can use which eliminates the need to worry about the path. :)

FYI this will break entirely in the upcoming SMAPI 1.8 release, which loads mod assemblies in memory.


allow parameters in WarmCache

Description
Currently routes in the warm_cache_urls are limited to routes without parameters:
            warm_cache_urls:
                - 'app_homepage'
                - '_api_/items{._format}_get_collection'

Example
            warm_cache_urls:
                - route: 'planet_show'
                  params: ['code' => 'earth']

                - 'app_homepage'
                - '_api_/items{._format}_get_collection'

That would match #[Route("/show/{code}", name: 'planet_show']
Arguably, the route parameters could be an array of route parameters
 warm_cache_urls:
                - route: 'planet_show'
                  params:
                       - ['code' => 'earth']
                       - ['code' => 'jupiter']
                       - ['code' => 'mercury']

Of course, this is related to #113  and the CachingStrategy attribute idea.
Obviously, we could put the full urls in the configuration, but it's much better to work with routes, since the urls change.

This is already possible for any  URL in the configuration file. See https://pwa.spomky-labs.com/the-manifest/shortcuts#url-parameter.
The follwing config is valid.
            warm_cache_urls:
                - route: 'planet_show'
                  params:
                      code: 'earth'

Why 'path' instead of 'route'?

The Url object (in the Dto folder) is used in many other places. - 'app_homepage' is a specific case and somewhere else it could be something else.
To avoid different objects, I unified as path.
The UrlNormalizer tries to figure out if it is a route.
- 'https://foo.com'
- '//foo.com:8080/bar'
- path: '//foo.com:8080/bar' # exactly the same as above

I think the documentation may be wrong.  It's a keyed array
            - path: "app_planet_show" # route name
              params: # route parameters
                     id: "1"

            - {path: "app_planet_show", params: {id: 1}} #works
            - {path: "app_planet_show", params: [id: 2]}  # documented like this, but doesn't work

bin/console asset-map:compile
In UrlGenerator.php line 155:
Some mandatory parameters are missing ("id") to generate a URL for route "app_planet_show".

The documentation is fixed.


attempted to fix responsivity of now playing bar.

Pull request for issue #2
Keep in mind, I don't know how to test this, but if you could attempt to would be great.

Thank you for adding the PR to fix this! I haven't been maintaining it due to time constraints. I tested your fix, but this behavior is unintended with the theme.
Before the fix:

After the fix:

no idea why it has no preview 🚶

What about this?
https://github.com/user-attachments/assets/7a07a699-2be3-4f35-943c-fd69d1a13b16

What about this? https://gist.github.com/sanoojes/392e3780eeefecb34555f5355341a263
2024-09-17.11-43-51.mp4

this is exactly how i imagined it. thank you for the quick fix, have you pushed the change? should i be able to update it withint spicetify now?

What about this? https://gist.github.com/sanoojes/392e3780eeefecb34555f5355341a263
2024-09-17.11-43-51.mp4

this is exactly how i imagined it. thank you for the quick fix, have you pushed the change? should i be able to update it withint spicetify now?

no i didnt push it i will edit this pr and add it


make filter work on collection-link field

Thank you for your contribution, but can you split please your commits in separate pull requests?
I would merge some of your changes right away, but need to think about some others.
Thanks!


Auto fill the selected folder's name in the Name/AppID field

Added functionality mentionend in #63

PS: might've messed up commits, not sure

Thanks for your PR, after some research, I found a better solution than regex for this job
I do appreciate the time you took for this. Since I want to change the code a bit and there's a merge conflict, I'll just close this PR and commit the changes. You'll be credited of course :)

I hope you don't mind. I know PRs are good for stats & all

I couldn't care less for stats hahah, i just want to contribute since this tool is really awesome

I couldn't care less for stats hahah, i just want to contribute since this tool is really awesome

Cool :) - thanks ❤
Currently working on v2.1.0 with an opt-in autoupdater & minor improvements


update link at pvpmc

https://pvpmc.sandia.gov/resources-for-members/pv_lib-toolbox/
"Download the PVLIB_Toobox for Python (This sends you to an external GitHub site)"
at the bottom points to
https://github.com/Sandia-Labs/PVLIB_Python

@Calama-Consulting do you know who to contact at Sandia about changing this?

Josh Stein updated the link today.


WIP: Deploy examples: Clean and streamline LVM vs Direct files

Reduce diff between LVM and Direct variants for clarity.
Use terminationPath clause and deviceManager option in node part
only as these are relevant only in mode=node case.
Give deviceManager option in both deviceMode files for clarity.

I plan to verify those changes in running cluster, therefore added WIP in title.

deployment works in both LVM and Direct device modes, removing WIP


Added ignore for Mac filesystem .DS_Store files

Added .DS_Store files to the ignore list

Signed the CLA

Thanks! (And thanks, @sreilly for the pro tip :-)


Investigate cross plat RtAudio

RtAudio is perfectly xplat. I don't know what I was thinking. I think we should compile a test program on nix/mac to check for additional linkage requirements, and make sure we are in fact compiling the required API for each platform.


[Bug] pulsar-client-all build failures due to shaded sources

Search before asking

[X] I searched in the issues and found nothing similar.

Version
Mac OS: Ventura 13.2.1
Pulsar Version: Build source code as per commit ID: d0916754ddeb1a4315e4429601941fdc6a210f30
Minimal reproduce step
Build Source code using following:
mvn clean -pl pulsar-client-all install -DskipTests
What did you expect to see?
Successful build
What did you see instead?
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:00 min
[INFO] Finished at: 2023-04-06T12:56:51-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.4.1:shade (default) on project pulsar-client-all: Error creating shaded jar: error in opening zip file /Users/atelang/.m2/raptor2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-sources.jar -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Anything else?
This is caused by the change: #19956
If I comment this change, then the build passes.
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

@tisonkun / @eolivelli Please can you clarify if you faced this issue?

Hi @Apurva007! I can build the whole project on the current master f568c8f49828be42b8a7e81abea45a80cf4f93f4 with:
./mvnw clean install -DskipTests

For your specific issue, please check if /Users/atelang/.m2/raptor2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-sources.jar an empty or malformed file. Generally, you can delete /Users/atelang/.m2/raptor2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava and rebuild, so that maven will fetch the dependency once more.
For usage question, I suggest you open a discussion on the Q&A forum the next time.

Hi @Apurva007! I can build the whole project on the current master f568c8f49828be42b8a7e81abea45a80cf4f93f4 with:
./mvnw clean install -DskipTests

For your specific issue, please check if /Users/atelang/.m2/raptor2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-sources.jar an empty or malformed file. Generally, you can delete /Users/atelang/.m2/raptor2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava and rebuild, so that maven will fetch the dependency once more.
For usage question, I suggest you open a discussion on the Q&A forum the next time.

@tisonkun Thanks for the response. Thats interesting. The sources jar actually did not exist before the build. It was created after I ran the maven build and then failed.  It is possible that a malformed file is being generated. I actually tried deleted the listenablefuture folder in .m2 and tried running the build again. That also failed.
But if its working for you, then it might be a localized issue. I will close this issue and try to find the root cause on my side.
Thanks again!

Cherry-picking the result to here for anyone who encounter similar issue:

Thanks for responding on the issues page. I found the root cause. There was a bad guava sources jar in the artifactory that I was using.


[NETBEANS-1313] Start NetBeans without printing to console

there is an option
-J-Dnetbeans.logger.console=true -J-ea
in netbeans/etc/netbeans.conf
That should be removed for the release. We want NetBeans to start without
printing anything to the console.

This is not for master but for release10 branch, once Laszlo creates it.

+1

This is good, but isn't this only valid on release branches?

Yes this should only be on the release branch - in the past only the -J-ea was removed. I think that is enough: If you start netbeans from a shell, I like to see output from the called programm. If started from the GUI (the output is discarded anyway).

I agree with matthiasblaesing here: "If you start netbeans from a shell, I like to see output from the called programm." But this patch reverses that? What's the rationale for this?


20160902 014800 after halt wait for emergency response

This PR addresses multiple customers reporting their long protocols were stopping at seemingly random places in the protocol. Looking into their log files, we found the motor driver and smoothieboard's serial handshake was losing state when M112 commands were sent.
To prevent this, this PR has the motor driver send M112, then wait for the Smoothieboard to specifically respond "Emergency Stop Requested". Only then will the motor driver return back to sending a home command. This is a quick fix, as opposed to just rewriting/replacing the motor driver in 1.x

failed running longer protocol. Perhaps the best route it to replace the motor driver completely


Remove duplicate entry for cable cards

The commit removes duplicate entry from config JSONs w.r.t identify LEDs for cable cards and merge the
exclusive data under one group.

jenkins -> run tests please

jenkins -> run tests please