Support for extending builders by pointing to a python script

Similar to renderers.

A variety of other renderers/styles would be beneficial for customizing quartodoc, I think.
Perhaps a QmdRenderer wouldn't be too hard an extension?
I just playing around with your dascore example trying to inherit from the MdRenderer to auto-document the parameter docstrings in more of a numpy doc style. I realized that I could just be rendering to *.qmd instead and using all of quarto basic markdown formatting tools, including callout blocks, divs and spans, executable python code and its outputs to go along with the examples section... with a basic QmdRenderer, we could write entire docstrings using regular markdown

Hey, thanks for weighing in!
A QmdRenderer seems great. Right now, quartodoc writes to .qmd files, so you should be able to include executable python code blocks. For example, the shiny example renderer adds {shinylive} blocks that get built by quarto.
Rendering warnings and notes sections. Currently, griffe doesn't have dataclasses for warnings and notes (currently, they are just the more general DocstringSectionText), but if we had quartodoc's docstring_section_narrow convert them into classes (e.g. a DocstringSectionNotes class), it should be easy to have a QmdRenderer customize the rendering of those sections.
Rendering see also section. quartodoc already patches in a DocstringSectionSeeAlso, so we should be able to convert that to a quarto callout right away.
It looks like this would also be useful for shiny docs (cc @jcheng5). I'm happy to take a QmdRenderer PR that produces something similar to numpy.org/doc, but can also take a pass at this next week :).

I started a very (very) preliminary version trying to here for a project I'm working on (yet to be made visible...). Looks something like this:

I was going to incorporate a more exact numpy style by refactoring the parameters/returns sections with classes/attributes like they do here and then styling via something like
section[id^=parameters] > h3 {
  .... < header in numpy style > ....
}
section[id^=parameters] > p {
  .... < parameter description in numpy style > ....
}

Not sure if this is the way to go. I agree the section narrowing will be useful here to effectively extend griffe's parsing capability. I'll try my hand at PR when I find the time :)

Thanks for looking into this -- the rendered style looks great :). I'll be curious to see what it looks like with :::{#some_id, .some_class} styling!
In case it's useful, I often use this command to quickly tinker with quarto markdown:
# to see the HTML printed to stdout
quarto render test_file.md --to html --output -

# to see the pandoc AST
quarto render test_file.md --to native --output -

I think it would be neat to be able to use a custom function to generate the sidebar.
For example I'd like to include an entry in the sidebar for each child in separate building mode. So the child can be accessed from the section index, or directly just from the side bar.

I found my way to this issue while looking into how to customize the sidebar. Being able to extend the Builder class probably wouldn't be the easiest way to do this, but it does seem like a useful feature!


WIP Communicate between framework mscorlib and core framework System.Private.CoreLib

ref #108
Not very sure,
But it worked for me now,
Wait others to confirm

We need to get a unit test for this... Don't have a clear idea for how to do that off the top of my head

We could commit serialized files in both framework, unit test will pass if they can deserialize both of them from the 2 frameworks. We create explicit tests to create those files so if something else changes and break those tests, it's easy to commit new versions. What do you think ?

@nekenk1 yeah, I'd just save a file - one written by .NET framework, one by core, and have the opposites read each other back into the original result. That would work.

closed via #116


Additional functions - convenience and more

How do you feel exposing additional functions ?
Connect / Disconnect (manage connecting to lpass)
By exposing the Connect function, the user do not have to know anything about the cli syntax at all...
Register / Unregister
Register-LastPassVault is more complete than Register-SecretVault since we can have specific parameters for command / path without having to go check the doc.
eg:
Register-LassPassVault -VaultName MyVault -Command wsl

instead of
  $Params = @{
        ModuleName = 'SecretManagement.LastPass'
        Name = 'MyVault'
        VaultParameters = @{lpassCommand = wsl}
    }

Register-SecretVault @Params

This open the door to adding more CLI element into the module later on.
Good 👍 or meh 👎 ?
If good, I'll edit the Readme to take that into account.

I like this idea! But can it wait until after my PR goes in? Do you have anymore fixes for that or can I merge it in?

@TylerLeonhardt
Got it.
I'll open this on main after your PR is merged.

merged that one in :)


Ability to pass the template for the slider #49

I have done some research regarding #49, and as far as I know there is not way to access the scope in the compile function. Same happens for the template function. You can only access data in $scope inside the LinkingFunction.
Let me know if you would like to add this feature. I need it for a current project I am working on, so it would be perfect if I could fetch it directly from your repo.
Thank you.

I decided to allow custom templates via templateUrl. See commit 19d51a94bbcfe79aa5065c25f31b33a649efb47e.

One suggestion regarding this. Instead of having the default template in a separate file, you should add it to the templateCache in the run section of the module. Then you avoid the 404 error in http:///rzSliderTpl.html.
module('rzModule', []).run(function($templateCache) {
    var template = '' + // 0 The slider bar
            '' + // 1 Highlight between two handles
            '' + // 2 Left slider handle
            '' + // 3 Right slider handle
            '' + // 4 Floor label
            '' + // 5 Ceiling label
            '' + // 6 Label above left slider handle
            '' + // 7 Label above right slider handle
            ''; // 8 Range label when the slider handles are close ex. 15 -     17
  $templateCache.put('rzSliderTpl.html', template);
})

Implemented in #53. You can close this one.


Ensure full functionality of AntreaProxy with proxyAll enabled when kube-proxy presents

Depends on #6381
Resolve #6232
To ensure full functionality of AntreaProxy, except for handling ClusterIP from Nodes,
even when kube-proxy in iptables mode is present, certain key changes are implemented
when proxyAll is enabled:
The jump rules for the chains managed by Antrea, ANTREA-PREROUTING and ANTREA-OUTPUT
in nat table, are installed by inserting instead of appending to bypass the chain
KUBE-SERVICES performing Service DNAT managed by kube-proxy. Antrea ensures that
the jump rules take precedence over those managed by kube-proxy.
The iptables rules of nat table chain ANTREA-PREROUTING are like below, and they are
similar in chain ANTREA-OUTPUT.
-A ANTREA-PREROUTING -m comment --comment "Antrea: DNAT external to NodePort packets" -m set --match-set ANTREA-NODEPORT-IP dst,dst -j DNAT --to-destination <IP_ADDRESS>

The rule is to DNAT NodePort traffic, bypassing chain KUBE-SERVICES.
The iptables rules of raw table chains ANTREA-PREROUTING / ANTREA-OUTPUT are like
below:
1. -A ANTREA-PREROUTING -m comment --comment "Antrea: do not track incoming encapsulation packets" -m udp -p udp --dport 6081 -m addrtype --dst-type LOCAL -j NOTRACK
2. -A ANTREA-PREROUTING -m comment --comment "Antrea: drop Pod multicast traffic forwarded via underlay network" -m set --match-set CLUSTER-NODE-IP src -d <IP_ADDRESS>/4 -j DROP
3. -A ANTREA-PREROUTING -m comment --comment "Antrea: do not track request packets destined to external IPs" -m set --match-set ANTREA-EXTERNAL-IP dst -j NOTRACK
4. -A ANTREA-PREROUTING -m comment --comment "Antrea: do not track reply packets sourced from external IPs" -m set --match-set ANTREA-EXTERNAL-IP src -j NOTRACK
5. -A ANTREA-OUTPUT -m comment --comment "Antrea: do not track request packets destined to external IPs" -m set --match-set ANTREA-EXTERNAL-IP dst -j NOTRACK

Rules 1-2 are not new rules.
Rule 3 is to bypass conntrack for packets sourced from external and destined to
externalIPs, which also results in bypassing the chains managed by Antrea Proxy
and kube-proxy in nat table.
Rule 4 is to bypass conntrack for packets sourced from externalIPs, which also
results in bypassing the chains managed by Antrea Proxy and kube-proxy in nat
table.
Rule 5 is to bypass conntrack for packets sourced from local and destined to
externalIPs, which also results in bypassing the chains managed by Antrea Proxy
and kube-proxy in nat table.

The following are the benchmark results of a LoadBalancer Service configured with DSR mode.
The results of TCP_STREAM and TCP_RR (single TCP connection) are almost the same as that
before. The result of TCP_CRR (multiple TCP connections) performs better than before. One
reason should be that conntrack is skipped for LoadBalancer Services.
Test           v2.0 proxyAll     Dev proxyAll    Delta
TCP_STREAM     4933.97           4918.35         -0.32%
TCP_RR         8095.49           8032.4         -0.78%
TCP_CRR        1645.66           1888.93         +14.79%

TODO:

[x] In iptables nat table, ensure that Antrea iptables chain ANTREA-PREROUTING and ANTREA-OUTPUT are in the first rule of corresponding default iptables chains to skip kube-proxy chains.
[x] Add unit tests
[x] Add e2e tests? Whether to add a new Kind test [proxyAll=true, LoadBalancerMode=DSR, NodeIPAM=true, kube-proxy presents]
[x] Update related document.
[x] Update manifests
[x] PR / commit description
[x] Benchmark of LoadBalancer

/test-all

@tnqn @antoninbas @luolanzone @rajnkamr I would be very grateful if you could have another look at this PR when you are available.

/test-all
/test-ipv6-all
/test-ipv6-only-all

Thanks a lot for the efforts!
one nit: since you updated all AntreaProxy to Antrea Proxy in another PR, better to update here in antrea-proxy.md as well to avoid any dependency and another round of updates.

I can update document antrea-proxy.md in that PR.

/test-kind-ipv6-only-all
/test-kind-ipv6-all


Updated Docs

Fixes #147

Added link to github (fixed to sidebar bottom)
Added meta title

Make sure you exploratory test this by running npm start locally. The new anchor tag you added is stretching across the whole page. I would instead just add the link back to git at the bottom of the existing nav as another nav item and get rid of that fixed class.

Will do, thanks :)

Looks good!


@stigmat4j fixes and lib -> src

Nice! Thx!

@stigmat4j ,Until it is merged you could try to use this package:
https://www.npmjs.com/package/react-data-components-react-0.14


Unable to Download Dataset - Possible Region Restriction

Hi @rikba ,
First of all, thank you for providing this excellent resource! I encountered an issue when trying to download the dataset linked in your repository. It seems that the download is not working for me, and I suspect it might be due to regional restrictions as I'm located outside of Europe.
Could you please confirm if there are any geographical restrictions on the download? If so, are there any alternative ways to access the dataset from regions outside Europe? Any help or guidance would be greatly appreciated.
Thank you for your time and support!

Hi there, the download links are currently down. I ll fix them in a moment

I updated the links. Thanks for letting me know. I will upload bags with onboard footage after the conference proceedings have been published.


--no-build-isolation flag doesn't get passed to piptools compile

#311 added support for pip / pip-compile's --build-isolation / --no-build-isolation flag, but specifying --no-build-isolation does not actually pass that flag to the underlying piptools compile command.
To reproduce, I run the following on some requirements files that require build isolation to be disabled for locking:
pip-compile-multi --directory=requirements/ --no-build-isolation

Output:
ERROR executing python3.8 -m piptools compile --no-header --verbose --rebuild --upgrade --no-emit-index-url --output-file requirements.txt requirements.in

...

I suspect the issue is pip-compile-multi is dropping the --no-build-isolation flag somewhere because if I take the failing piptools compile command and add --no-build-isolation, it compiles successfully:
python3.8 -m piptools compile --no-build-isolation --no-header --verbose --rebuild --upgrade --no-emit-index-url --output-file requirements.txt requirements.in

Looking into how I can write a test for this.

Released in https://pypi.org/project/pip-compile-multi/2.4.5/


Unable to explicitly exclude only directory name in root

VSCode Version: 1.19.3
OS Version: OSX 10.13.2

Steps to Reproduce:

I have a project structure in the form of:

- path1/
  - file_to_exclude_1
  - file_to_exclude_2
  - file_to_exclude_3
- path2/
  - file_to_include_1
  - path1/
    - file_to_include_2

In either User Settings or Workspace Settings I have:

"files.exclude": {
        "path1/*": true
}

Expected result:

./path1/ and it's contents are excluded

contents are not shown in the file tree
search does not contain results from those files.

./path2/path1/ and it's contents not excluded

displays in file tree
shows search results within the path.

Actual result:

./path1/ and it's contents are excluded

contents are not shown in the file tree
search does not contain results from those files.

./path2/path1/ and it's contents are partially excluded

contents displays in file tree
search does not contain results from those files

I would expect that all files which are shown in the file tree to be searched (with the exception of anything excluded via the "files.exclude").  This, however, does not seem to be the current behavior.  This is also pretty confusing because when a file inside /path2/path1/ is "open" in a tab then it will still show search results for that file (when using Find in Files.
Based on usage of glob patterns I kind of expected /path1/ would be excluded completely but thought it was working based on only /path1/ being removed from the file tree display.

Does this issue occur when all extensions are disabled?: Yes

@roblourens
Upstream fix has been merged and is included in newest release:
https://github.com/BurntSushi/ripgrep/releases/tag/0.8.0

@robertohuertasm Any update on this?  There seem to have been a 2 releases since but it seems the update still hasn't been pulled in.

This is fixed in 1.22, insiders or stable release coming next week. The last ripgrep update was delayed from 1.21 due to some other issues.

:+1: Thanks~


Fix link error when building init.py on Windows.

I changed to 2 spaces and fix the ImportError.

Nice catch on os.path.join. LGTM


Conditional filters

A feature to conditionally filter items of an array would be very useful! This would be akin to jq's select function.
My feeling is that the jql syntax is stronger than jq in it's simplicity, and thus should not adopt the "function" type signature (select(...)). I propose the following:
Given the below JSON
[
    { "key": "give-me-this", "another-key": 42 },
    { "key": "dont-give-me-this", "another-key": 13 },
    { "key": "give-me-this", "another-key": 69 }
]

one could run this query:
$ jql '.|{"key" == "give-me-this"}' file.json
[
    { "key": "give-me-this", "another-key": 42 },
    { "key": "give-me-this", "another-key": 69 },
]

Inequalities would obviously be specified with !=. Other conditions could be supported as well, such as a way of checking if an array contains a specific element.
What do you think about this proposal? Also, thank you very much for making this amazing crate, it has been indispensable as a library in making mdzk happen!

Hi @kmaasrud!
Thanks for the feedback and for the kind words! Happy to hear that this crate helped you.
Regarding the proposal, I think that you've already highlighted one of the core aspect of jql, i.e. keeping its grammar as simple as possible. Indeed, I try to avoid adding selectors that would tend to make it more like some kind of pseudo-programming language (that's actually one of the things I don't like with jq - if one wants that it's presumably better to it code directly).
I'll wrap my mind around it and eventually make a PR.
Thanks again!

Thanks for the quick response! I would guess you can come up with a more natural solution, so that sounds great :smile:
I would be happy to help, if I can contribute in any way :+1:

Just to follow up, I've started to look at some grammar but I'm quite busy at the moment. Still keeping that on my radar.

Thanks a lot for the followup! It's understandable that things are busy, no need to rush anything :smile:
What grammars have you been trying out?

I think I'll probably go for something like .|={"key":"value", "some-other-key":"some-other-value"}

That's neat! I agree with the combination of | and = to keep the notion that you are "filtering" something.

Hey @kmaasrud !
A new version has been released with your feature request https://github.com/yamafaktory/jql#lens.
Thanks for the positive and constructive proposal 🚀!

This is great @yamafaktory! Thanks for the quick feature push 🚀
If I understand the README example correctly, lenses seem to work similarly to regular filters ("nested"|{"alpha","delta"} would produce the same as "nested"|={"alpha","delta"} wouldn't it?) But they also have the added function that you can filter on values, right? Like the example you made in the comment above: .|={"key":"value", "some-other-key":"some-other-value"} would return objects in that array having those specific key-value pairs?

Yes, lenses (name inspired by category theory but... not the same - this was to avoid repeating filter) are special filters.
If you do something like "nested"|{"alpha","delta"}" you're probably not going to match anything since filters only works on arrays.
My previous example was plain wrong since we just want to match keys.
To recap and to get back to your initial example, this is what you want to do:
 jql '.|={"give-me-this"}' file.json

Hope it's clear 🙈.

My previous example was plain wrong since we just want to match keys.

I think we might've misunderstood each other in that case. I would very much like to filter on key-value pairs, not just keys. Say I have an array of objects that have the fields "firstname" and "lastname". A use-case could be to make jql return all objects that have "lastename": "Johnson".
Is that possible with the current grammar?

Indeed, this is not possible, it will only match the keys not the values.
The reasoning was that if you want to match a value, a JSON value can be anything. This is clearly not possible or we would have to limit that to primitives that are not arrays or objects (way too complicated otherwise...and maybe useless too).
While I understand the need for picking array elements by keys, I might have miss why multiple array items might have redundant key/pair values.
But nothing is set in stones 🙂. I can still go for an addition in order to get .|={"key":"value", "some-other-key":"some-other-value"}

That sounds sensible, I must admit that I hadn't thought of that limitation - which ofc now is totally obvious 😅 Restricting it to primitives however, would be immensely useful!
I'm sorry if my request was a bit diffuse at the start. Nonetheless, lenses are a great addition to jql that I'm very happy you have added 🎉

@kmaasrud this time the latest release should finally match your initial request https://github.com/yamafaktory/jql#lens. I've released it as a major this time since it implies some internal changes which could potentially impact the users of the library.


Download URLs are wrong if no subset params are sent to rook in a workflow

Download URLs are wrong if no subset params are sent to rook in a workflow.
E.g.:
wf = ops.Subset(
            ops.Input(
                'rlds', ['CMIP6.CMIP.IPSL.IPSL-CM6A-LR.historical.r1i1p1f1.Amon.rlds.gr.v20180803']
        )
)

The workflow completes but the metalink has an invalid URL in it:
/usr/local/src/rook/https:/data.mips.copernicus-climate.eu/thredds/fileServer/esg_c3s-cmip6/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/historical/r1i1p1f1/Amon/rlds/gr/v20180803/rlds_Amon_IPSL-CM6A-LR_historical_r1i1p1f1_gr_185001-201412.nc

Fixed by PR #96


MBDirections  init return nil

v0.6.0
NSString token = @"pk.eyJ1IjoidG9ueWlvcyIsImEiOiJjaXU4MHo2dzYwMDFyMnlueHpkdTFtODZzIn0.o4m3pnlfCqUKGVCX-9_O***";
MBDirections *directions = [[MBDirections alloc] initWithAccessToken:token];
who can help me  why the directions is return  nil

I’m unable to reproduce this issue. Can you try to reproduce it in v0.7.0?

I’m unaware of any way directions would wind up nil with this code. If you still reproduce the issue in v0.7.0 or above, please reopen this issue and we’ll take another look.


Remove the "index" button in Cody chat for Enterprise users

The "index button" in the chat bar doesn't do anything for Enterprise users (since Enterprise doesn't use symf and JB doesn't support NLS). It's confusing and we should remove it.

This is fixed in #1308:

Note, after #1479 the look will be more compact and detailed.


[Snyk] Security upgrade socket.io-client from 3.1.3 to 4.8.0

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

frontend/package.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Denial of Service (DoS) SNYK-JS-WS-7266574
  169

Release notes

Package name: socket.io-client

4.8.0 - 2024-09-21Features
Custom transport implementations
The transports option now accepts an array of transport implementations:
import { io } from "socket.io-client";
import { XHR, WebSocket } from "engine.io-client";
const socket = io({
transports: [XHR, WebSocket]
});
Here is the list of provided implementations:

Transport
Description

Fetch
HTTP long-polling based on the built-in fetch() method.

NodeXHR
HTTP long-polling based on the XMLHttpRequest object provided by the xmlhttprequest-ssl package.

XHR
HTTP long-polling based on the built-in XMLHttpRequest object.

NodeWebSocket
WebSocket transport based on the WebSocket object provided by the ws package.

WebSocket
WebSocket transport based on the built-in WebSocket object.

WebTransport
WebTransport transport based on the built-in WebTransport object.

Usage:

Transport
browser
Node.js
Deno
Bun

Fetch
✅
✅ (1)
✅
✅

NodeXHR

✅
✅
✅

XHR
✅

NodeWebSocket

✅
✅
✅

WebSocket
✅
✅ (2)
✅
✅

WebTransport
✅
✅

(1) since v18.0.0
(2) since v21.0.0
Added in f4d898e and b11763b.
Test each low-level transports
When setting the tryAllTransports option to true, if the first transport (usually, HTTP long-polling) fails, then the other transports will be tested too:
import { io } from "socket.io-client";
const socket = io({
tryAllTransports: true
});
This feature is useful in two cases:

when HTTP long-polling is disabled on the server, or if CORS fails
when WebSocket is tested first (with transports: ["websocket", "polling"])

The only potential downside is that the connection attempt could take more time in case of failure, as there have been reports of WebSocket connection errors taking several seconds before being detected (that's one reason for using HTTP long-polling first). That's why the option defaults to false for now.
Added in 579b243.
Bug Fixes

accept string | undefined as init argument (bis) (60c757f)
allow to manually stop the reconnection loop (13c6d2e)
close the engine upon decoding exception (04c8dd9)
do not send a packet on an expired connection (#5134) (8adcfbf)

Dependencies

<EMAIL_ADDRESS>(diff and diff)
<EMAIL_ADDRESS>(diff)

4.7.5 - 2024-03-14

4.7.4 - 2024-01-12

4.7.3 - 2024-01-03

4.7.2 - 2023-08-02

4.7.1 - 2023-06-28

4.7.0 - 2023-06-22

4.6.2 - 2023-05-31

4.6.1 - 2023-02-20

4.6.0 - 2023-02-06

4.6.0-alpha2 - 2023-02-04

4.6.0-alpha1 - 2023-02-03

4.5.4 - 2022-11-22

4.5.3 - 2022-10-15

4.5.2 - 2022-09-02

4.5.1 - 2022-05-17

4.5.0 - 2022-04-23

4.4.1 - 2022-01-06

4.4.0 - 2021-11-18

4.3.2 - 2021-10-16

4.3.1 - 2021-10-15

4.3.0 - 2021-10-14

4.2.0 - 2021-08-30

4.1.3 - 2021-07-10

4.1.2 - 2021-05-17

4.1.1 - 2021-05-11

4.1.0 - 2021-05-11

4.0.2 - 2021-05-06

4.0.1 - 2021-03-31

4.0.0 - 2021-03-10

3.1.3 - 2021-03-12

    from socket.io-client GitHub release notes

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Denial of Service (DoS)

🎉 Snyk hasn't found any issues so far.
✅ code/snyk check is completed. No issues were found. (View Details)


"disable stack management" setting doesn't fully work

On 1.24.1 although I set disable stack management to true, a regular user can still do the following:

access stacks API - list
open the list of stacks from the dashboard or from the URL

Closing and re-opening https://github.com/portainer/portainer/issues/3930


YAML Conda environment

Hi, I've been trying to use this code so far unsuccessfully because of library versioning. Could you please share in the repo the yml file to recreate exactly your environment?. Something in the lines of conda env export > environment.yml

Hello Dave.  Fore your notes, I'm running this on a conda environment without a .yml file. You should be able to download the files, put your keys that you're authorized to use (public, private) and then you can run the code.  You can run this on versions of pandas as low as 2.1.1
I'll see if I can get you a .yml file in the next week however as this would be more complete with that on here.  Thank you and have a good.
Best,


add token counting logic (#341)

Change Summary
在memory类中，增加了token counting的逻辑。token count会随着每一次的memory.update_history进行更新。增加了此feature后，可以在AgentFabric中灵活调用memory.get_token_count接口，获取token的消耗总量。
Related issue number
fix #341
Checklist

[x] The pull request title is a good summary of the changes - it will be used in the changelog
[x] Unit tests for the changes exist
[x] Run pre-commit install and pre-commit run --all-files before git commit, and passed lint check.
[x] Some cases need DASHSCOPE_TOKEN_API to pass the Unit Tests, I have at least pass the Unit tests on local
[x] Documentation reflects the changes where applicable
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

ut not pass， check the ut case


fix AnimationTester not getting its deps regenerated

This file was missing the  magic and thus wasn't getting its deps regenerated automatically in depgen.py.

Thanks!


OrbTk TextInput widgets like TextBox and PasswordBox could't call the local input method

I could't call my local input method when TextBox got focus. This problem leads to only English characters could be typed. Local input method should be called automatically like this(MS Chinese Input Method):

By the way, chinese charaters are displayed correctly because I have already added my Font(.ttf file) to the project.

Hello ! Thank you for reporting.
What is the name of the file font are you using ? Or can you provide a download link?
I would like to add it to Orbtk so at least we could display chinese characters.

I wouldn't advise you to use this font because of its licensing agreement. https://www.foundertype.com/index.php/FontInfo/index/id/217, it's NOT a free font.
Some open source fonts are a better fit for this project. Like https://source.typekit.com/source-han-serif/ and its github https://github.com/adobe-fonts/source-han-serif

Hello ! Thank you for reporting.
What is the name of the file font are you using ? Or can you provide a download link?
I would like to add it to Orbtk so at least we could display chinese characters.
I wouldn't advise you to use this font because of its licensing agreement. https://www.foundertype.com/index.php/FontInfo/index/id/217, it's NOT a free font.
Some open source fonts are a better fit for this project. Like https://source.typekit.com/source-han-serif/ and its github https://github.com/adobe-fonts/source-han-serif

Hello ! Thank you for reporting.
What is the name of the file font are you using ? Or can you provide a download link?
I would like to add it to Orbtk so at least we could display chinese characters.

I wouldn't advise you to use this font because of its licensing agreement. https://www.foundertype.com/index.php/FontInfo/index/id/217, it's NOT a free font.
Some open source fonts are a better fit for this project. Like https://source.typekit.com/source-han-serif/ and its github https://github.com/adobe-fonts/source-han-serif


cardano-wallet fails to connect to cardano-node after docker-compose down && docker-compose up

Context
I started the cardano-wallet and cardano-node using NETWORK=mainnet docker-compose up. I let the node fully sync and the wallet was functional. After doing docker-compose down and starting up again with NETWORK=mainnet docker-compose up, the wallet fails to connect to node with the following logs:
$ NETWORK=mainnet docker-compose up
Starting cardano-wallet_cardano-wallet_1 ... done
Starting cardano-wallet_cardano-node_1   ... done
Attaching to cardano-wallet_cardano-node_1, cardano-wallet_cardano-wallet_1
cardano-node_1    | Starting: /nix/store/b4hj6i49x89762mllqlqznmsa6n12wsh-cardano-node-exe-cardano-node-1.27.0/bin/cardano-node run
cardano-node_1    | --config /nix/store/r6ygkc694c1vfhikdx4dhsqwkim7gds0-config-0.json
cardano-node_1    | --database-path /data/db
cardano-node_1    | --topology /nix/store/mb0zb61472xp1hgw3q9pz7m337rmfx7f-topology.yaml
cardano-node_1    | --host-addr <IP_ADDRESS>
cardano-node_1    | --port 3001
cardano-node_1    | --socket-path /ipc/node.socket
cardano-node_1    |
cardano-node_1    |
cardano-node_1    |
cardano-node_1    |
cardano-node_1    |
cardano-node_1    | +RTS
cardano-node_1    | -N2
cardano-node_1    | -A16m
cardano-node_1    | -qg
cardano-node_1    | -qb
cardano-node_1    | --disable-delayed-os-memory-return
cardano-node_1    | -RTS
cardano-node_1    | ..or, once again, in a single line:
cardano-node_1    | /nix/store/b4hj6i49x89762mllqlqznmsa6n12wsh-cardano-node-exe-cardano-node-1.27.0/bin/cardano-node run --config /nix/store/r6ygkc694c1vfhikdx4dhsqwkim7gds0-config-0.json --database-path /data/db --topology /nix/store/mb0zb61472xp1hgw3q9pz7m337rmfx7f-topology.yaml --host-addr <IP_ADDRESS> --port 3001 --socket-path /ipc/node.socket      +RTS -N2 -A16m -qg -qb --disable-delayed-os-memory-return -RTS
cardano-wallet_1  | [cardano-wallet.main:Info:4] [2021-06-23 18:50:03.26 UTC] Running as v2021-06-11 (git revision: 1532352c75cfe02015873c4c82b0d76eb798dfd8) on x86_64-linux
cardano-wallet_1  | [cardano-wallet.main:Info:4] [2021-06-23 18:50:03.26 UTC] Command line: /bin/cardano-wallet serve --node-socket /ipc/node.socket --database /wallet-db --listen-address <IP_ADDRESS> --mainnet
cardano-wallet_1  | [cardano-wallet.main:Debug:4] [2021-06-23 18:50:03.26 UTC] ServeArgs {_hostPreference = Host "<IP_ADDRESS>", _listen = ListenOnPort 8090, _tlsConfig = Nothing, _nodeSocket = CardanoNodeConn "/ipc/node.socket", _networkConfiguration = MainnetConfig, _database = Just "/wallet-db", _syncTolerance = SyncTolerance 300s, _enableShutdownHandler = False, _poolMetadataSourceOpt = Nothing, _tokenMetadataSourceOpt = Nothing, _logging = LoggingOptions {loggingMinSeverity = Debug, loggingTracers = Tracers {applicationTracer = Const (Just Info), apiServerTracer = Const (Just Info), tokenMetadataTracer = Const (Just Info), walletEngineTracer = Const (Just Info), walletDbTracer = Const (Just Info), poolsEngineTracer = Const (Just Info), poolsDbTracer = Const (Just Info), ntpClientTracer = Const (Just Info), networkTracer = Const (Just Info)}, loggingTracersDoc = Nothing}}
cardano-wallet_1  | [cardano-wallet.main:Info:4] [2021-06-23 18:50:03.26 UTC] Wallet databases: Using directory: /wallet-db
cardano-wallet_1  | [cardano-wallet.application:Info:4] [2021-06-23 18:50:03.26 UTC] Wallet backend server starting. Using /ipc/node.socket.
cardano-wallet_1  | [cardano-wallet.application:Info:4] [2021-06-23 18:50:03.26 UTC] Node is Haskell Node on mainnet.
cardano-wallet_1  | [cardano-wallet.token-metadata:Notice:4] [2021-06-23 18:50:03.27 UTC] No token metadata server is configured.
cardano-wallet_1  | [cardano-wallet.token-metadata:Notice:4] [2021-06-23 18:50:03.27 UTC] No token metadata server is configured.
cardano-wallet_1  | [cardano-wallet.token-metadata:Notice:4] [2021-06-23 18:50:03.27 UTC] No token metadata server is configured.
cardano-wallet_1  | [cardano-wallet.token-metadata:Notice:4] [2021-06-23 18:50:03.27 UTC] No token metadata server is configured.
cardano-wallet_1  | [cardano-wallet.pools-db:Info:4] [2021-06-23 18:50:03.27 UTC] Starting connection pool for /wallet-db/stake-pools.sqlite
cardano-wallet_1  | [cardano-wallet.main:Info:4] [2021-06-23 18:50:03.37 UTC] Wallet backend server listening on http://<IP_ADDRESS>:8090/
cardano-wallet_1  | [cardano-wallet.pools-engine:Info:24] [2021-06-23 18:50:03.42 UTC] Chain following starting. Requesting intersection using 2160 checkpoints, the latest being f7a69bf8<-[ba0cee75-32699645#5879470]
cardano-wallet_1  | [cardano-wallet.network:Notice:15] [2021-06-23 18:50:03.52 UTC] Couldn't connect to node (x2). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Notice:13] [2021-06-23 18:50:03.52 UTC] Couldn't connect to node (x2). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Notice:33] [2021-06-23 18:50:03.67 UTC] Couldn't connect to node (x2). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:13] [2021-06-23 18:50:03.77 UTC] Couldn't connect to node (x3). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:15] [2021-06-23 18:50:03.77 UTC] Couldn't connect to node (x3). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:33] [2021-06-23 18:50:03.92 UTC] Couldn't connect to node (x3). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.ntp-client:Warning:19] [2021-06-23 18:50:04.01 UTC] local clock is drifting by 1191391μs
cardano-wallet_1  | [cardano-wallet.network:Warning:13] [2021-06-23 18:50:04.27 UTC] Couldn't connect to node (x4). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:15] [2021-06-23 18:50:04.27 UTC] Couldn't connect to node (x4). Retrying in a bit...
cardano-node_1    | Listening on http://<IP_ADDRESS>:12798
cardano-wallet_1  | [cardano-wallet.network:Warning:33] [2021-06-23 18:50:04.43 UTC] Couldn't connect to node (x4). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:15] [2021-06-23 18:50:05.02 UTC] Couldn't connect to node (x5). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:13] [2021-06-23 18:50:05.02 UTC] Couldn't connect to node (x5). Retrying in a bit...
cardano-node_1    | [32541839:cardano.node.networkMagic:Notice:5] [2021-06-23 18:50:04.42 UTC] NetworkMagic 764824073
cardano-node_1    | [32541839:cardano.node.basicInfo.protocol:Notice:5] [2021-06-23 18:50:04.42 UTC] Byron; Shelley
cardano-node_1    | [32541839:cardano.node.basicInfo.version:Notice:5] [2021-06-23 18:50:04.42 UTC] 1.27.0
cardano-node_1    | [32541839:cardano.node.basicInfo.commit:Notice:5] [2021-06-23 18:50:04.42 UTC] 8fe46140a52810b6ca456be01d652ca08fe730bf
cardano-node_1    | [32541839:cardano.node.basicInfo.nodeStartTime:Notice:5] [2021-06-23 18:50:04.42 UTC] 2021-06-23 18:50:04.4241607 UTC
cardano-node_1    | [32541839:cardano.node.basicInfo.systemStartTime:Notice:5] [2021-06-23 18:50:04.42 UTC] 2017-09-23 21:44:51 UTC
cardano-node_1    | [32541839:cardano.node.basicInfo.slotLengthByron:Notice:5] [2021-06-23 18:50:04.42 UTC] 20s
cardano-node_1    | [32541839:cardano.node.basicInfo.epochLengthByron:Notice:5] [2021-06-23 18:50:04.42 UTC] 21600
cardano-node_1    | [32541839:cardano.node.basicInfo.slotLengthShelley:Notice:5] [2021-06-23 18:50:04.42 UTC] 1s
cardano-node_1    | [32541839:cardano.node.basicInfo.epochLengthShelley:Notice:5] [2021-06-23 18:50:04.42 UTC] 432000
cardano-node_1    | [32541839:cardano.node.basicInfo.slotsPerKESPeriodShelley:Notice:5] [2021-06-23 18:50:04.42 UTC] 129600
cardano-node_1    | [32541839:cardano.node.basicInfo.slotLengthAllegra:Notice:5] [2021-06-23 18:50:04.42 UTC] 1s
cardano-node_1    | [32541839:cardano.node.basicInfo.epochLengthAllegra:Notice:5] [2021-06-23 18:50:04.42 UTC] 432000
cardano-node_1    | [32541839:cardano.node.basicInfo.slotsPerKESPeriodAllegra:Notice:5] [2021-06-23 18:50:04.42 UTC] 129600
cardano-node_1    | [32541839:cardano.node.basicInfo.slotLengthMary:Notice:5] [2021-06-23 18:50:04.42 UTC] 1s
cardano-node_1    | [32541839:cardano.node.basicInfo.epochLengthMary:Notice:5] [2021-06-23 18:50:04.42 UTC] 432000
cardano-node_1    | [32541839:cardano.node.basicInfo.slotsPerKESPeriodMary:Notice:5] [2021-06-23 18:50:04.42 UTC] 129600cardano-node_1    | [32541839:cardano.node.addresses:Notice:5] [2021-06-23 18:50:04.42 UTC] [SocketInfo <IP_ADDRESS>:3001]
cardano-node_1    | [32541839:cardano.node.diffusion-mode:Notice:5] [2021-06-23 18:50:04.42 UTC] InitiatorAndResponderDiffusionMode
cardano-node_1    | [32541839:cardano.node.dns-producers:Notice:5] [2021-06-23 18:50:04.42 UTC] [DnsSubscriptionTarget {dstDomain = "relays-new.cardano-mainnet.iohk.io", dstPort = 3001, dstValency = 1}]
cardano-node_1    | [32541839:cardano.node.ip-producers:Notice:5] [2021-06-23 18:50:04.42 UTC] IPSubscriptionTarget {ispIps = [], ispValency = 0}
cardano-wallet_1  | [cardano-wallet.network:Warning:33] [2021-06-23 18:50:05.18 UTC] Couldn't connect to node (x5). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:13] [2021-06-23 18:50:06.27 UTC] Couldn't connect to node (x6). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:15] [2021-06-23 18:50:06.27 UTC] Couldn't connect to node (x6). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:33] [2021-06-23 18:50:06.43 UTC] Couldn't connect to node (x6). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:13] [2021-06-23 18:50:08.28 UTC] Couldn't connect to node (x7). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.network:Warning:15] [2021-06-23 18:50:08.28 UTC] Couldn't connect to node (x7). Retrying in a bit...
cardano-wallet_1  | [cardano-wallet.pools-engine:Warning:25] [2021-06-23 18:50:08.37 UTC] Still not syncing. Applied 0 blocks, 0 rollbacks in the last 5.0024811s. Currently at slot 32699645. (not applying blocks)
cardano-wallet_1  | [cardano-wallet.network:Warning:33] [2021-06-23 18:50:08.43 UTC] Couldn't connect to node (x7). Retrying in a bit...

These warning messages keep going forever.
Essential Information

Version:      v2021-06-11
Platform:     WSL 2 on Windows
Installation:  Checked out v2021-06-11 tag from GitHub
Network:      mainnet

Seems to start eventually. Can just take very long time.

This would probably be because cardano-node is rebuilding its ledger DB, which can take a while.
cardano-node only creates the socket file after this rebuild has finished.


Profile XSLT option missing

In VS2017 Pro, I don't have any Profile XSLT option in XML menu

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 35fb6787-7c57-d5f5-8fec-8105c3280dc7
Version Independent ID: efc508af-6e6b-bd3a-6052-01d29aa3fde7
Content
Content Source
Service: unspecified

@polakovicp Is it grayed out, or just doesn't appear at all? If it's grayed out, it will become enabled if you open an XSLT file.

Doesn't appear at all.
XML menu item appears when .xsl file is opened and this is what I get:
[image: Inline images 1]
On 24 February 2018 at 00:07, Genevieve Warren<EMAIL_ADDRESS>wrote:

@polakovicp https://github.com/polakovicp Is it grayed out, or just
doesn't appear at all? If it's grayed out, it will become enabled if you
open an XSLT file.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/visualstudio-docs/issues/540#issuecomment-368164662,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAf6jlFcjbif2PUoXV8k5n5Jtc-MuCYFks5tX0TIgaJpZM4SBDMY
.

@polakovicp I will check. Perhaps the profiler is only available in the Enterprise edition.

@polakovicp The Xslt profiler is only available in the Enterprise edition.


Unseals I18n class + subclass documentation for locales customizations re: #2

This closes #2
Includes #3 Thanks @jbroadway!
I also fixed a small documentation problem and added proper syntax
highlighting to ReadMe.
I've tested this and using it in a project this way :+1:

Hi @camsjams I just want your review here, I'll merge this if you're ok with it 👍

Looks good to me - tested it locally and works as expected!


Add context information to all errors

Our error messages currently don't have any context, which make them hard to debug:
~/code/ord$ RUST_LOG=debug cargo run server
    Finished dev [unoptimized + debuginfo] target(s) in 0.42s
     Running `target/debug/ord server`
[2022-09-13T00:50:28Z INFO  ord::index] Connection to Bitcoin Core RPC server at <IP_ADDRESS>:8332 using credentials from `/home/satoshi/.bitcoin/.cookie`
[2022-09-13T00:50:34Z DEBUG bitcoincore_rpc] JSON-RPC request: getblockhash [0]
error: Permission denied (os error 13)

We should either print stack traces, add context information, or both.

This would be a huge undertaking, and I'm not sure if it's worth it.


Schema editor (Wikimedia Commons) doesn't scroll down

Testing various brand new Commons features just created by @wetneb in #5322 and others. Most things seem to work super swimmingly. However, while constructing a schema in the schema editor, the schema refuses to scroll down.
Video showing the behavior:
https://user-images.githubusercontent.com/9881645/195176893-ed26fb2c-8c78-48da-9582-face5042f037.mov
Happens with this project: Jan-Geerling-photographs-Rotterdam-1503.openrefine (1).tar.gz
I'm testing with Version 3.7-SNAPSHOT [5f3fa43] on MacOS 12.6 using Chrome Version 105.0.5195.125 (Official Build) (arm64)

I closed and re-opened the project, and scrolling is now possible. However, there's a blue border at the bottom.


It might be useful Old Hungarian for UI

@marekjez86 @google-admin
There are ligatures in Old Hungarian fonts, which aren't recommended for UI. These functions work only in text editors like LO.
The UI version could be smaller file, than original Old Hungarian font. Also required Old Hungarian numbers with Capital letters size.

@marekjez86 @google-admin
The font (source already given in PR #298 ) need to follow the Old Hungarian part of UNICODE standard  (chart downloadable from page http://unicode.org/charts/PDF/U10C80.pdf ) except it would be had ltr form of the letters. A few  terminal use ltr direction, yet, despite of the fact, the standard ( https://www.unicode.org/versions/Unicode8.0.0/UnicodeStandard-8.0.pdf ) describe it as rtl script.
I wrote these informations because of that, it would be archived.
So, you don't need to do anything, just merge the PR #298

@marekjez86 Marek, you are already know my opinion.

@marekjez86 There are a pull request #306

@marekjez86 PR #398 and #399  resolve NotoSansOldHungUI's problems. Prepare the wrong rendering commands, rename to NotoSansOldHungarianUI.

@marekjez86 What are missing from this font?

@marekjez86 If you write for me, what are missing, I try resolve that.


Wrap and Wrapf functions, remove go convey and fix some tests

Imported from https://github.com/RoseRocket/xerrs/pull/7
Plus fixing tests and removing go convey package.

@sanggonlee @nesv thanks for contributing! Amazing work.


[Feature][Dubbo-python] Implement the basic functions of an RPC framework.

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component
Python SDK (apache/dubbo-python)
Descriptions
This is a subtask of the GSoC project. (Relevant repository: dubbo-python)
The completed milestones include:

User API Calls: Users can reference and expose services through the Client and Server.
Proxy Layer: Abstracted and implemented RpcCallable (Proxy) and ServiceHandler (Invoker).
Protocol Layer: Implemented the Triple protocol, fully compatible with the gRPC protocol. Also supports multiple compression methods, including Identity, Gzip, and Bzip2.
Transport Layer: Based on asyncio and combined with the h2 library, the Http2 protocol is implemented, along with connection-level DATA frame flow control, stream-level frame inbound and outbound order control, and stream multiplexing. And it supports significantly improving asyncio's performance by incorporating uvloop.
Serialization Layer: Supports user-defined serialization and deserialization methods.
Plugin Extension Mechanism: Achieved plugin registration and loading through importlib and registries.
Logging Wrapper: Abstracted and encapsulated logging, including log coloring, console output, and log file output.

Note:
According to the official report from uvloop(http://magic.io/blog/uvloop-blazing-fast-python-networking/), using uvloop is 2-4 times faster than using asyncio alone. The reason for not using uvloop fully is that its not supported on windows.

Related issues
No response
Are you willing to submit a pull request to fix on your own?

[X] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Completed in https://github.com/apache/dubbo-python/pull/34


Edit bugs

:tada: This PR is included in version 0.279.0 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Thanks for wanting to contribute to Bootstrap by sending this pull request!
Unfortunately, your pull request seems to have some problems:

Changes must be made to the original Sass or Less source code file(s), not just the compiled CSS file(s).

You'll need to fix these mistakes and revise your pull request before we can proceed further.
Once you've fixed these problems, you can either ask the maintainers to re-open this pull request, or you can create a new pull request.
Thanks!
(Please note that this is a fully automated comment.)

Tests passed. Automated cross-browser testing via Sauce Labs and Travis CI shows that the JavaScript changes in this pull request are: CONFIRMED
Commit: 71c1e65d33ad993461359c61aa31180653e0ed0e
Build details: https://travis-ci.org/twbs-savage/bootstrap/builds/147844832
Docs preview: http://preview.twbsapps.com/c/${commitSha.sha}
(Please note that this is a fully automated comment.)


How to unref

Hi,
How do I unref this so that it will not hold up my process just by being alive? Similar to https://nodejs.org/api/net.html#net_socket_unref but on the whole stompit layer (reconnects and all).

Ensure the channel pool and all channels in use are closed. It's currently undocumented but the channel pool class has a close method which closes all of its owned channels and aborts pending reconnects.
If you're using the client class then call the disconnect method.
Stompit won't keep the process alive if it doesn't have any connections open.

Thanks for the tip.  Maybe abort should also kill the client? Or a close method be added to ConnectFailover to call abort and kill the client if there is one. For now I was able to add my own close wrapper and got by. Thanks!


Unexpected output with parallel boundary edges

When decoding this matching graph:
from pymatching import Matching
import matplotlib.pyplot as plt

m = Matching()
m.set_boundary_nodes({0, 3, 4})
m.add_edge(0, 1, fault_ids=0, weight=2.6, merge_strategy='independent')
m.add_edge(1, 2, fault_ids=1, weight=2.6, merge_strategy='independent')
m.add_edge(2, 3, fault_ids=2, weight=5.3, merge_strategy='independent')
m.add_edge(2, 4, fault_ids=3, weight=2.6, merge_strategy='independent')
m.add_edge(0, 3, weight=0.0)
m.add_edge(0, 4, weight=0.0)
m.add_edge(4, 3, weight=0.0)

z_error = m.decode([0, 0, 1, 0, 0])

print(z_error)

pymatching outputs [1 1 0 0] but I would have expected [0 0 0 1]. Do you know what the reason could be for this? Thanks!

Hi Basudha, thanks for flagging this, it's now been fixed in PR #86 (which correctly outputs [0 0 0 1] for your example) and the fix will be released in the next version of pymatching.


feat: duplicate published entry

Summary
Closes #981.
So basically added a new dropdown item Publish and duplicate  that brings the user to  create a new collection page prefilled with values from previously published entry. The user can make further changes before publishing the new duplicate entry.
Before:

After:

Thanks for this @barthc! What do you think about duplicating when you're not at publish time, would it be simple enough to add a duplicate function that doesn't require publishing?

What do you think about duplicating when you're not at publish time, would it be simple enough to add a duplicate function that doesn't require publishing?

Ok let's move the duplicating away from publishing time. I will update the PR shortly.

Moved the duplicate item.
workflow:

Non workflow:

Nice! Ideally it would be outside of that dropdown, but maybe its best to just do this for now as that entire toolbar needs to be reworked at some point anyway.

Just tested the demo and it works great! Since we're putting it in the publish dropdown, would you mind re-adding the Publish and Duplicate button as well? You were right on with that, just wanted to also allow duplication when not publishing.

Since we're putting it in the publish dropdown, would you mind re-adding the Publish and Duplicate button as well?

Ok sure.

Thanks @barthc! A lot of folks are going to be happy to see this!

Thank you @barthc!

Please put the option to duplicate without publishing it

Is there any way to disable the duplicate feature? In my case this breaks things since I have hidden fields that I don't want to have duplicated.


Working implementation for email notifications

Hi,
In this PR I've reworked a bit the way email notifications are implemented in the Genesis-generated pipelines, when some pipeline.email hash is specified in the ci.yml of some deployment.
You'll notice that I've got rid of the build-email-* script resources. I must say that modeling a script generation using a resource just doesn't fit with what Concourse mean by "resource"—It's supposed to be something that can have a new version (check) and from which one can get that version (get) or create a new one (put). Just using some ad-hoc Bash code just looks better.
The starkandwayne/concourse image is hardwired and possibly should rely on $pipeline->{pipeline}{task}{image} like elsewhere in the code. Don't hesitate to mention that in your review.
Also the Bash script code has ugly escape sequences. This come from the fact that the _gen_notifications subroutine is to be agnostic of the YAML indentation level from where it is invoked in the YAML tree. If you insist, I can try to write this script as a multi-line YAML string and see if it works. That would read a little bit better, I admit.
About the X-Concourse-Site-Env: MIME header, I didn't get it why it was here. I've also wondered where the ${CI_SITE_ENV} environment variable was supposed to come from, without being able to locate anything in Genesis or Concourse. So, I've dropped the feature here, that I've guessed to be experimental. We can always implement it again properly when we know more about it.
Best,
Benjamin

I've answered your remarks and pushed some adjustments to the docs. I let you guys have a look and approve if it's OK to you.


Fix: make NewOrderRequest serialization deterministic

Note: this is a breaking change as old formats will be serialized differently.
Creating NewOrders with an old version will simply fail until the user upgrades.

CI is failling because this needs a fix from our maker


🐞 Can't connect to docker daemon when using nerdctl

What is the issue?
I use nerdctl with buildkit and containerd (Rancher Desktop) to normally build, tag and push my "docker" images (OCI compatible). If I want to use the docker Dagger step as mentioned in the "quick start" here, I get the error that it couldn't connect to the docker daemon. I was told to create this issue by helderco#4068 in Discord.
Log output
11:09AM ERR failed to run docker: exit status 1    output=Client:  Context:    default 11:09AM ERR failed to run docker: exit status 1    output=Client:  Context:    default  Debug Mode: falseuildx (Docker Inc., v0.7.1)  Plugins:: Docker Compose (Docker Inc., v2.2.3)   buildx: Docker Buildx (Docker Inc., v0.7.1)   compose: Docker Compose (Docker Inc., v2.2.3)   scan: Docker Scan (Docker Inc., v0.16.0) ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? Server:pretty printing info ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? errors pretty printing info
Steps to reproduce

Use Rancher Desktop and get use nerdctl as your building tool.
Alias docker to nerdctl.
Try to build with dagger dagger do build in https://github.com/dagger/dagger/pkg/universe.dagger.io/examples/todoapp

Dagger version
0.2.4
OS version
macOS 11.6.4

Hey @Keyruu, If you use nerdctl with containerd this effectively means you do not have a docker daemon running, and thus, no socket as well. It should be technically possible to use dagger containerd instead or directly pointing to a buildkit daemon socket.
@shykes @aluzzardi I did do this approach with my buildkit-tekton project taking inspiration from pkg/buildkitd, but I think dagger could do the same thing more / less. One downside might be that dagger doesn't "control" the buildkitd version in all cases.

There's a doc page that hasn't been ported yet but it's still relevant: https://docs.dagger.io/1013/operator-manual/
We need to document how to make dagger work in other environments, including in the error message when the local docker socket isn't available.

I have attempted this with podman by:
podman run -d --name buildkitd --privileged moby/buildkit:latest
export BUILDKIT_HOST=podman-container://buildkitd
dagger do build

I get this error:
FTL failed to execute plan: error detecting platform failed to list workers: Unavailable: connection error: desc = "transport: Error while dialing dial podman-container: unknown network podman-container"

The workaround is to:
podman run -d --name buildkitd --privileged -p 1234:1234 moby/buildkit:latest --addr tcp://0
.0.0.0:1234
export BUILDKIT_HOST=tcp://localhost:1234
dagger do build

This seems like a hack, though.

podman-container:// support was merged in #2211 and will go out with tomorrow's release.


Add docker-compose file for preview 0.5.2

Add new docker-compose file for california preview release 0.5.2.  This includes new Docker Hub images for all Go services.

recheck


Moore-Penrose pseudoinverse

I don't know how useful it would be in general to have this function available.  At present my only use for it is that I'd like to experiment with a Moore-Penrose pseudoinverse to help me understand its role in a proof I'm reading.  Presumably there are more serious use cases.  I thought I would record the absence of the function as an issue, but can't claim any urgency for implementing it.  (As for my need to experiment, I think Matlab has the function, and I can learn enough Matlab to experiment with it if necessary.)

Moore-Penrose pseudoinverse can be implemented with svd. I have added pinv function to Linalg module. You can call from S/D/C/Z modules depending on the number types. Let me know if you find any bugs.

Thanks very much.  I appreciate this a lot.  I had started working on an implementation of pinv using svd but I didn't really know what I was doing--was just trying to follow information I found on the web.  I'm not sure it was working right, and apparently one has to make a decision about how small a number is to treat it as zero.  I wasn't sure what to do about that.  I just looked at your version, and I don't understand everything, but it looks like it deals with other issues I didn't know about.  It will be very nice to be able to use the Moore-Penrose inverse in OCaml.  There were other ways I had to experiment with it, but they were awkward.

Just checking: I understand that the very small numbers in the matrices below are effectively zero, and I should expect that they would not have been turned into zeros, right?  This behavior is what is  intended, correct?  I see that there's a place in the implementation that maps small numbers to zeros, but I guess you can still end up with non-zero zeros (so to speak) in the end result.
# module M = Owl.Mat;;
module M = Owl.Mat
# module L = Owl.Linalg.Generic;;
module L = Owl.Linalg.Generic
# let m = M.sequential 2 8;;

   C0 C1 C2 C3 C4 C5 C6 C7
R0  0  1  2  3  4  5  6  7
R1  8  9 10 11 12 13 14 15

val m : M.mat =
# let m' = L.pinv m;;

           C0           C1
R0  -0.135417    0.0520833
R1   -0.10119    0.0416667
R2 -0.0669643      0.03125
R3 -0.0327381    0.0208333
R4  0.0014881    0.0104167
R5  0.0357143 -6.93889E-18
R6  0.0699405   -0.0104167
R7   0.104167   -0.0208333

val m' : (float, Bigarray.float64_elt) L.t =
# M.(m *@ m' *@ m);;

            C0 C1 C2 C3 C4 C5 C6 C7
R0 -1.9984E-15  1  2  3  4  5  6  7
R1           8  9 10 11 12 13 14 15

- : (float, Bigarray.float64_elt) M.op_t2 =
# M.(m' *@ m *@ m');;

           C0           C1
R0  -0.135417    0.0520833
R1   -0.10119    0.0416667
R2 -0.0669643      0.03125
R3 -0.0327381    0.0208333
R4  0.0014881    0.0104167
R5  0.0357143 -1.56125E-17
R6  0.0699405   -0.0104167
R7   0.104167   -0.0208333

- : (float, Bigarray.float64_elt) M.op_t2 =

just wanted to add that I use pinv often in my work; thanks for having added this

@mars0i apologies for the late reply, I lost track of this issue. Yes, there is small numerical difference. You can use a map function to zero them out. I do not know if Scipy, Julia, or Matlab has any specific function to fix a value around certain range ... if you know, please suggest.
Although this can be achieved by map function, I think a specialised function would be more efficient.

No problem at all.  I don't have much experience with Matlab, and none with Scipy or Julia, though.  I like the idea of a specialized function.  Maybe pinv is a little bit of a special case because precise zeros as opposed to small numbers are theoretically what should be returned for certain elements; they have a special meaning.  However, Owl.Dense.Matrix.Generic.approx_equal and the other related functions there might be all that one needs in practice.


Mismatch when looking up referencing elements

If you have filter="url(#filter-10)" but are searching for just filter-1, this will get matched. This is what happens in Sketch when you have to 10 or more filters. Not sure if this will cause a problem with some versions of IE.

could you add a test for this please?


Build fail

How to resolve the issue ?
c:\Sample_Project\classsed-jest-part>jest ./js/index.test.js
No tests found, exiting with code 1
Run with --passWithNoTests to exit with code 0
In C:\Sample_Project\classsed-jest-part
9 files checked.
testMatch: /tests//.[jt]s?(x), **/?(.)+(spec|test).[tj]s?(x) - 2 matches
testPathIgnorePatterns: \node_modules\ - 9 matches
testRegex:  - 0 matches
Pattern: .\js\index.test.js - 0 matches

Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions. You'll find more on Jest docs help page. Thank you :)


Moving identityplatform (1), monitoring (1) resources to v1beta1 version

Moving identityplatform 1 resource to v1beta1 version

[ ] google_identity_platform_config

Moving monitoring 1 resource to v1beta1 version

[ ] google_monitoring_monitored_project

google_monitoring_monitored_project - blocked due to account doesn't have permission for project monitoring.

google_identity_platform_config - blocked due to account doesn't have permission for billing functionality.


HBASE-25510 Optimize TableName.valueOf from O(n) to O(1)

Optimize TableName.valueOf from O(n) to O(1). We can get benefits when the number of tables in the cluster is greater than dozens

I edited the summary to remove square brackets around the JIRA number.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+1 :green_heart:
mvninstall
4m 23s
master passed

+1 :green_heart:
compile
0m 48s
master passed

+1 :green_heart:
checkstyle
0m 25s
master passed

+1 :green_heart:
spotbugs
0m 45s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 47s
the patch passed

+1 :green_heart:
compile
0m 45s
the patch passed

+1 :green_heart:
javac
0m 45s
the patch passed

-0 :warning:
checkstyle
0m 24s
hbase-common: The patch generated 2 new + 17 unchanged - 0 fixed = 19 total (was 17)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
21m 25s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.

+1 :green_heart:
spotbugs
0m 54s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 12s
The patch does not generate ASF License warnings.

42m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2885

JIRA Issue
HBASE-25510

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux a852dd790e34 4.15.0-128-generic #131-Ubuntu SMP Wed Dec 9 06:57:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 3cc2468300

Default Java
AdoptOpenJDK-1.8.0_232-b09

checkstyle
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt

Max. process+thread count
85 (vs. ulimit of 30000)

modules
C: hbase-common U: hbase-common

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=3.1.12

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  8s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+1 :green_heart:
mvninstall
4m 23s
master passed

+1 :green_heart:
compile
0m 48s
master passed

+1 :green_heart:
checkstyle
0m 25s
master passed

+1 :green_heart:
spotbugs
0m 45s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 47s
the patch passed

+1 :green_heart:
compile
0m 45s
the patch passed

+1 :green_heart:
javac
0m 45s
the patch passed

-0 :warning:
checkstyle
0m 24s
hbase-common: The patch generated 2 new + 17 unchanged - 0 fixed = 19 total (was 17)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
21m 25s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.

+1 :green_heart:
spotbugs
0m 54s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 12s
The patch does not generate ASF License warnings.

42m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2885

JIRA Issue
HBASE-25510

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux a852dd790e34 4.15.0-128-generic #131-Ubuntu SMP Wed Dec 9 06:57:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 3cc2468300

Default Java
AdoptOpenJDK-1.8.0_232-b09

checkstyle
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt

Max. process+thread count
85 (vs. ulimit of 30000)

modules
C: hbase-common U: hbase-common

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=3.1.12

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...
Thank you very much for reviewing my code.

In face, i tryed to use ByteBuffer as hash key. But there ars some reasons i choose String finally.

Because we use hashmap, so we must choose a class as hash key. Therefore, we must convert one of String and ByteBuffer to the other.
Use ByteBuffer alse need to copy underlying array. If not, might cause memory leak.
The code for construct hash key(${namespace} + ':' + ${tablename}), String is more concise than ByteBuffer.
In my benchmark(code can find in jira attachment). The efficiency of String is a little better than ByteBuffer overall.

Benchmark Result For ByteBuffer:
Benchmark                        Mode  Cnt      Score      Error   Units
TestTableNameJMH.testBB1        thrpt   10  73319.634 ± 5162.112  ops/ms
TestTableNameJMH.testBB10       thrpt   10  69742.749 ± 1238.255  ops/ms
TestTableNameJMH.testBB100      thrpt   10  65220.820 ± 3357.727  ops/ms
TestTableNameJMH.testBB1000     thrpt   10  47865.385 ± 2510.229  ops/ms
TestTableNameJMH.testBB10000    thrpt   10  29383.002 ± 5535.025  ops/ms
TestTableNameJMH.testBB100000   thrpt   10  15333.042 ± 3451.444  ops/ms
TestTableNameJMH.testStr1       thrpt   10  17342.604 ± 2997.854  ops/ms
TestTableNameJMH.testStr10      thrpt   10  18562.438 ± 1984.190  ops/ms
TestTableNameJMH.testStr100     thrpt   10  16152.466 ± 3349.675  ops/ms
TestTableNameJMH.testStr1000    thrpt   10  14944.087 ± 1132.673  ops/ms
TestTableNameJMH.testStr10000   thrpt   10   9231.439 ± 2480.242  ops/ms
TestTableNameJMH.testStr100000  thrpt   10   7458.192 ± 1046.736  ops/ms
Benchmark Result For String:
Benchmark                        Mode  Cnt       Score       Error   Units
TestTableNameJMH.testBB1        thrpt   10   20719.730 ±   987.327  ops/ms
TestTableNameJMH.testBB10       thrpt   10   20698.180 ±   240.704  ops/ms
TestTableNameJMH.testBB100      thrpt   10   19331.825 ±   232.413  ops/ms
TestTableNameJMH.testBB1000     thrpt   10   18865.971 ±   260.727  ops/ms
TestTableNameJMH.testBB10000    thrpt   10   13420.776 ±  1473.567  ops/ms
TestTableNameJMH.testBB100000   thrpt   10    7209.563 ±  2928.791  ops/ms
TestTableNameJMH.testStr1       thrpt   10  133099.686 ±  5902.544  ops/ms
TestTableNameJMH.testStr10      thrpt   10  141280.563 ±  7157.877  ops/ms
TestTableNameJMH.testStr100     thrpt   10  127057.065 ± 11665.471  ops/ms
TestTableNameJMH.testStr1000    thrpt   10   85985.687 ± 18432.481  ops/ms
TestTableNameJMH.testStr10000   thrpt   10   51825.915 ±  1824.001  ops/ms
TestTableNameJMH.testStr100000  thrpt   10   19002.112 ±  3337.013  ops/ms

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...
Thank you very much for reviewing my code.

In face, i tryed to use ByteBuffer as hash key. But there ars some reasons i choose String finally.

Because we use hashmap, so we must choose a class as hash key. Therefore, we must convert one of String and ByteBuffer to the other.
Use ByteBuffer alse need to copy underlying array. If not, might cause memory leak.
The code for construct hash key(${namespace} + ':' + ${tablename}), String is more concise than ByteBuffer.
In my benchmark(code can find in jira attachment). The efficiency of String is a little better than ByteBuffer overall.

Benchmark Result For ByteBuffer:
Benchmark                        Mode  Cnt      Score      Error   Units
TestTableNameJMH.testBB1        thrpt   10  73319.634 ± 5162.112  ops/ms
TestTableNameJMH.testBB10       thrpt   10  69742.749 ± 1238.255  ops/ms
TestTableNameJMH.testBB100      thrpt   10  65220.820 ± 3357.727  ops/ms
TestTableNameJMH.testBB1000     thrpt   10  47865.385 ± 2510.229  ops/ms
TestTableNameJMH.testBB10000    thrpt   10  29383.002 ± 5535.025  ops/ms
TestTableNameJMH.testBB100000   thrpt   10  15333.042 ± 3451.444  ops/ms
TestTableNameJMH.testStr1       thrpt   10  17342.604 ± 2997.854  ops/ms
TestTableNameJMH.testStr10      thrpt   10  18562.438 ± 1984.190  ops/ms
TestTableNameJMH.testStr100     thrpt   10  16152.466 ± 3349.675  ops/ms
TestTableNameJMH.testStr1000    thrpt   10  14944.087 ± 1132.673  ops/ms
TestTableNameJMH.testStr10000   thrpt   10   9231.439 ± 2480.242  ops/ms
TestTableNameJMH.testStr100000  thrpt   10   7458.192 ± 1046.736  ops/ms
Benchmark Result For String:
Benchmark                        Mode  Cnt       Score       Error   Units
TestTableNameJMH.testBB1        thrpt   10   20719.730 ±   987.327  ops/ms
TestTableNameJMH.testBB10       thrpt   10   20698.180 ±   240.704  ops/ms
TestTableNameJMH.testBB100      thrpt   10   19331.825 ±   232.413  ops/ms
TestTableNameJMH.testBB1000     thrpt   10   18865.971 ±   260.727  ops/ms
TestTableNameJMH.testBB10000    thrpt   10   13420.776 ±  1473.567  ops/ms
TestTableNameJMH.testBB100000   thrpt   10    7209.563 ±  2928.791  ops/ms
TestTableNameJMH.testStr1       thrpt   10  133099.686 ±  5902.544  ops/ms
TestTableNameJMH.testStr10      thrpt   10  141280.563 ±  7157.877  ops/ms
TestTableNameJMH.testStr100     thrpt   10  127057.065 ± 11665.471  ops/ms
TestTableNameJMH.testStr1000    thrpt   10   85985.687 ± 18432.481  ops/ms
TestTableNameJMH.testStr10000   thrpt   10   51825.915 ±  1824.001  ops/ms
TestTableNameJMH.testStr100000  thrpt   10   19002.112 ±  3337.013  ops/ms

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...
Thank you very much for reviewing my code.

In face, i tryed to use ByteBuffer as hash key. But there ars some reasons i choose String finally.

Because we use hashmap, so we must choose a class as hash key. Therefore, we must convert one of String and ByteBuffer to the other.
Use ByteBuffer alse need to copy underlying array. If not, might cause memory leak.
The code for construct hash key(${namespace} + ':' + ${tablename}), String is more concise than ByteBuffer.
In my benchmark(code can find in jira attachment). The efficiency of String is a little better than ByteBuffer overall.

Benchmark Result For ByteBuffer:
Benchmark Mode Cnt Score Error Units
TestTableNameJMH.testBB1 thrpt 10 73319.634 ± 5162.112 ops/ms
TestTableNameJMH.testBB10 thrpt 10 69742.749 ± 1238.255 ops/ms
TestTableNameJMH.testBB100 thrpt 10 65220.820 ± 3357.727 ops/ms
TestTableNameJMH.testBB1000 thrpt 10 47865.385 ± 2510.229 ops/ms
TestTableNameJMH.testBB10000 thrpt 10 29383.002 ± 5535.025 ops/ms
TestTableNameJMH.testBB100000 thrpt 10 15333.042 ± 3451.444 ops/ms
TestTableNameJMH.testStr1 thrpt 10 17342.604 ± 2997.854 ops/ms
TestTableNameJMH.testStr10 thrpt 10 18562.438 ± 1984.190 ops/ms
TestTableNameJMH.testStr100 thrpt 10 16152.466 ± 3349.675 ops/ms
TestTableNameJMH.testStr1000 thrpt 10 14944.087 ± 1132.673 ops/ms
TestTableNameJMH.testStr10000 thrpt 10 9231.439 ± 2480.242 ops/ms
TestTableNameJMH.testStr100000 thrpt 10 7458.192 ± 1046.736 ops/ms
Benchmark Result For String:
Benchmark Mode Cnt Score Error Units
TestTableNameJMH.testBB1 thrpt 10 20719.730 ± 987.327 ops/ms
TestTableNameJMH.testBB10 thrpt 10 20698.180 ± 240.704 ops/ms
TestTableNameJMH.testBB100 thrpt 10 19331.825 ± 232.413 ops/ms
TestTableNameJMH.testBB1000 thrpt 10 18865.971 ± 260.727 ops/ms
TestTableNameJMH.testBB10000 thrpt 10 13420.776 ± 1473.567 ops/ms
TestTableNameJMH.testBB100000 thrpt 10 7209.563 ± 2928.791 ops/ms
TestTableNameJMH.testStr1 thrpt 10 133099.686 ± 5902.544 ops/ms
TestTableNameJMH.testStr10 thrpt 10 141280.563 ± 7157.877 ops/ms
TestTableNameJMH.testStr100 thrpt 10 127057.065 ± 11665.471 ops/ms
TestTableNameJMH.testStr1000 thrpt 10 85985.687 ± 18432.481 ops/ms
TestTableNameJMH.testStr10000 thrpt 10 51825.915 ± 1824.001 ops/ms
TestTableNameJMH.testStr100000 thrpt 10 19002.112 ± 3337.013 ops/ms

I think the problem is we convert it back to bytes.
Could we introduce an internal methods which takes both string and bytes? So after checking the cache, we need to use bytes to create a new TableName, we just use it directly instead of converting the String back.

It is a bit strange that we convert bytes or ByteBuffer to String, and then convert back to store them...
Thank you very much for reviewing my code.

In face, i tryed to use ByteBuffer as hash key. But there ars some reasons i choose String finally.

Because we use hashmap, so we must choose a class as hash key. Therefore, we must convert one of String and ByteBuffer to the other.
Use ByteBuffer alse need to copy underlying array. If not, might cause memory leak.
The code for construct hash key(${namespace} + ':' + ${tablename}), String is more concise than ByteBuffer.
In my benchmark(code can find in jira attachment). The efficiency of String is a little better than ByteBuffer overall.

Benchmark Result For ByteBuffer:
Benchmark Mode Cnt Score Error Units
TestTableNameJMH.testBB1 thrpt 10 73319.634 ± 5162.112 ops/ms
TestTableNameJMH.testBB10 thrpt 10 69742.749 ± 1238.255 ops/ms
TestTableNameJMH.testBB100 thrpt 10 65220.820 ± 3357.727 ops/ms
TestTableNameJMH.testBB1000 thrpt 10 47865.385 ± 2510.229 ops/ms
TestTableNameJMH.testBB10000 thrpt 10 29383.002 ± 5535.025 ops/ms
TestTableNameJMH.testBB100000 thrpt 10 15333.042 ± 3451.444 ops/ms
TestTableNameJMH.testStr1 thrpt 10 17342.604 ± 2997.854 ops/ms
TestTableNameJMH.testStr10 thrpt 10 18562.438 ± 1984.190 ops/ms
TestTableNameJMH.testStr100 thrpt 10 16152.466 ± 3349.675 ops/ms
TestTableNameJMH.testStr1000 thrpt 10 14944.087 ± 1132.673 ops/ms
TestTableNameJMH.testStr10000 thrpt 10 9231.439 ± 2480.242 ops/ms
TestTableNameJMH.testStr100000 thrpt 10 7458.192 ± 1046.736 ops/ms
Benchmark Result For String:
Benchmark Mode Cnt Score Error Units
TestTableNameJMH.testBB1 thrpt 10 20719.730 ± 987.327 ops/ms
TestTableNameJMH.testBB10 thrpt 10 20698.180 ± 240.704 ops/ms
TestTableNameJMH.testBB100 thrpt 10 19331.825 ± 232.413 ops/ms
TestTableNameJMH.testBB1000 thrpt 10 18865.971 ± 260.727 ops/ms
TestTableNameJMH.testBB10000 thrpt 10 13420.776 ± 1473.567 ops/ms
TestTableNameJMH.testBB100000 thrpt 10 7209.563 ± 2928.791 ops/ms
TestTableNameJMH.testStr1 thrpt 10 133099.686 ± 5902.544 ops/ms
TestTableNameJMH.testStr10 thrpt 10 141280.563 ± 7157.877 ops/ms
TestTableNameJMH.testStr100 thrpt 10 127057.065 ± 11665.471 ops/ms
TestTableNameJMH.testStr1000 thrpt 10 85985.687 ± 18432.481 ops/ms
TestTableNameJMH.testStr10000 thrpt 10 51825.915 ± 1824.001 ops/ms
TestTableNameJMH.testStr100000 thrpt 10 19002.112 ± 3337.013 ops/ms

I think the problem is we convert it back to bytes.
Could we introduce an internal methods which takes both string and bytes? So after checking the cache, we need to use bytes to create a new TableName, we just use it directly instead of converting the String back.

I think the problem is we convert it back to bytes.
Could we introduce an internal methods which takes both string and bytes? So after checking the cache, we need to use bytes to create a new TableName, we just use it directly instead of converting the String back.

The matter is we can't believe outside bytes(because it can be modifyed outside). So we have to go through two conversions. The diff is below:

bytes -> string -> bytes
bytes -> string + bytes -> inner bytes

So, I think we choose 1 here is not a problem

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 59s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ master Compile Tests _

+1 :green_heart:
mvninstall
4m 19s
master passed

+1 :green_heart:
compile
0m 23s
master passed

+1 :green_heart:
shadedjars
8m 58s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 22s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m  5s
the patch passed

+1 :green_heart:
compile
0m 23s
the patch passed

+1 :green_heart:
javac
0m 23s
the patch passed

+1 :green_heart:
shadedjars
8m 58s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 20s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
1m 50s
hbase-common in the patch passed.

31m 36s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2885

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux d8aec776018a 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 0955a7a22e

Default Java
AdoptOpenJDK-1.8.0_282-b08

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/testReport/

Max. process+thread count
222 (vs. ulimit of 30000)

modules
C: hbase-common U: hbase-common

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 38s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ master Compile Tests _

+1 :green_heart:
mvninstall
5m 29s
master passed

+1 :green_heart:
compile
0m 33s
master passed

+1 :green_heart:
shadedjars
9m 26s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 30s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 54s
the patch passed

+1 :green_heart:
compile
0m 28s
the patch passed

+1 :green_heart:
javac
0m 28s
the patch passed

+1 :green_heart:
shadedjars
9m  2s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 24s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
2m 46s
hbase-common in the patch passed.

36m 12s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2885

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 34a65c8e5acd 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 0955a7a22e

Default Java
AdoptOpenJDK-11.0.10+9

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/testReport/

Max. process+thread count
213 (vs. ulimit of 30000)

modules
C: hbase-common U: hbase-common

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 28s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+1 :green_heart:
mvninstall
3m 56s
master passed

+1 :green_heart:
compile
0m 51s
master passed

+1 :green_heart:
checkstyle
0m 26s
master passed

+1 :green_heart:
spotbugs
0m 46s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 34s
the patch passed

+1 :green_heart:
compile
0m 48s
the patch passed

+1 :green_heart:
javac
0m 48s
the patch passed

-0 :warning:
checkstyle
0m 25s
hbase-common: The patch generated 2 new + 17 unchanged - 0 fixed = 19 total (was 17)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
18m  2s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.

+1 :green_heart:
spotbugs
0m 55s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 15s
The patch does not generate ASF License warnings.

38m 14s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2885

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux e6b40efee63a 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / 0955a7a22e

Default Java
AdoptOpenJDK-1.8.0_282-b08

checkstyle
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt

Max. process+thread count
96 (vs. ulimit of 30000)

modules
C: hbase-common U: hbase-common

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2885/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

I think the problem is we convert it back to bytes.
Could we introduce an internal methods which takes both string and bytes? So after checking the cache, we need to use bytes to create a new TableName, we just use it directly instead of converting the String back.

The matter is we can't believe outside bytes(because it can be modifyed outside). So we have to go through two conversions. The diff is below:

bytes -> string -> bytes
bytes -> string + bytes -> inner bytes

So, I think we choose 1 here is not a problem

In the constructor of TableName, we will copy the bytes out. So let's avoid the extra converting?

Any updates here?
Thanks.


chore: update github actions dependencies

This solves "Node.js 16 actions are deprecated" warnings when running the deploy pipeline.

Tested on multistack, multistage, multiaccount pipeline. No regressions found.


[SHARE] map scaleDenominator error after mapnik upgrade (4.5.9→4.6.1)

What HAPPENS:
After Mapnik is upgraded (4.5.9 → 4.6.1), the visibility range of map tiles becomes abnormal and the correct content fails to be displayed. If the tile display level range is set from level 1 to level 24, the tile actually turns into a blank tile at level 7.
<MaxScaleDenominator>279541132.0782576</MaxScaleDenominator>
<MinScaleDenominator>136494.6333503862</MinScaleDenominator>

After conducting tests and comparisons, it has been discovered that it is associated with the project version upgrade subsequent to the Mapnik upgrade.
Test code
const mapnik = require('@mapnik/mapnik');

const map = new mapnik.Map(256, 256);

map.load('./map4326.xml', function (err, _map) {
  if (err) throw err;
  _map.zoomToBox([112.5, 22.5, 118.125, 28.125]);
  console.log(`\r\n${_map.srs}\r\n`, _map.scale(), _map.scaleDenominator());
});

old proj string (epsg:4326)
<Map srs="+proj=longlat +datum=WGS84 +no_defs +type=crs">
  <Style name="My Style">
    <Rule>
      <PolygonSymbolizer fill="#f2eff9" />
      <LineSymbolizer stroke="rgb(50%,50%,50%)" stroke-width="0.1" />
    </Rule>
  </Style>
  <Layer name="world" srs="+proj=longlat +datum=WGS84 +no_defs">
    <StyleName>My Style</StyleName>
  </Layer>
</Map>

+proj=longlat +datum=WGS84 +no_defs
 0.02197265625 78.47377232142858

new proj string (epsg:4326)
<Map background-color="blue" srs="+proj=longlat +datum=WGS84 +no_defs +type=crs">
  <Style name="My Style">
    <Rule>
      <PolygonSymbolizer fill="#f2eff9" />
      <LineSymbolizer stroke="rgb(50%,50%,50%)" stroke-width="0.1" />
    </Rule>
  </Style>
  <Layer name="world" srs="+proj=longlat +datum=WGS84 +no_defs +type=crs">
    <StyleName>My Style</StyleName>
  </Layer>
</Map>

+proj=longlat +datum=WGS84 +no_defs +type=crs
 0.02197265625 8735660.375448717

The main difference is the last part of the proj string +type=crs
+proj=longlat +datum=WGS84 +no_defs
+proj=longlat +datum=WGS84 +no_defs +type=crs
After upgrading maonik v4.6.1, it is also correct to use 'epsg:4326';
For those who encounter similar errors subsequent to upgrading Mapnik, it is hoped to be helpful.

"If a proj-string contains a +type=crs option, then it is interpreted as a CRS definition. In particular geographic CRS are assumed to have axis in the longitude, latitude order and with degree angular unit. The use of proj-string to describe a CRS is discouraged. It is a legacy means of conveying CRS descriptions: use of object codes (EPSG:XXXX typically) or WKT description is recommended for better expressivity.*

If a proj-string does not contain +type=crs, then it is interpreted as a coordination operation / transformation."

ref https://proj.org/en/9.5/development/reference/functions.html#c.proj_create


nyc+jest reports unknown for unit tests, works fine for integration tests

Hello,
I was trying to get NYC (latest version) running with no success the past afternoon. We're using Jest (latest version) as our test runner and unfortunately, running Jest with the --coverage flag didn't work for us in integration tests (getting "unknowns"), so I added NYC to our deployment scripts.
Interestingly, it works perfect in our integration tests that spawn a server using beforeEach() and correctly outputs coverage data. However, it doesn't work at all in any (unit) test, where a subprocess server is not spawned. If a project contains some tests that spawn a server and some that don't, coverage will be reported for the ones that spawn a server and missed for all other.
Jest --coverage works for our unit tests and correctly reports coverage, so we will temporarily use Jest to cover unit tests and NYC to cover integration tests. A single solution would be greatly appreciated though.
I've provided a minimal repo that reproduces the issue. There's really nothing more than NYC and Jest, a trivial function and a trivial test, so it seems the problem might lie somewhere in the combination of NYC & Jest?
Thank you for any feedback / ideas.
Expected Behavior
NYC should correctly report coverage after running unit tests with Jest.
Observed Behavior
The reports below are taken from runs against the provided repo.
NYC reports unknown coverage:
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
----------|----------|----------|----------|----------|----------------|

When ran with the --all flag, the report is still broken:
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |        0 |      100 |        0 |        0 |                |
 app.js   |        0 |      100 |        0 |        0 |          1,3,6 |
----------|----------|----------|----------|----------|----------------|

Interestingly, running jest with --coverage flag works fine:
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |    66.67 |      100 |       50 |    66.67 |                |
 app.js   |    66.67 |      100 |       50 |    66.67 |              6 |
----------|----------|----------|----------|----------|----------------|

Bonus Points! Code (or Repository) that Reproduces Issue
https://github.com/mnmkng/nyc-jest-issue
Forensic Information
Operating System: MacOS High Sierra 10.13.1
Environment Information: Node 8.9.0, NPM 5.5.1.

jest has istanbuljs libraries built in, so you do not need to set it up with nyc.

@JaKXz I am aware that jest has Istanbul built in. It doesn't explain the issue though, nor does it help me get correct coverage.
The issue is that full coverage works neither using nyc nor jest. Either I only get unit tests working (jest) or integration tests (nyc). I did not raise the issue with jest, since it is mainly a testing framework and "coverage of subprocesses" seems like a niche.
nyc claims that it can cover subprocesses (which is why I've used it in the first place) and it does. It should also cover simple unit tests, but it doesn't. And I feel that must be a nyc issue?
Or perhaps jest does something to the files that prevents nyc from correctly instrumenting them?
Could you please take another quick look at it?
Thank you.

https://github.com/mnmkng/nyc-jest-issue is working as expected, as you saw:

Interestingly, running jest with --coverage flag works fine:

and I concur, jest --coverage should give you everything you need, without nyc at all.
If you have a specific issue with your tests executing code that runs in a subprocess, I would love to see an example repo for that.

@JaKXz I am sorry. I wanted to make an absolutely minimal repo focusing on the nyc issue and by doing that I've apparently obfuscated everything.
I've added a subprocess to the test code. I'm also committing the coverage results. As you can see, running jest --coverage outputs correct coverage for app.js, but not for child.js and vice versa, nyc correctly covers child.js, but doesn't touch app.js.
I've also run the tasks both w/ & w/o --runInBand. Makes no difference.
This is a report from running npm test:
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |      100 |      100 |      100 |      100 |                |
 child.js |      100 |      100 |      100 |      100 |                |
----------|----------|----------|----------|----------|----------------|

And this is a report from running npm run jest:
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |       80 |      100 |    66.67 |       80 |                |
 app.js   |       80 |      100 |    66.67 |       80 |              6 |
----------|----------|----------|----------|----------|----------------|

Thanks again for looking into it and sorry for not being clear right from the start.

I added this to the package.json:
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.js"
    ]
  },

and child.js shows up in the coverage report:
$ jest --coverage --env=node --runInBand
 PASS  test/app.test.js
  ✓ test app (2ms)
  ✓ test parent/child (86ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        0.263s, estimated 1s
Ran all test suites.
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |    57.14 |      100 |       50 |    57.14 |                |
 app.js   |       80 |      100 |    66.67 |       80 |              6 |
 child.js |        0 |      100 |        0 |        0 |            2,5 |
----------|----------|----------|----------|----------|----------------|

@mnmkng I think the issue here is that your child.js file is not exporting anything that is imported or required in a test file, which is why it wasn't picked up automatically by jest, and why it shows no coverage in jest's reporter.
To combine coverage reports from nyc and jest, you could try outputting the json coverage report from jest in the .nyc_output directory, and then run your tests again through nyc + jest where you just include the files that create sub-processes to see if nyc's coverage combining logic handles things for you. cc @bcoe, any ideas?

@JaKXz @mnmkng nothing immediately comes to mind; I believe Jest still uses many of the same core Istanbul libraries that also power nyc -- so I'm not at all surprised that running the two in conjunction results in stepping on each other's toes (if I had to guess, I'd bet JavaScript files are being instrumented twice).
I like @JaKXz's recommendation; I do something similar with nyc itself, where we run one set of tests with tap and another set of tests with mocha -- is it possible to output the __coverage__ variable with Jest prior to exiting, rather than outputting test reports?
@mnmkng perhaps open an issue on Jest too, and we can try to coordinate.

I had the same issue, but solved it by:

instructing jest to output json files
both nyc and jest to use the same report directory (in my case the jest's default ./coverage dir).

In package.json:
  "jest": {
    "coverageReporters": ["json"]
  },
  "nyc": {
    "reporter": ["lcov", "text"],
    "tempDirectory": "./coverage"
  }

Then run: yarn nyc --clean jest --coverage  ( or npm run nyc --clean jest --coverage, or without yarn/npm run if you installed it globally).
The --clean is important, will delete the coverage dir (or whatever dir you set as tempDirectory) before each run. This is needed as nyc will store its partial coverage files here and the file names are unique identifiers (changing each run). If you dont clean them up, you can get false coverage results for files, which were not tested in the last testing round.
Upper table is jest output, lower table is merged jest + nyc output:

@peterdanis
Thank's for your solution Peter. It did not work for us, but apparently put us on the right track. We finally figured that the problem was the way in which we terminated the child processes.
Using childProcess.kill, at the end of our tests, no coverage would be output.
So we changed the termination procedure to process.send a message to the child process and have it exit itself and voila, coverage showed up.
I will close the issue now, since the problem is fixed. Thanks to all for the ideas.

It would be great if we were able to instrument subprocesses in Jest as well... As noted earlier in this thread, Jest does most of what nyc does already, would be great if it could do it all


Hooks

Stuffed up the PR here: https://github.com/danielholmes/relay-compiler-webpack-plugin/pull/47 So opening a new one.
Trying to make this work with webpack 3 atm or wondering if I should just wait until next major version and remove support for it

My original thought was to just not add webpack 3 support, since they aren't really supported there. So it'd be an enhancement for folks on v4

@jquense Done here: https://github.com/danielholmes/relay-compiler-webpack-plugin/releases/tag/v6.2.0 . Going to release a version for relay 7 as well soon. Thanks for the contribution!


Add expectedHashes for 1M iteration.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.31%. Comparing base (232585d) to head (c296bad).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #159   +/-   ##
=======================================
  Coverage   94.31%   94.31%
=======================================
  Files           9        9
  Lines         879      879
  Branches       98       98
=======================================
  Hits          829      829
  Misses         50       50

Flag
Coverage Δ

unittests
94.31% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Represent Search Results

There is a need to establish a usage convention for representing searches performed using various software applications and online services, along with their results. Searches can return strings, data structures, and observable objects (e.g., URL, long lat location). Properties include:

Timestamp of search
Instrument used to perform search (application or online service)
What was searched (e.g., text, image)
The result(s) of the search

The proposed usage convention is a uco-action:Action representing a search performed by a specific user (uco-action:performer) using a certain application (uco-action:instrument). The uco-action:object lists input(s) to the search, and uco-action:result lists results of the search. The online service that was searched can be referenced as the uco-action:environment.
The example could use the Crossover data, specifically SearchedItem in Cellebrite XML report:
https://raw.githubusercontent.com/casework/CASE-Implementation-UFED-XML/main/XMLreports/19_UFED_ANDROID_CROSSOVER.xml
The same usage convention is proposed for an InvestigativeAction representing keyword searches performed on digital evidence using forensic/investigative tools.

This issue was originally captured in https://unifiedcyberontology.atlassian.net/browse/OC-211