storage::test_raft_storage::test_auto_gc, panicked at 'called Result::unwrap() on an Err value: Txn(Engine(Request(message: "stale command")))', src/libcore/result.rs:1165:5

The log is here
https://internal.pingcap.net/idc-jenkins/blue/organizations/jenkins/tikv_ghpr_test/detail/tikv_ghpr_test/9145/pipeline/142/

Another failure:
[2019-10-15T06:37:24.788Z] thread 'storage::test_raft_storage::test_auto_gc' panicked at 'called `Result::unwrap()` on an `Err` value: Txn(Engine(Request(message: "stale command")))', src/libcore/result.rs:1165:5
[2019-10-15T06:37:24.788Z] stack backtrace:
[2019-10-15T06:37:25.718Z]    0: backtrace::backtrace::libunwind::trace
[2019-10-15T06:37:25.718Z]              at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/libunwind.rs:88
[2019-10-15T06:37:25.718Z]    1: backtrace::backtrace::trace_unsynchronized
[2019-10-15T06:37:25.718Z]              at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/mod.rs:66
[2019-10-15T06:37:25.718Z]    2: std::sys_common::backtrace::_print
[2019-10-15T06:37:25.718Z]              at src/libstd/sys_common/backtrace.rs:47
[2019-10-15T06:37:25.718Z]    3: std::sys_common::backtrace::print
[2019-10-15T06:37:25.718Z]              at src/libstd/sys_common/backtrace.rs:36
[2019-10-15T06:37:25.718Z]    4: std::panicking::default_hook::{{closure}}
[2019-10-15T06:37:25.718Z]              at src/libstd/panicking.rs:200
[2019-10-15T06:37:25.718Z]    5: std::panicking::default_hook
[2019-10-15T06:37:25.718Z]              at src/libstd/panicking.rs:214
[2019-10-15T06:37:25.718Z]    6: std::panicking::rust_panic_with_hook
[2019-10-15T06:37:25.718Z]              at src/libstd/panicking.rs:477
[2019-10-15T06:37:25.718Z]    7: std::panicking::continue_panic_fmt
[2019-10-15T06:37:25.718Z]              at src/libstd/panicking.rs:384
[2019-10-15T06:37:25.718Z]    8: rust_begin_unwind
[2019-10-15T06:37:25.718Z]              at src/libstd/panicking.rs:311
[2019-10-15T06:37:25.718Z]    9: core::panicking::panic_fmt
[2019-10-15T06:37:25.718Z]              at src/libcore/panicking.rs:85
[2019-10-15T06:37:25.718Z]   10: core::result::unwrap_failed
[2019-10-15T06:37:25.718Z]              at src/libcore/result.rs:1165
[2019-10-15T06:37:25.718Z]   11: core::result::Result<T,E>::unwrap
[2019-10-15T06:37:25.718Z]              at /rustc/c6e9c76c59e3c10acd63ca9ec157a8894ea1a068/src/libcore/result.rs:933
[2019-10-15T06:37:25.718Z]   12: integrations::storage::test_raft_storage::check_data
[2019-10-15T06:37:25.718Z]              at tests/integrations/storage/test_raft_storage.rs:236
[2019-10-15T06:37:25.718Z]   13: integrations::storage::test_raft_storage::test_auto_gc
[2019-10-15T06:37:25.718Z]              at tests/integrations/storage/test_raft_storage.rs:336
[2019-10-15T06:37:25.718Z]   14: integrations::storage::test_raft_storage::test_auto_gc::{{closure}}
[2019-10-15T06:37:25.718Z]              at tests/integrations/storage/test_raft_storage.rs:248
[2019-10-15T06:37:25.718Z]   15: core::ops::function::FnOnce::call_once
[2019-10-15T06:37:25.718Z]              at /rustc/c6e9c76c59e3c10acd63ca9ec157a8894ea1a068/src/libcore/ops/function.rs:227
[2019-10-15T06:37:25.718Z]   16: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
[2019-10-15T06:37:25.718Z]              at /rustc/c6e9c76c59e3c10acd63ca9ec157a8894ea1a068/src/liballoc/boxed.rs:922
[2019-10-15T06:37:25.718Z]   17: __rust_maybe_catch_panic
[2019-10-15T06:37:25.718Z]              at src/libpanic_unwind/lib.rs:80
[2019-10-15T06:37:25.718Z]   18: std::panicking::try
[2019-10-15T06:37:25.718Z]              at /rustc/c6e9c76c59e3c10acd63ca9ec157a8894ea1a068/src/libstd/panicking.rs:275
[2019-10-15T06:37:25.718Z]   19: std::panic::catch_unwind
[2019-10-15T06:37:25.718Z]              at /rustc/c6e9c76c59e3c10acd63ca9ec157a8894ea1a068/src/libstd/panic.rs:394
[2019-10-15T06:37:25.718Z]   20: test::run_test::run_test_inner::{{closure}}
[2019-10-15T06:37:25.718Z]              at src/libtest/lib.rs:1413
[2019-10-15T06:37:25.718Z] note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
[2019-10-15T06:37:32.278Z] test storage::test_raft_storage::test_auto_gc ... FAILED

duplicate with #6400, closing it now.


fix: Post a highlight

What type of PR is this? (check all applicable)

[x] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Description
This adds "post on highlights" button to the extension for users.
fixes #88

Related Tickets & Documents

Mobile & Desktop Screenshots/Recordings

Added tests?

[ ] 👍 yes
[ ] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

Sure, I will remove the social cards, as for the generation, I will be waiting an answer from anush or divyansh to implement it.

We can conditionally render the "Create a highlight" button in the extension drop-down page when the user visits a GitHub PR page and can have the title, PR URL pre-filled in the highlight creation form with a button to generate the description. I can add these once the we are good to go with your highlight creation form.

Thank you anush, I was stuck at the URL thingy, but unblocked right now.

GitHub PR page authored by them
@Anush008 A user should be able to post highlights not authored by them. i.e. a feature they opened an issue on will be an option. Also, a maintainer or co-author is another scenario.

Hey @a0m0rajab. About 33eb47dda57e0243fe04135f6e129ecc10b7b4d5, the message passing between content-scripts and the extension is prone closed-receiving-end errors. Be sure to check for those on the chrome://extensions page.

Thank you for that, I did not finish it yet, just committed to record my process and not lose it.

Daily update: added the endpoint and pushed the highlight to the website, next steps:

disable the post button while sending the network request
show a toast/page for a successful post of highlight and add a link to it like the LinkedIn logic:

I will need to refactor the code as well before the last push.
an issue I faced while doing this is that I did not get the id of the highlight from the backend.

Used statues code for error showing since there is no statue text right now.

Here is a video of the extension:
https://github.com/open-sauced/ai/assets/18273833/d47d7a35-7adf-496b-8d10-8304d662d236
Is there feedback about it right now? In the next iteration, I will add the needed checks for the post to insights button to conditionally disable it. Why not render it? Cause I think if the user sees the button will get curios about how to use it, which will be explained in the button text/

As for the

pr description generation endpoint
I think it's not enabled right now, will have to check that later.

@Anush008 I got stuck with the AI endpoint logic.
Could we pairprogram it together? I did not know how to debug it.
I tried to follow a logic similar to the one you used, but it did not give me any output.

Is there feedback about it right now?

Looks good, but I think it feels a little bland rn, maybe use opensauced orange for the submit button.

This will need a rebase from beta for a lint and merge conflict fix.

@bdougie I implemented the usage of AI generated text, here is a video about that:
https://github.com/open-sauced/ai/assets/18273833/f739c719-9dbc-410d-8f0b-30f3d57a96cf
Right now I have three issues that I think it would be nice to solve:

giving a feedback to the user to let them know that something is working on the background (loading toast or even changing the post button to loading), or even having a typewriting effect would be great. The type writer effect is a bit tricky since we have an async functions working right now for generating the highlight text.
the code is being run twice on the background (not sure why, yet)
not all links are working, if a user came to PR from a comment link it will not generate anything. we have an open issue for this: #131

from my perspective I feel to merge this PR and work on issues on a new one, since there is a breaking PR coming in the next few days. What do you think?
@diivi I feel white is still better here is a screen shot of the orange color:

While doing this code, I have refactored the description-generating function to be able to use it in multiple places and apply the single purpose principle and prevent some side effects done by it.
This next paragraph is written by using open sauced extension:
This PR adds several new features and improvements to the project. It includes the ability to post on highlights, add open graph GitHub, and communicate between popup and content script. Additionally, social cards have been removed, and a new post to highlight endpoint and logic has been added. A toast has been added, and the post button is now disabled during fetch. The fetch code has been refactored, and a new highlight generation by AI feature has been added. The getAiDesc function has been added, and the code has been linted. The AI generating function has been refactored, and the AI logic has been added to the UI. The send response has been refactored, and files have been linted and fixed.

I can approve this yet because the build fails. I add this commit as a check. https://github.com/open-sauced/ai/commit/a755e38ffdd8533c8cbba66d2d662faeae4cad64
Can you rebase from beta and fix @a0m0rajab

@bdougie the break is happening in any minor change in the files, even if it's something irrelevant, I opened an issue for that.

Build issues:

Error: src/content-scripts/components/GenerateAIDescription/DescriptionGeneratorButton.ts(45,9): error TS18047: 'logo' is possibly 'null'.
Error: src/content-scripts/github.ts(63,71): error TS2339: Property 'innerText' does not exist on type 'Element'.
Error: src/pages/posthighlight.tsx(46,77): error TS18047: 'user' is possibly 'null'.
Error: Process completed with exit code 2.

Which is fixed at https://github.com/open-sauced/ai/pull/101/commits/276551459e8d384b300a1fdf896d16b9e277bb7a
Then got:
Error: src/content-scrip

ts/components/GenerateAIDescription/DescriptionGeneratorButton.ts(45,14): error TS2339: Property 'classList' does not exist on type 'false | HTMLElement'.
Property 'classList' does not exist on type 'false'.
Error: Process completed with exit code 2.

Fixed at: https://github.com/open-sauced/ai/pull/101/commits/aa7eb458f2f9a091093b89424c3fd01f93a3b641

Added user feedback as well:

It's running twice due to having StrictMode, it runs the component twice to test it., not sure what should we use for this to solve that.
We still have one issue related to AI message, that's I opened a bug issue for this to move forward with it #131.
Side note, I updated the title selector from: .gh-header-title to .js-issue-title.markdown-title. Which will allow us to get only the text title without importing the issue number.

✅ This is ready to be shipped from my side.

Side note: an option to have multiple shot prompts or even change the prompt to make it more feasible for social media would be great.

From my perspective I feel to merge this PR and work on issues on a new one, since there is a breaking PR coming in the next few days. What do you think?

Making this a minimally viable product is the goal.

Adding a generate button would be more ideal than automating it. Running it automatically cost money and might not be the experience a user expects.
I did not see animation or a title propagated when I ran this locally.

are these fixable?

@bdougie are you on the latest commit? It's working locally for me. One thing that might need to be done is to refresh the page (CTRL+SHIFT+R) hard since the connection between content-scripts and popups might not work. If the issue is still after hard refresh can you share the output from the console in the extension and the GitHub page?
@diivi nope, this is a warning it keeps generating a warning when you solve it. There is a conflict in the lint options there.
https://github.com/open-sauced/ai/assets/18273833/a20990ce-0b09-4867-be30-3ce1735b924b

@a0m0rajab I updated all the copy to be more descriptive for the user. @diivi or @Anush008 can you give this a code review?
We can iterate on this after this is merged, but for basic functionaly, it works.

Currently, only the send button is being disabled when the summary is being generated by the AI PR description generator function. The summarize button should be disabled too.
https://github.com/a0m0rajab/opensauced-ai/blob/799bdd4508ff7d20051e24202c05c9333731ab89/src/pages/posthighlight.tsx#L17-L20

This PR uses message passing between the GH content-script and the pop-up page to get info from the GH webpage. Which as we previously experienced is prone to closed-receiving-end  errors.
I do have an approach in mind to make this feature work without message passing. I can try it once we merge this. Other than that, this looks great.

Let's merge this now as is and continue to iterate and improve this.

@bdougie thank you for that.
@Anush008 As for the prone, did you face this issue on this PR? and what approach you got on mind?
I got such an error but solved it by following the documentation mentioning the async functions:

In the above example, sendResponse() was called synchronously. If you want to asynchronously use sendResponse(), add return true; to the onMessage event handler.

which I used at this line:
https://github.com/open-sauced/ai/pull/101/files#diff-12e3b206dc980349f2c064d6bb1e0068655e929b8a4bf1ad88bf4fb06c15d0a0R79

Sometimes the message listener in the content-script unmounts and the sender(pop-up page) gets the closed-receiving-end errors. You can see the error log on the chrome://extensions page. Which is not a problem with the code but just a runtime issue.


[DOC} - SRS Sections 2,3,9

What document(s) are being updated?
SRS.tex
What is being added/updated? (optional)

Thi


Unable to bring up development environment on Windows

Hi all - sorry my first contribution in so long is an issue!
I'm currently trying to run Wellcome Reach on the UKRI laptops (running Windows 10), which I'm certain I successfully did when I returned in March, but no longer seems to be working.
Running make virtualenv returns:

D:\Users\XXX\Documents\Python Projects\policytool>make virtualenv
'make' is not recognized as an internal or external command,
operable program or batch file.

(I'd also like to bring your attention to my horrendous username at UKRI)
Attempting to just run refparse.py returns:

D:\Users\XXX\Documents\Python Projects\policytool\policytool\refparse>python refparse.py
Traceback (most recent call last):
File "refparse.py", line 16, in
from .utils import (FileManager,
ModuleNotFoundError: No module named '__main__.utils'; '__main__' is not a package

Nick suggested raising an issue would be the best way to open a discussion on this, really appreciative for any suggestions 😄

@peter337 - great to hear from you! Yes that's quite the username. (Hope it's OK I redacted it for you, though it does remain visble in the edit history...)
We definitely want to get a working Windows story in place for the tool. Getting that going means installing the set of dependencies under README.md#dependencies, plus one I failed to mention there because it's (outside Windows) ubiquitous: make (and probably GNU make, to be specific).
My thoughts to get things in order for you here are:

Install Windows Subsystem for Linux 2.0 with a recent Debian or Ubuntu distro on top, or
Install cygwin, either with or without admin privileges, and install make & the requisite Python bits from there.
Install Virtualbox, set up an Ubuntu virtual machine, and do all development from within it.

Can you send an email my way with a few times when you're free to chat through these?

Closing as wontfix since Peter, our one Windows user, no longer works at UKRI on this project :-(


Add names to load parsers

I think this is a fair enough change? It is simple enough, so I did not open an issue but opened a pull request directly.
Sometimes I need to specify the load parser explicitly when using Assets.load, but it is difficult in Node.js because those extension load parsers in @pixi/node do not have names. This pull request fixes this problem.

@UlyssesZh your PR just pointed me in the right direction. I stumbled over the load naming issue today and I was very suprised that not all parsers were available as in "normal" PIXI.
My suggestion would be to stick to the original names so JS code will be compatible with both version:
loadNodeTexture should still be loadTextures
Really appreciate your inspection and work on that - thank!

My suggestion would be to stick to the original names so JS code will be compatible with both version.

Good suggestion, but there are possible counterarguments to this. Let's wait for opinions from other contributors or project owners.


Added default z-index for the span highlights

Issue
The SPAN's .r6o-span-highlight-layer should be brought up above the regular textual content on the page. That will prevent elements with the background from being displayed over the highlights.
Example

W/o z-index
W/ z-index: 1

Changes Made
Added z-index: 1 to put the .r6o-span-highlight-layer out of the nesting stack. Similar treatment has already been done to the canvas:
https://github.com/recogito/text-annotator-js/blob/e6d3f33339ab1f4cd2ccb6b77624c20f12841ee4/packages/text-annotator/src/highlight/canvas/canvasRenderer.css#L11-L14

I'm not sure I understand the exact problem in the example. But it's definitely a sensible fix :-)


Added funinfo

This was that cc that accesses the data that is acquired when using the qotd and/or x-word-story (and my own counting) cc. If this one doesn't get added, then I'll make a PR that removes the feature in both of the latter CCs that gathers the data.

[X] Code changes have been tested on an instance of YAGPDB, or there are no code changes
[X] I have read and followed the contribution guide

Blocked until #165 is merged.

Thanks!


Deployed, but won't read CSS

I'm at andy4thehuynh.github.io/big4referral. Awesome!
However, I check the sources and my style.css file is completely empty. In my repo, I have content in my style.css:
https://github.com/andy4thehuynh/big4referral/blob/gh-pages/stylesheets/styles.css
Any idea why it won't read my css?

I don't think this is related to this project. Looking at your gh-pages branch, things look like they're generating just fine. However, it does look like you're using relative paths to your stylesheets instead of absolute paths (starting with /). That might be related to your problem, but for index.html, it should still work as expected.

Hi, I'm having the same issue with https://github.com/AgentEm/new-personal-site/tree/gh-pages. Seeing all of the files there properly, working locally, I can successfully rake publish but the css and image files aren't there.

@AgentEm Since you don't have a CNAME file in your repository, I presume, you're running this site under the GitHub convention of: http://agentem.github.io/new-personal-site/
Middleman assumes (and prefers) that you're always running a site at the root of the domain. If you want to run it in a subdirectory, you'll need to enable relative links.
configure :build do
  set :relative_links, true
end

More info: http://stackoverflow.com/a/23443761/8985
Here's more information about running a site on a custom domain:
https://help.github.com/articles/using-a-custom-domain-with-github-pages/

Hi, I have the same issue. My css file is working properly on localhost and is present in the repository, however it is not present in the sources thenihalsingh.github.io . Repository https://github.com/thenihalsingh/thenihalsingh.github.io


Update index.d.ts

A default export must declare a JavaScript value =]

Codecov Report

Merging #3 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #3   +/-   ##
=======================================
  Coverage   36.58%   36.58%
=======================================
  Files           2        2
  Lines          82       82
  Branches       17       17
=======================================
  Hits           30       30
  Misses         38       38
  Partials       14       14

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8e153d5...ddf3428. Read the comment docs.


PR for #491 Allow TLS X509 client authentication

Just a draft version to see if that's ok to go forward. It's been tested locally. To use it, add ssl options as command line arguments when launch elasticdump, e.g. --cert, --key,  --ca, etc. Then, the tool will pick up the cert and key files when exist.

This looks good. Let me know when you are ready to merge

Hey @ferronrsmith Here it is:-)
Also updated the docs. It's a bit tedious since both input and output need to be considered. But the good thing is the new options are easy to understand & remember, also most of them are just optional. e.g. if source and dest point to the same server, we could simply use: --cert, --key, and --pass.
Does it make sense?

Yup👍🏾


Move all catalog additions to a .sql file that runs at initdb time

Merging this into #1596 since 1.0.0 will be packaged as an extension.


bump compat CategoricalArrays = "0.9, 0.10"; level -> levelcode

Replaces #543

Codecov Report

Merging #544 (f9d0782) into dev (8bd6034) will decrease coverage by 0.09%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev     #544      +/-   ##
==========================================
- Coverage   84.87%   84.78%   -0.10%
==========================================
  Files          36       36
  Lines        3034     3029       -5
==========================================
- Hits         2575     2568       -7
- Misses        459      461       +2

Impacted Files
Coverage Δ

src/interface/data_utils.jl
94.44% <100.00%> (ø)

src/measures/continuous.jl
97.70% <0.00%> (-2.30%)
:arrow_down:

src/measures/finite.jl
96.30% <0.00%> (-0.30%)
:arrow_down:

src/composition/learning_networks/nodes.jl
69.93% <0.00%> (-0.21%)
:arrow_down:

src/univariate_finite/types.jl
91.50% <0.00%> (+0.85%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8bd6034...f9d0782. Read the comment docs.

cc @nalimilan


[rshapes] DrawRectangleLines() lines flickering when zooming out due to RL_LINES vs RL_QUADS

Please, before submitting a new issue verify and check:

[X] I tested it on latest raylib version from master branch
[X] I checked there is no similar issue already reported
[X] I checked the documentation on the wiki
[X] My code has no errors or misuse of raylib

Issue description
When working with DrawRectangleLines, the behavior as expected is to have the rectangle drawn with RL_LINES, i.e pure OpenGL lines with no artefacts at small distances like DrawLine. However, DrawRectangleLines (and possible other fake *Lines drawing methods) are rendered with Quads  when SUPPORT_QUADS_DRAW_MODE is true. While I understand that this may be for avoiding draw order issues (as stated in the source comment), intuitively one would expect that *Lines methods are drawn with pure OpenGL lines to avoid artefacts.
So I would recommend not mixing RL_LINES and Quads when possible and to be clear which or the other any function in rshapes.c is using.
I encountered this when creating an infinite grid when zooming in and out on a tool, using DrawRectangleLines would have the rectangle flickering at high levels of zoom, because the quads become sub-pixel sized. It is not a big issue, because I can just implement a custom DrawRectangleLines that draws 4 lines instead (as expected). But I think it may be better to have all the *Lines function (except the Ex versions with lineWidth) to be rendered always with RL_LINES and not quads.
It is in particular this piece of code in rshapes.c:
// Draw rectangle outline
// NOTE: On OpenGL 3.3 and ES2 we use QUADS to avoid drawing order issues
void DrawRectangleLines(int posX, int posY, int width, int height, Color color)
{
#if defined(SUPPORT_QUADS_DRAW_MODE)
    DrawRectangle(posX, posY, width, 1, color);
    DrawRectangle(posX + width - 1, posY + 1, 1, height - 2, color);
    DrawRectangle(posX, posY + height - 1, width, 1, color);
    DrawRectangle(posX, posY + 1, 1, height - 2, color);
#else
    rlBegin(RL_LINES);
        rlColor4ub(color.r, color.g, color.b, color.a);
        rlVertex2f(posX + 1, posY + 1);
        rlVertex2f(posX + width, posY + 1);
        ...

See the gif for a demonstration of the issue and how it may work counterintuitively for Raylib users. (Expectation: rectangle remains a rectangle at big distance).
Environment
Windows, vanilla Raylib 5.0 C
Issue Screenshot
The left square is the expected behavior (4 lines) and the right square is DrawRectangleLines.
The camera is zoomed out progressively. With greater zoom levels, DrawRectangleLines becomes basically pointless.

Code Example
It is python code because I wrote quickly, but it is nothing special and would look the same in C.
from pyray import *

init_window(800, 800, "Bug")

camera: Camera2D = Camera2D(Vector2(0, 0), Vector2(0, 0), 0, 1)

while not window_should_close():
    begin_drawing()
    begin_mode_2d(camera)
    clear_background(BLACK)

    draw_line(10, 10, 210, 10, WHITE)
    draw_line(210, 10, 210, 210, WHITE)
    draw_line(210, 210, 10, 210, WHITE)
    draw_line(10, 210, 10, 10, WHITE)

    draw_rectangle_lines(300, 10, 200, 200, WHITE)

    camera.zoom -= get_frame_time() * 0.1
    end_mode_2d()
    end_drawing()

@arceryz Good catch! And thanks for reporting! I expected OpenGL driver to manage that properly on its side... but effectively lines rendering is completely different than triangles... It probably can't be addressed from raylib side but just be properly documented.

@raysan5 Would it be an option to have all the pure *Lines drawing methods (expect the *Ex variants) just implemented with RL_LINES, and the *LinesEx methods, which have thickness, be implemented using triangles/quads? I think this would make most sense, since of course lines with thickness can't avoid this issue so we can leave *LinesEx untouched. This way you can just say that the *Lines drawing methods are safe at faraway distances.

@arceryz DrawRectangleLines() has been reviewed with the proposed fix BUT notice that this change can derive in other unexpected issues: When drawing with GL_LINES first pixel position calculation could be offseted by one pixel depending on the GPU/drivers, I'm afraid it's an impossible issue to be fixed.
Also note that DrawRectangleRoundedLines() now should be reviewed for consistency with other Draw*Lines() functions.


[WIP] Mutate Governor Settings Effect Implementation

Will close #49, depends on #61
TODOs:

[x] Add samples
[x] Add tests
[ ] Add doc

Why do we need PAsData for those types we implement PTryFrom? It adds extra steps when writing the instance and gives virtually no benefit. Because it worsens better readability, I don’t quite like the change.

@SeungheonOh Check this out: https://github.com/Plutonomicon/plutarch/pull/438

Is it for giving PTryFrom to datatypes defined with newtype when the underlying datatype implements PTryFrom?

I will add some doc string in the next few days.


conductor: added execution commit level v2

Summary
Add a setting that allows rollup user to configure the origin of blocks that get sent to the rollup.
Background
Currently Conductor sends all blocks from all sources (sequencer and DA). Rollup user may want to change this functionality and chose to only ingest blocks from DA and/or the sequencer.
Changes

[x] Add execution_commit_level to Config
[x] Add EXECUTION_COMMIT_LEVEL env var to local.env.example
[x] Remove ASTRIA_CONDUCTOR_DISABLE_FINALIZATION as an env var to be replaced with EXECUTION_COMMIT_LEVEL
[x] Update Conductor initialization to use execution_commit_level

Testing

[x] existing tests pass

Related Issues
replaces #342 because https://github.com/astriaorg/astria/pull/455 got merged
closes #250
closes #345

Please don't just add docs to appease clippy. Both panic sections do not make sense.


qt6.qtwebengine: fix build on darwin

Description of changes
Also contains a commit from #280559.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 282071 run on aarch64-darwin 1

31 packages marked as broken and skipped:

anki
anki.dist
anki.doc
anki.man
calibre
cutterPlugins.rz-ghidra
librealsenseWithCuda
librealsenseWithCuda.dev
mnemosyne
mnemosyne.dist
python311Packages.numbaWithCuda
python311Packages.numbaWithCuda.dist
python311Packages.pycuda
python311Packages.pycuda.dist
python311Packages.pynvml
python311Packages.pynvml.dist
python311Packages.pyrealsense2WithCuda
python311Packages.pyrealsense2WithCuda.dev
python311Packages.theanoWithCuda
python311Packages.theanoWithCuda.dist
python312Packages.pycuda
python312Packages.pycuda.dist
python312Packages.pynvml
python312Packages.pynvml.dist
python312Packages.pyrealsense2WithCuda
python312Packages.pyrealsense2WithCuda.dev
truecrack-cuda
unbook
xgboostWithCuda
zapzap
zapzap.dist

9 packages failed to build:

python311Packages.pyqt6-webengine
python311Packages.pyqt6-webengine.dev
python311Packages.pyqt6-webengine.dist
qutebrowser
qutebrowser.dist
retext
retext.dist
stellarium
zeal-qt6

4 packages built:

cutter
qlog
qt6.qtwebengine (qt6Packages.qtwebengine ,yuzuPackages.qtwebengine)
qt6.qtwebengine.dev (qt6Packages.qtwebengine.dev ,yuzuPackages.qtwebengine.dev)

Result of nixpkgs-review pr 282071 run on aarch64-darwin 1

31 packages marked as broken and skipped:

anki
anki.dist
anki.doc
anki.man
calibre
cutterPlugins.rz-ghidra
librealsenseWithCuda
librealsenseWithCuda.dev
mnemosyne
mnemosyne.dist
python311Packages.numbaWithCuda
python311Packages.numbaWithCuda.dist
python311Packages.pycuda
python311Packages.pycuda.dist
python311Packages.pynvml
python311Packages.pynvml.dist
python311Packages.pyrealsense2WithCuda
python311Packages.pyrealsense2WithCuda.dev
python311Packages.theanoWithCuda
python311Packages.theanoWithCuda.dist
python312Packages.pycuda
python312Packages.pycuda.dist
python312Packages.pynvml
python312Packages.pynvml.dist
python312Packages.pyrealsense2WithCuda
python312Packages.pyrealsense2WithCuda.dev
truecrack-cuda
unbook
xgboostWithCuda
zapzap
zapzap.dist

1 package failed to build:

zeal-qt6

12 packages built:

cutter
python311Packages.pyqt6-webengine
python311Packages.pyqt6-webengine.dev
python311Packages.pyqt6-webengine.dist
qlog
qt6.qtwebengine (qt6Packages.qtwebengine ,yuzuPackages.qtwebengine)
qt6.qtwebengine.dev (qt6Packages.qtwebengine.dev ,yuzuPackages.qtwebengine.dev)
qutebrowser
qutebrowser.dist
retext
retext.dist
stellarium

@ofborg build qt6.qtwebengine qt6.qtwebengine.passthru.tests


It'd Be Extremely Cool If Doom Had A Notarised Binary For macOS!

We need a binary, a notarised binary, for macOS, please.
This is very important in a era where security is and needs to be foremost in our minds. The lack of a notarised binary will deter people from trying the application and hinder adoption. Neither Homebrew nor MacPorts, although easy installation mechanisms, are secure and thus safe installation mechanisms.

This sounds like a responsibility for Emacs itself, notarizing a shell script (for the doom CLI) doesn't sound like a constructive use of time or energy.

Prompted by Shane's comment, I feel the need to add: this is something that Emacs should do far more than Doom. My comment is intended as: "if this is possible without too much hassle, it might be nice"

If I've understood correctly, it should be possible to use pdump to create an emacs binary with all the doom packages loaded. (Though I have zero experience in this and I'm not sure it'd work on Mac). But is it a good idea? One of the nice promises doom is the package management and the doom cli tool.

Actually, a self-updating binary could be cool. Since all the doom 'framework' would be packed into the binary I don't see what would stop it from updating and recompiling a new version of itself.

While it's a cool idea, there are too many obstacles. I don't think it's practical. I'm not an apple developer and all I have is a shaky mojave vm to do any testing on.
I'm open to working with an apple dev to figure something out, but my macOS know-how is a decade out of date, and I am not interested in refreshing it. A greater issue here is that Emacs itself isn't notarized (or signed?). That is definitely their jurisdiction more than mine.
Here are some other concerns:

Licensing: Doom is MIT. Emacs and its plugins are (mostly) GPL. I can't statically link GPLed code without conforming to the GPL myself, and I do not plan to change Doom's license.

If emacs isn't signed, can you notarize a container that uses it? Doom's binary would never pass the validation process. What about all the shared libraries Emacs depends on? Jansson, harfbuzz, gnutls, openssl, etc. How thorough is the notarizing process? What do I become responsible for, bundling all this together?

I don't know what kind of restrictions a "hardened runtime" is subject to. Documentation on the matter is vague. For something as complex as Emacs, this could introduce a whole class of bugs I'm not prepared to support.

Great effort is needed to restructure Doom for portability. It just isn't built for that. Emacs bytecode isn't portable. Its plugins sometimes bake in absolute paths when compiled at installation.
Another minor issur: Emacs is stubborn about where it reads its init files from. i.e. ~/.emacs, ~/.emacs.d or ~/.config/emacs (as of Emacs 27.1). A Doom binary would have to deploy a bootloader to the user's $HOME, or suffer a substantial startup and stability hit to properly run out of /Applications/DoomEmacs.app. Or rely on users to do their own bootstrapping in ~/.emacs.d.
If emacs introduced a --config DIR switch this would be no issue.

If adoption is the problem. Perhaps it would be better to focus on improving doom install; make it more user friendly. I'm already working on a) a web-based configurator for Doom on doomemacs.org and b) improving doom install. This should make things much easier for beginners, but it'll be a while until either is finished.
All in all, I don't think this will happen. I'll close this for now, but feel free to follow up here.


Improve hostnames configuration

Relates to this failure:

http://ci.hibernate.org/job/hibernate-search-PR/org.hibernate$hibernate-search-integrationtest-osgi/1962/testReport/junit/org.hibernate.search.test.integration.osgi/SystemTest/testLocalhostResolution/

The trick is to mention the local machine name in the <IP_ADDRESS> line of the /etc/hosts file.

Merged https://github.com/hibernate/ci.hibernate.org/pull/42
Thanks


Error NullReferenceException: Object reference not set to an instance of an object

Help when I try to run the app it show :
NullReferenceException: Object reference not set to an instance of an object
Mapbox.Unity.MeshGeneration.Modifiers.ModifierStack.Initialize () (at Assets/Mapbox/Unity/MeshGeneration/Modifiers/ModifierStack.cs:115)
Mapbox.Unity.MeshGeneration.Interfaces.VectorLayerVisualizer.Initialize () (at Assets/Mapbox/Unity/MeshGeneration/LayerVisualizers/VectorLayerVisualizer.cs:462)
Mapbox.Unity.MeshGeneration.Factories.VectorTileFactory.AddVectorLayerVisualizer (Mapbox.Unity.Map.VectorSubLayerProperties subLayer) (at Assets/Mapbox/Unity/MeshGeneration/Factories/VectorTileFactory.cs:102)
Mapbox.Unity.MeshGeneration.Factories.VectorTileFactory.CreateLayerVisualizers () (at Assets/Mapbox/Unity/MeshGeneration/Factories/VectorTileFactory.cs:497)
Mapbox.Unity.MeshGeneration.Factories.VectorTileFactory.OnInitialized () (at Assets/Mapbox/Unity/MeshGeneration/Factories/VectorTileFactory.cs:190)
Mapbox.Unity.MeshGeneration.Factories.AbstractTileFactory.Initialize (Mapbox.Platform.IFileSource fileSource) (at Assets/Mapbox/Unity/MeshGeneration/Factories/AbstractTileFactory.cs:66)
Mapbox.Unity.Map.AbstractMapVisualizer.Initialize (Mapbox.Unity.Map.Interfaces.IMapReadable map, Mapbox.Platform.IFileSource fileSource) (at Assets/Mapbox/Unity/Map/AbstractMapVisualizer.cs:97)
Mapbox.Unity.Map.AbstractMap.InitializeMap (Mapbox.Unity.Map.MapOptions options) (at Assets/Mapbox/Unity/Map/AbstractMap.cs:769)
Mapbox.Unity.Map.AbstractMap.SetUpMap () (at Assets/Mapbox/Unity/Map/AbstractMap.cs:651)
Mapbox.Unity.Map.AbstractMap.MapOnStartRoutine (System.Boolean coroutine) (at Assets/Mapbox/Unity/Map/AbstractMap.cs:538)
Mapbox.Unity.Map.AbstractMap.Start () (at Assets/Mapbox/Unity/Map/AbstractMap.cs:500)

Could you send me your project folder in a .zip file to<EMAIL_ADDRESS>so I can take a look at it? Thanks

unity-ar-gps-location-mapbox-route-sample.zip
https://drive.google.com/file/d/144tqpU7RPu5lWmCl4K1uENJK4y2afsXu/view?usp=drive_web
this is the project...
And 1 more question if this project would compile, can i add custom marker
on the mapbox using this project
On Thu, May 12, 2022 at 5:21 AM Daniel Fortes @.***>
wrote:

Could you send me your project folder in a .zip file to
@.*** so I can take a look at it? Thanks
—
Reply to this email directly, view it on GitHub
https://github.com/dmbfm/unity-ar-gps-location-mapbox-route-sample/issues/5#issuecomment-1124306371,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP4H3VN7BUGHJRLBGEML5UTVJQQFJANCNFSM5VQAO5FQ
.
You are receiving this because you authored the thread.Message ID:
<dmbfm/unity-ar-gps-location-mapbox-route-sample/issues/5/1124306371@
github.com>

I believe the issue is fixed by now. could you try the latest main branch?

And 1 more question if this project would compile, can i add custom marker
on the mapbox using this project
Sure, I you just change the 3d model on the scene I believe

thank you for your reply, i have now able to compile and run on android.
Unfortunately, the apps ask permission for gps only, not camera and other
permissions. So, the camera for AR navigation not showing in the app. the
demo apps shown below. Where is the real location for Android Manifest.xml
[image: image.png]
On Wed, May 18, 2022 at 8:30 AM Daniel Fortes @.***>
wrote:

I believe the issue is fixed by now. could you try the latest main branch?
And 1 more question if this project would compile, can i add custom marker
on the mapbox using this project
Sure, I you just change the 3d model on the scene I believe
—
Reply to this email directly, view it on GitHub
https://github.com/dmbfm/unity-ar-gps-location-mapbox-route-sample/issues/5#issuecomment-1129444859,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP4H3VIAOR6ELCYJDQQ6YCTVKQ2YXANCNFSM5VQAO5FQ
.
You are receiving this because you authored the thread.Message ID:
<dmbfm/unity-ar-gps-location-mapbox-route-sample/issues/5/1129444859@
github.com>

Actually the issue was im not configuring on Player Setting Configuration. Thanks you for helping me on the Email. thank you ya


Thow a ClientException on non-json responses

Implements the proposed fix in #552. Fixes #552.
Breaking changes

Broke: In non-JSON responses, a ClientException gets thrown instead of an UnhandledFailureWrapper
because: In my opinion, this is more consistent with other malformed responses and the root cause of the exception is more clear to the user

Fixes / Enhancements

Updated test that verifies the behavior on non-json responses

:tada: This PR is included in version 3.0.1-beta.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[T6A2][W14-B2]

v0.0 or T6A2 have different submission instructions.
Complete any remaining parts of V0.0 that you could not finish in the previous week. Transfer the content to the relevant pages in your main repo.
Submission: Create a PR from your team repo master branch to https://github.com/nus-cs2103-AY1617S2/addressbook-level4. Name it [T7][Your-Team-ID] e.g. [T7][W09-B3]


OOBE opens a new instance of Settings - again

Microsoft PowerToys version
0.63.0
Running as admin

[ ] Yes

Area(s) with issue?
Settings, Welcome / PowerToys Tour window
Steps to reproduce
Update to v.63
Settings window opens
OOBE window opens
Open any page inside OOBE and click on Open Settings
✔ Expected Behavior
Move to existing window
❌ Actual Behavior
New Settings window opens

Other Software
No response

We totally should do #8277


chore(deps): update common-dev-assets digest to b5456c0

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
a95caad -> b5456c0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline


Front page of SSSOM website desperately needs to list what the columns in an SSSOM file are/can be

it's near impossible to find the list of all of the fields in SSSOM. This should be the third thing on the https://mapping-commons.github.io/sssom/ after 1. an explanation of what SSSOM is/what it's for and 2. an example SSSOM file
As a potential SSSOM user, I don't ever ever ever want to look at LinkML-like documentation.
What I really need is a list of the fields, a description of what's goes in them, and an example for each. All of this needs to be in a table and on the front page after the two other things

You mean something like this?
Mapping Set
Represents a set of mappings

Slot Name
Description
Value
Examples

curie_map
A dictionary that contains prefixes as keys and their URI expansions as values.
prefix
N/A

mappings
Contains a list of mapping objects
mapping
N/A

mapping_set_id
A globally unique identifier for the mapping set (not each individual mapping). Should be IRI, ideally resolvable.
uri
http://purl.obolibrary.org/obo/mondo/mappings/mondo_exactmatch_ncit.sssom.tsv

mapping_set_version
A version string for the mapping.
string
2020-01-01, 1.2.1

mapping_set_source
A mapping set or set of mapping set that was used to derive the mapping set.
uri
http://purl.obolibrary.org/obo/mondo/mappings/2022-05-20/mondo_exactmatch_ncit.sssom.tsv

mapping_set_title
The display name of a mapping set.
string
The Mondo-OMIM mappings by Monarch Initiative.

mapping_set_description
A description of the mapping set.
string
This mapping set was produced to integrate human and mouse phenotype data at the IMPC. It is primarily used for making mouse phenotypes searchable by human synonyms at https://mousephenotype.org/.

creator_id
Identifies the persons or groups responsible for the creation of the mapping. The creator is the agent that put the mapping in its published form, which may be different from the author, which is a person that was actively involved in the assertion of the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.
EntityReference
N/A

creator_label
A string identifying the creator of this mapping. In the spirit of provenance, consider using creator_id instead.
string
N/A

license
A url to the license of the mapping. In absence of a license we assume no license.
uri
N/A

subject_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class

subject_source
URI of vocabulary or identifier source for the subject.
EntityReference
obo:mondo.owl, wikidata:Q7876491

subject_source_version
Version IRI or version string of the source of the subject term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl

object_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class

object_source
URI of vocabulary or identifier source for the object.
EntityReference
obo:mondo.owl, wikidata:Q7876491

object_source_version
Version IRI or version string of the source of the object term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl

mapping_provider
URL pointing to the source that provided the mapping, for example an ontology that already contains the mappings, or a database from which it was derived.
uri
N/A

mapping_tool
A reference to the tool or algorithm that was used to generate the mapping. Should be a URL pointing to more info about it, but can be free text.
string
https://github.com/AgreementMakerLight/AML-Project

mapping_tool_version
Version string that denotes the version of the mapping tool used.
string
v3.2

mapping_date
The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file.
date
N/A

publication_date
The date the mapping was published. This is different from the date the mapping was asserted.
date
N/A

subject_match_field
A list of properties (term annotations on the subject) that was used for the match.
EntityReference
N/A

object_match_field
A list of properties (term annotations on the object) that was used for the match.
EntityReference
N/A

subject_preprocessing
Method of preprocessing applied to the fields of the subject. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
EntityReference
semapv:Stemming, semapv:StopWordRemoval

object_preprocessing
Method of preprocessing applied to the fields of the object. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
EntityReference
semapv:Stemming, semapv:StopWordRemoval

see_also
A URL specific for the mapping instance. E.g. for kboom we have a per-mapping image that shows surrounding axioms that drive probability. Could also be a github issue URL that discussed a complicated alignment
string
N/A

issue_tracker
A URL location of the issue tracker for this entity.
uri
https://github.com/mapping-commons/mh_mapping_initiative/issues

other
Pipe separated list of key value pairs for properties not part of the SSSOM spec. Can be used to encode additional provenance data.
string
N/A

comment
Free text field containing either curator notes or text generated by tool providing additional informative information.
string
N/A

extension_definitions
A list that defines the extension slots used in the mapping set.
extension definition
N/A

Mapping
Represents an individual mapping between a pair of entities

Slot Name
Description
Value
Examples

subject_id
The ID of the subject of the mapping.
EntityReference
HP:0009894

subject_label
The label of subject of the mapping
string
Thickened ears

subject_category
The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.
string
UBERON:0001062, anatomical entity, biolink:Gene

predicate_id
The ID of the predicate or relation that relates the subject and object of this match.
EntityReference
owl:sameAs, owl:equivalentClass, owl:equivalentProperty, rdfs:subClassOf, rdfs:subPropertyOf, skos:relatedMatch, skos:closeMatch, skos:exactMatch, skos:narrowMatch, skos:broadMatch, oboInOwl:hasDbXref, rdfs:seeAlso

predicate_label
The label of the predicate/relation of the mapping
string
has cross-reference

predicate_modifier
A modifier for negating the predicate. See https://github.com/mapping-commons/sssom/issues/40 for discussion
Not
Not

object_id
The ID of the object of the mapping.
EntityReference
HP:0009894

object_label
The label of object of the mapping
string
Thickened ears

object_category
The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.
string
UBERON:0001062, anatomical entity, biolink:Gene

mapping_justification
A mapping justification is an action (or the written representation of that action) of showing a mapping to be right or reasonable.
EntityReference
semapv:LexicalMatching, semapv:ManualMappingCuration

author_id
Identifies the persons or groups responsible for asserting the mappings. Recommended to be a list of ORCIDs or otherwise identifying URIs.
EntityReference
N/A

author_label
A string identifying the author of this mapping. In the spirit of provenance, consider using author_id instead.
string
N/A

reviewer_id
Identifies the persons or groups that reviewed and confirmed the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.
EntityReference
N/A

reviewer_label
A string identifying the reviewer of this mapping. In the spirit of provenance, consider using reviewer_id instead.
string
N/A

creator_id
Identifies the persons or groups responsible for the creation of the mapping. The creator is the agent that put the mapping in its published form, which may be different from the author, which is a person that was actively involved in the assertion of the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.
EntityReference
N/A

creator_label
A string identifying the creator of this mapping. In the spirit of provenance, consider using creator_id instead.
string
N/A

license
A url to the license of the mapping. In absence of a license we assume no license.
uri
N/A

subject_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class

subject_source
URI of vocabulary or identifier source for the subject.
EntityReference
obo:mondo.owl, wikidata:Q7876491

subject_source_version
Version IRI or version string of the source of the subject term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl

object_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class

object_source
URI of vocabulary or identifier source for the object.
EntityReference
obo:mondo.owl, wikidata:Q7876491

object_source_version
Version IRI or version string of the source of the object term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl

mapping_provider
URL pointing to the source that provided the mapping, for example an ontology that already contains the mappings, or a database from which it was derived.
uri
N/A

mapping_source
The mapping set this mapping was originally defined in. mapping_source is used for example when merging multiple mapping sets or deriving one mapping set from another.
EntityReference
MONDO_MAPPINGS:mondo_exactmatch_ncit.sssom.tsv

mapping_cardinality
A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set.
1:1, 1:n, n:1, 1:0, 0:1, n:n
N/A

mapping_tool
A reference to the tool or algorithm that was used to generate the mapping. Should be a URL pointing to more info about it, but can be free text.
string
https://github.com/AgreementMakerLight/AML-Project

mapping_tool_version
Version string that denotes the version of the mapping tool used.
string
v3.2

mapping_date
The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file.
date
N/A

publication_date
The date the mapping was published. This is different from the date the mapping was asserted.
date
N/A

confidence
A score between 0 and 1 to denote the confidence or probability that the match is correct, where 1 denotes total confidence.
double
N/A

curation_rule
A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule is captured as a resource rather than a string, which enables higher levels of transparency and sharing across mapping sets. The URI representation of the curation rule is expected to be a resolvable identifier which provides details about the nature of the curation rule.
EntityReference
N/A

curation_rule_text
A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule should be captured as a resource (entity reference) rather than a string (see curation_rule element), which enables higher levels of transparency and sharing across mapping sets. The textual representation of curation rule is intended to be used in cases where (1) the creation of a resource is not practical from the perspective of the mapping_provider and (2) as an additional piece of metadata to augment the curation_rule element with a human readable text.
string
N/A

subject_match_field
A list of properties (term annotations on the subject) that was used for the match.
EntityReference
N/A

object_match_field
A list of properties (term annotations on the object) that was used for the match.
EntityReference
N/A

match_string
String that is shared by subj/obj. It is recommended to indicate the fields for the match using the object and subject_match_field slots.
string
N/A

subject_preprocessing
Method of preprocessing applied to the fields of the subject. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
EntityReference
semapv:Stemming, semapv:StopWordRemoval

object_preprocessing
Method of preprocessing applied to the fields of the object. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
EntityReference
semapv:Stemming, semapv:StopWordRemoval

similarity_score
A score between 0 and 1 to denote the similarity between two entities, where 1 denotes equivalence, and 0 denotes disjointness. The score is meant to be used in conjunction with the similarity_measure field, to document, for example, the lexical or semantic match of a matching algorithm.
double
N/A

similarity_measure
The measure used for computing a similarity score. This field is meant to be used in conjunction with the similarity_score field, to document, for example, the lexical or semantic match of a matching algorithm. To make processing this field as unambiguous as possible, we recommend using wikidata CURIEs, but the type of this field is deliberately unspecified.
string
https://www.wikidata.org/entity/Q865360, wikidata:Q865360, Levenshtein distance

see_also
A URL specific for the mapping instance. E.g. for kboom we have a per-mapping image that shows surrounding axioms that drive probability. Could also be a github issue URL that discussed a complicated alignment
string
N/A

issue_tracker_item
The issue tracker item discussing this mapping.
EntityReference
SSSOM_GITHUB_ISSUE:166

other
Pipe separated list of key value pairs for properties not part of the SSSOM spec. Can be used to encode additional provenance data.
string
N/A

comment
Free text field containing either curator notes or text generated by tool providing additional informative information.
string
N/A

Mapping Registry
A registry for managing mapping sets. It holds a set of mapping set references, and can import other registries.

Slot Name
Description
Value
Examples

mapping_registry_id
The unique identifier of a mapping registry.
EntityReference
N/A

mapping_registry_title
The title of a mapping registry.
string
N/A

mapping_registry_description
The description of a mapping registry.
string
N/A

imports
A list of registries that should be imported into this one.
uri
N/A

mapping_set_references
A list of mapping set references.
mapping set reference
N/A

documentation
A URL to the documentation of this mapping commons.
uri
N/A

homepage
A URL to a homepage of this mapping commons.
uri
N/A

issue_tracker
A URL location of the issue tracker for this entity.
uri
https://github.com/mapping-commons/mh_mapping_initiative/issues

Mapping Set Reference
A reference to a mapping set. It allows to augment mapping set metadata from the perspective of the registry, for example, providing confidence, or a local filename or a grouping.

Slot Name
Description
Value
Examples

mapping_set_id
A globally unique identifier for the mapping set (not each individual mapping). Should be IRI, ideally resolvable.
uri
http://purl.obolibrary.org/obo/mondo/mappings/mondo_exactmatch_ncit.sssom.tsv

mirror_from
A URL location from which to obtain a resource, such as a mapping set.
uri
N/A

registry_confidence
This value is set by the registry that indexes the mapping set. It reflects the confidence the registry has in the correctness of the mappings in the mapping set.
double
N/A

mapping_set_group
Set by the owners of the mapping registry. A way to group .
string
N/A

last_updated
The date this reference was last updated.
date
N/A

local_name
The local name assigned to file that corresponds to the downloaded mapping set.
string
N/A

Prefix
No description

Slot Name
Description
Value
Examples

prefix_name
No description
ncname
N/A

prefix_url
No description
uri
N/A

“Slot name” is LinkML jargon, should be “Field Name” for mortals

What I need is to remember what the columns are in SSSOM file. So the only thing that should be there is the "Mappings" header. And it should be "Column" instead of "Slot name" or "Field name"
Can we have another column in this table that is either "Required", "Recommended", or "Optional"? And sort the columns a bit better so I don't get some of the extraneous stuff towards the top of the list like "subject_category"
We need to rename EntityReference to be CURIE
It's confusing with the example column to tell the difference between fields that take a list of things or a single thing. Maybe stick to a single example for each
Any column that has N/A for the example means we need to do some thinking! We need an example for everything

What I need is to remember what the columns are in SSSOM file. So the only thing that should be there is the "Mappings" header and explicitly not the Mapping Sets header or anything else. And it should be "Column" instead of "Slot name" or "Field name"

Its a quite personal preference IMO, but OK; There are already a few groups using SSSOM in rdf format so I want to be careful to completely superimpose Table terminology (column etc). See compromise below.

Can we have another column in this table that is either "Required", "Recommended", or "Optional"?

I did, but its quite a problematic column due to our latest changes to the model to accommodate for literal mappings. We probably need to hardcode the values for subject_id and object_id as these are no longer documented on schema level to be required (the requirement is encoded in the spec and a few rules in the data model) to accommodate for literal mappings.

And sort the columns a bit better so I don't get some of the extraneous stuff towards the top of the list like "subject_category"

Not 100% sure, as the order is the order in which they should appear in the SSSOM table as well... How strong do you feel about this?

We need to rename EntityReference to be CURIE

I did, but not straight, see example and reasoning above.

It's confusing with the example column to tell the difference between fields that take a list of things or a single thing. Maybe stick to a single example for each

OK.

Any column that has N/A for the example means we need to do some thinking! We need an example for everything

Agreed but that's a bit more involved, first lets get the page up we have right now.
V2

Column/Field
Description
Value
Examples
Required

subject_id
The ID of the subject of the mapping.
entity reference (e.g. CURIE in TSV)
HP:0009894
Optional

subject_label
The label of subject of the mapping
string
Thickened ears
Recommended

subject_category
The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.
string
UBERON:0001062
Optional

predicate_id
The ID of the predicate or relation that relates the subject and object of this match.
entity reference (e.g. CURIE in TSV)
owl:sameAs
Required

predicate_label
The label of the predicate/relation of the mapping
string
has cross-reference
Optional

predicate_modifier
A modifier for negating the predicate. See https://github.com/mapping-commons/sssom/issues/40 for discussion
Not
Not
Optional

object_id
The ID of the object of the mapping.
entity reference (e.g. CURIE in TSV)
HP:0009894
Optional

object_label
The label of object of the mapping
string
Thickened ears
Recommended

object_category
The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.
string
UBERON:0001062
Optional

mapping_justification
A mapping justification is an action (or the written representation of that action) of showing a mapping to be right or reasonable.
entity reference (e.g. CURIE in TSV)
semapv:LexicalMatching
Required

author_id
Identifies the persons or groups responsible for asserting the mappings. Recommended to be a list of ORCIDs or otherwise identifying URIs.
entity reference (e.g. CURIE in TSV)
N/A
Optional

author_label
A string identifying the author of this mapping. In the spirit of provenance, consider using author_id instead.
string
N/A
Optional

reviewer_id
Identifies the persons or groups that reviewed and confirmed the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.
entity reference (e.g. CURIE in TSV)
N/A
Optional

reviewer_label
A string identifying the reviewer of this mapping. In the spirit of provenance, consider using reviewer_id instead.
string
N/A
Optional

creator_id
Identifies the persons or groups responsible for the creation of the mapping. The creator is the agent that put the mapping in its published form, which may be different from the author, which is a person that was actively involved in the assertion of the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.
entity reference (e.g. CURIE in TSV)
N/A
Optional

creator_label
A string identifying the creator of this mapping. In the spirit of provenance, consider using creator_id instead.
string
N/A
Optional

license
A url to the license of the mapping. In absence of a license we assume no license.
uri
N/A
Optional

subject_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class
Optional

subject_source
URI of vocabulary or identifier source for the subject.
entity reference (e.g. CURIE in TSV)
obo:mondo.owl
Optional

subject_source_version
Version IRI or version string of the source of the subject term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl
Optional

object_type
The type of entity that is being mapped.
owl class, owl object property, owl data property, owl annotation property, owl named individual, skos concept, rdfs resource, rdfs class, rdfs literal, rdfs datatype, rdf property
owl:Class
Optional

object_source
URI of vocabulary or identifier source for the object.
entity reference (e.g. CURIE in TSV)
obo:mondo.owl
Optional

object_source_version
Version IRI or version string of the source of the object term.
string
http://purl.obolibrary.org/obo/mondo/releases/2021-01-30/mondo.owl
Optional

mapping_provider
URL pointing to the source that provided the mapping, for example an ontology that already contains the mappings, or a database from which it was derived.
uri
N/A
Optional

mapping_source
The mapping set this mapping was originally defined in. mapping_source is used for example when merging multiple mapping sets or deriving one mapping set from another.
entity reference (e.g. CURIE in TSV)
MONDO_MAPPINGS:mondo_exactmatch_ncit.sssom.tsv
Optional

mapping_cardinality
A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set.
1:1, 1:n, n:1, 1:0, 0:1, n:n
N/A
Optional

mapping_tool
A reference to the tool or algorithm that was used to generate the mapping. Should be a URL pointing to more info about it, but can be free text.
string
https://github.com/AgreementMakerLight/AML-Project
Optional

mapping_tool_version
Version string that denotes the version of the mapping tool used.
string
v3.2
Optional

mapping_date
The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file.
date
N/A
Optional

publication_date
The date the mapping was published. This is different from the date the mapping was asserted.
date
N/A
Optional

confidence
A score between 0 and 1 to denote the confidence or probability that the match is correct, where 1 denotes total confidence.
double
N/A
Optional

curation_rule
A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule is captured as a resource rather than a string, which enables higher levels of transparency and sharing across mapping sets. The URI representation of the curation rule is expected to be a resolvable identifier which provides details about the nature of the curation rule.
entity reference (e.g. CURIE in TSV)
N/A
Optional

curation_rule_text
A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule should be captured as a resource (entity reference) rather than a string (see curation_rule element), which enables higher levels of transparency and sharing across mapping sets. The textual representation of curation rule is intended to be used in cases where (1) the creation of a resource is not practical from the perspective of the mapping_provider and (2) as an additional piece of metadata to augment the curation_rule element with a human readable text.
string
N/A
Optional

subject_match_field
A list of properties (term annotations on the subject) that was used for the match.
entity reference (e.g. CURIE in TSV)
N/A
Optional

object_match_field
A list of properties (term annotations on the object) that was used for the match.
entity reference (e.g. CURIE in TSV)
N/A
Optional

match_string
String that is shared by subj/obj. It is recommended to indicate the fields for the match using the object and subject_match_field slots.
string
N/A
Optional

subject_preprocessing
Method of preprocessing applied to the fields of the subject. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
entity reference (e.g. CURIE in TSV)
semapv:Stemming
Optional

object_preprocessing
Method of preprocessing applied to the fields of the object. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.
entity reference (e.g. CURIE in TSV)
semapv:Stemming
Optional

similarity_score
A score between 0 and 1 to denote the similarity between two entities, where 1 denotes equivalence, and 0 denotes disjointness. The score is meant to be used in conjunction with the similarity_measure field, to document, for example, the lexical or semantic match of a matching algorithm.
double
N/A
Optional

similarity_measure
The measure used for computing a similarity score. This field is meant to be used in conjunction with the similarity_score field, to document, for example, the lexical or semantic match of a matching algorithm. To make processing this field as unambiguous as possible, we recommend using wikidata CURIEs, but the type of this field is deliberately unspecified.
string
https://www.wikidata.org/entity/Q865360
Optional

see_also
A URL specific for the mapping instance. E.g. for kboom we have a per-mapping image that shows surrounding axioms that drive probability. Could also be a github issue URL that discussed a complicated alignment
string
N/A
Optional

issue_tracker_item
The issue tracker item discussing this mapping.
entity reference (e.g. CURIE in TSV)
SSSOM_GITHUB_ISSUE:166
Optional

other
Pipe separated list of key value pairs for properties not part of the SSSOM spec. Can be used to encode additional provenance data.
string
N/A
Optional

comment
Free text field containing either curator notes or text generated by tool providing additional informative information.
string
N/A
Optional

@cthoyt @jamesamcl Thanks so much for your help; its done:
https://mapping-commons.github.io/sssom/
Also, I have updated the LinkML pages while we are at it a bit along the same lines:

https://mapping-commons.github.io/sssom/linkml-index/ (LinkML front page)
Example page for a field

Both need work but I think they are already 150% better than before!


[BUG]: Kafka Message cannot be serialized to JSON when dict contains bytes

Issue
When using the KafkaServer to process Inference Requests while using a model that produces results that contain raw bytes (e.g. any recent transformer), the response is unable to be written to the output topic.
The resulting error:
2024-03-05 00:50:10,677 [mlserver.kafka] ERROR - ERROR 500 - Type is not JSON serializable: bytes
Traceback (most recent call last):
  File "venv/lib/python3.10/site-packages/mlserver/kafka/server.py", line 72, in _process_request_cb
    process_request_task.result()
  File "venv/lib/python3.10/site-packages/mlserver/kafka/server.py", line 98, in _process_request
    value=kafka_response.encoded_value,
  File "venv/lib/python3.10/site-packages/mlserver/kafka/message.py", line 78, in encoded_value
    return _encode_value(self.value)
  File "venv/lib/python3.10/site-packages/mlserver/kafka/message.py", line 21, in _encode_value
    return orjson.dumps(v)
TypeError: Type is not JSON serializable: bytes

Context / How to reproduce
python --version: Python 3.10.13
mlserver --version: mlserver, version 1.4.0
requires mlserver-huggingface
model-settings.json:
{
    "name": "transformer",
    "implementation": "mlserver_huggingface.HuggingFaceRuntime",
    "parameters": {
        "extra": {
            "task": "text-generation",
            "pretrained_model": "distilgpt2"
        }
    }
}

settings.json:
{
    "debug": true,
    "kafka_enabled": true,
    "kafka_servers": "<redacted>"
}

example.py:
import json
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers="<redacted>:9094")

headers = {
    "mlserver-model": b"transformer",
}
inference_request = {
    "inputs": [
        {
            "name": "args",
            "shape": [1],
            "datatype": "BYTES",
            "data": ["ml server cant do bytes yet"],
        }
    ]
}
producer.send(
    "mlserver-input",
    json.dumps(inference_request).encode("utf-8"),
    headers=list(headers.items()))
producer.flush()

Possible Solution
The http server has a special encoder that is used to make this possible, simplest idea would be to just reuse that.

I created a initial Draft on how this could be done in #1622, but this is not DRY. Once this has been vetted I would refactor the code and write the appropriate tests.

I'm facing the same issue when my model outputs a numpy.array of string. It works fine when invoked through the REST API, but failed when invoked via Kafka server. I believe this is because of the difference on how InferenceResponse object is serialized. FastAPI uses the fastapi.encoders.jsonable_encoder function, while KafkaMessage uses json.dumps(InferenceResponse.dict()) [code]
I tried adding jsonable_encoder prior to json.dumps in KafkaMessage encoder function and it seems to have solved the issue.
from fastapi.encoders import jsonable_encoder

def _encode_value(v: dict) -> bytes:
    v = jsonable_encoder(v)

    if orjson is None:
        dumped = json.dumps(v)
        return dumped.encode("utf-8")

    return orjson.dumps(v)

Using  pydantic's encoder as the default encoder is also a possible solution (for pydantic<2).
from pydantic.json import pydantic_encoder

def _encode_value(v: dict) -> bytes:
    if orjson is None:
        dumped = json.dumps(v, default=pydantic_encoder)
        return dumped.encode("utf-8")

    return orjson.dumps(v, default=pydantic_encoder)

@hansen-young we merged a contribution from @DerTiedemann https://github.com/SeldonIO/MLServer/pull/1622 that fixes this issue. Please submit a new ticket if there are things still that need to be fixed.


#use tag tf-rmm-v0.1.0/tf-rmm-v0.2.0/tf-rmm-v0.3.0, Configure Stage error

when i checkout the tf-rmm to v0.1.0\0.2.0\0.3.0 tag, use the command(cmake -DRMM_CONFIG=fvp_defcfg -S ../tf-rmm/ -B ./build), always report this error, how can i solve it?
-- The C compiler identification is GNU 10.3.1
-- The CXX compiler identification is GNU 10.3.1
-- The ASM compiler identification is GNU
-- Found assembler: /data1/lijunbin/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /data1/lijunbin/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /data1/lijunbin/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf/bin/aarch64-none-elf-c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Found Python3: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- Configuring done
CMake Error at lib/t_cose/CMakeLists.txt:6 (add_library):
Cannot find source file:
/data1/lijunbin/tf-rmm/ext/t_cose/crypto_adapters/t_cose_mbedtls_crypto.c

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
.hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
CMake Error at lib/t_cose/CMakeLists.txt:6 (add_library):
No SOURCES given to target: t_cose

Similar issue to https://github.com/TF-RMM/tf-rmm/issues/5 .


CSV importer: confusing behaviour of checkboxes

In the configuration options for the CSV/TSV importer, two checkboxes are linked as if one of them had to be checked.
This is a bad pattern: if those checkboxes are really meant to be grouped, then they should be radio buttons and be positioned next to each other.
To Reproduce
Steps to reproduce the behavior:

First, open a CSV/TSV file
Then, click on the "Parse next 1 lines as column headers"

Current Results

Expected Behavior
In this case I was actually trying to get both checkboxes to be not checked (so that my project gets created with Column 1, Column 2… as column headers). I can achieve this by keeping the Parse next… checkbox on and setting the number of lines to 0 but that is a bit counter-intuitive.
Versions

Operating System: Debian
Browser Version: Firefox
JRE or JDK Version: 11
OpenRefine: master (3.6 SNAPSHOT)

I have tweaked the ui a little bit . Does it look fine?

I think both of the options should be connected as when the user is trying to enter the column names himself , then the parse next   checkbox should be turned off .

I absolutely love it!

Maybe the Use character could be moved above the Trim ?

Does this fulfil the requirement...?

In addiion to this I have tried to add some visual seperation between the 3sections .

Should I move forward with this design or revert to back to previous one..

@rachittiwari8562 The visual separation is optional and we don't have that in the other import loaders so I would remove those vertical section separators here in the CSV importer for now.  Then I think we can merge.  There are many many things that visually I would like to see changed and restyled throughout OpenRefine, but first we need a comprehensive plan and that will likely come after or along with OpenRefine 4.0 in phases.


feat: add short method for formatMessage i18n.t()

Proposed changes

Added short method usage of formatMessage()
Update src/Bindings/View.ts to use the short method

Fix #118
Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING doc
[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added necessary documentation (if appropriate)

Further comments
...

Thanks for the PR and for showing the patience 👍


Update the laundry card

This adds a revamped card, which doesn't need arbitrary margins.

Welcome back @KTibow, not hearing you from long time...
Can I merge this?

This is only a tweak in the README, so you should be fine to merge this. (I went on break for a bit, for a couple of weeks I had >500 GitHub notifications.)


Test: Added tcpdump containers on test and dump output when it fails.

This commit try to get visibility when the cilium restarts on Kubernetes
test. Tcpdump containers will be in the backend running on host
networking fetching all the traffic and will be dump in logs if a test
failed.
Signed-off-by: Eloy Coto<EMAIL_ADDRESS>

This change is

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

Fixes #5814

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

@aanm made a changes as you proposed, please review again. Best regards.

test-me-please

@aanm your comments should be addressed. Thanks

test-me-please

@aanm this is open for review.

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

Coverage increased (+0.005%) to 42.936% when pulling 44fbaad211f1ee7b9c22c666e96286be0fc2c2ae on eloycoto:TcpDump into 279a3086f0797f2c9d065820418ba6474fea545f on cilium:master.


Make it easier to use external volumes for database containers

I found my way around creating a database container with a volume mount
var database = builder.AddPostgresContainer("database")
    .WithVolumeMount("../../data/database/data", "/var/lib/postgresql/data");

It would be cool to have .WithVolumeMountForData("../../data/database/data") offered as an extension method to IResourceBuilder<PostgresContainerResource>
It would be even cooler if the libraries would push us towards the pit of success by assuming that we want to use a volume mount for the database data.

It would be even cooler if the libraries would push us towards the pit of success by assuming that we want to use a volume mount for the database data.

How could the library push you towards using the mount? Do you mean that the mount should be required when adding a postgres container and it would need to be specifically deactivated if not wanted?

I like this idea. I think a holistic approach to this and having some sort of approach to do this for every supported component would be necessary for consistency (postgres, sql server, rabbitmq, etc..., and any other upcoming components). While some users may prefer not to use volumes by default, providing it by default could enhance usability for those who do.
If adding volumes by default is not feasible or not the approach the maintainers want to take, then introducing a more streamlined extension method would be a decent alternative. The current challenge I find when working with volumes is determining the appropriate volume path. An ideal solution would allow simply naming the volume without having to specify the path, significantly simplifying the process. Since aspire is opinionated with its container version for each component, it's not like the path is unknown or varying in any way.
Here's a comparison of the current method versus the proposed streamlined approach in code:
// Current method
var queue = builder.AddRabbitMQContainer("queue")
                   .WithVolumeMount("VolumeQueue", "/var/lib/rabbitmq", VolumeMountType.Named);

var accountDb = builder.AddPostgresContainer("accountDatabase")
                       .WithVolumeMount("VolumeMount.accountdb.data", "/var/lib/postgresql/data", VolumeMountType.Named)
                       .AddDatabase("account");

// Proposed streamlined method
var queue = builder.AddRabbitMQContainer("queue")
                   .WithNamedVolume("VolumeQueue");

var accountDb = builder.AddPostgresContainer("accountDatabase")
                       .WithNamedVolume("VolumeMount.accountdb.data")
                       .AddDatabase("account");

The proposed method would make the development experience more efficient and user-friendly, especially for those who frequently work with volumes.

I don't think we should mount volumes by default. I'd prefer we consider methods that expose the underlying container's supported paths and environment variables for the various built-in behaviors, including the data directories. There would need to be specific overloads of these for each container resource type of course, but they'd be the same name and shape for consistency, e.g.:
var accountDb = builder.AddPostgresContainer("accountDatabase")
    .WithDataVolume() // Automatically named volume mapped to Postgres-specific path for data, accepts optional volume name
    .WithInitDbBindMount("./data/accountDatabase") // Path to dir on host to mount to /docker-entrypoint-initdb.d
    .AddDatabase("account");

There are the following container resources (they inherit from ContainerResource):

MongoDBContainerResource
MySqlContainerResource
PostrgresContainerResourcce
PostgresServerResource
RabbitMQContainerResource
RedisContainerResource
SqlServerContainerResource
SqlServerDatabaseResource

Are PostgresServerResource and SqlServerDatabaseResource actually container resources?
PostgresServerResource uses the type "postgres.server.v0" in the manifest while there is a method WriteContainer(ContainerResource container) in the ManifestPublishingContext which uses the type "container.v0". Maybe I'm just not getting it, but it seems a little bit off to me?
For the SqlServerDatabaseResource  it is pretty much the same (further e.g. the MongoDBDatabaseResource is not a container resource). Did I miss something? Why is SqlServerDatabaseResource a container resource while the mostly equal MongoDBDatabaseResource isnt?
Apart from that I would suggest the following extensions methods (i assume that the signature of different volume mounts may vary as they have completely different requirements but the signature should be consitant between the same method for different containers):
...
.WithDataVolume() // Volume name is auto-generated, VolumeMountType is Named and it is not readonly
.WithDataVolume(string source, VolumeMountType mountType =VolumeMountType .Named , bool isReadonly = false) // Configure the details yourself
.WithLogVolume() // Volume name is auto-generated, VolumeMountType is Named and it is not readonly
.WithLogVolume(string source, VolumeMountType mountType =VolumeMountType .Named) // Configure the details yourself, readonly setting is not available as it does not make any sense to make the log folder readonly
.WithInitDbBindMount(string source, VolumeMountType mountType =VolumeMountType .Bind, bool isReadonly = true) // No version without the source as it probably doesn't have any common use cases, i would guess probably mostly a readonly bind volume
...

I would implement these four function wherever applicable. Are there any further directories that could be commonly used? Did i miss any container resources?

@DamianEdwards

@stbau04 I think the existing WithVolumeMount is conflating different container concepts (bind-mount vs. volumes) so we should feel free to suggest changing it too.

Like two methods WithBindMount/WithVolume instead of the VolumeMountType enum? That would all in all add three additional methods if we want to support all possabilites i suggested in my prior comment

I don't think we'd need volume-flavored overloads for initdb support, that really only makes sense as a bind-mount if I understand correctly. For data and logs I'd assumed volumes were the primary scenario, but I can imagine some folks might want to bind to existing host directories for data, but seems a bit unlikely for logs?
All that said, having first-class methods for both volumes and bind-mounts for data, logs, and initdb would be fine I think.

This is a bit of a quirk of the latest changes to those resources and I expect this will change again. The non-container named resources now run as containers locally by default, but publish to the manifest as non-container resources.

Ok, so it probably does not make any sense to implement the extension methods for them as they are not deployed as container resources (would it even work?)

Should i open a seperate issue for the WithBindMount/WithVolume stuff?

Are PostgresServerResource and SqlServerDatabaseResource actually container resources?
PostgresServerResource uses the type "postgres.server.v0" in the manifest while there is a method WriteContainer(ContainerResource container) in the ManifestPublishingContext which uses the type "container.v0". Maybe I'm just not getting it, but it seems a little bit off to me?
For the SqlServerDatabaseResource it is pretty much the same (further e.g. the MongoDBDatabaseResource is not a container resource). Did I miss something? Why is SqlServerDatabaseResource a container resource while the mostly equal MongoDBDatabaseResource isnt?

Thanks for reporting these issues. Working on a fix now. PostgresServerResource should not derive from ContainerResource, and neither should SqlServerDatabaseResource.

Just to expand a little bit on the differences between methods like AddPostgres(...) and AddPostgresContainer(...). The reason we have two methods is that when it comes to deployment, sometimes people will want to just defer to the deployment tool to create a resource using that target environments ideal implementation of that resource. For example in Azure, Postgres is probably best handled by the Azure Postgres Flexible Server resource type vs spinning up your own Postgres container and dealing with all the operational issues around doing that well.
Sometimes however, a developer wants to explicitly say that I want Postgres, and I want it implemented as a container that sits alongside the rest of my application code in ACA (continuing with the Azure example). You always need to think through whether that container is appropriate for production workloads though.

Just to expand a little bit on the differences between methods like AddPostgres(...) and AddPostgresContainer(...). The reason we have two methods is that when it comes to deployment, sometimes people will want to just defer to the deployment tool to create a resource using that target environments ideal implementation of that resource. For example in Azure, Postgres is probably best handled by the Azure Postgres Flexible Server resource type vs spinning up your own Postgres container and dealing with all the operational issues around doing that well.
Sometimes however, a developer wants to explicitly say that I want Postgres, and I want it implemented as a container that sits alongside the rest of my application code in ACA (continuing with the Azure example). You always need to think through whether that container is appropriate for production workloads though.

It feels like development and deployment concerns are clashing here: If I wear the developer hat, I care little how it will be deployed.
In my humble opinion, rather than two conflicting resource types or methods, we should have one resource (a development concept) that can be specialized to be deployed in one way or the other.
To me it feels like the Deployment strategy should be an (optional) metadata of the resource. It definitely should not be a decision point on which identical resource I use at dev time.

But there are some functions you can only use on container resources (e.g. WithVolumeMount). How would you handle them? Either they can be applied always and just fail if it is not possible or they can only be applied after setting the metadata e.g. through an .AsContainer extension method, which might result in a pretty similar structure as it is now
Further as @mitchdenny mentioned, AddPostgres and AddPostgresContainer have some differences (e.g. you need to think whether the container is fine to be deployed to production). ). If this is dependent on the metadata of the resource, it would mean that just a small method call might change the effective type of the resource completely.

@Kralizek we used to just have AddPostgresContainer (as an example). And when it was written to the manifest it would be with a resource type of postgres.server.v0 - with very little other information because we assume that the deployment tool is going to provision it. The change we've made here is to allow people to exert a little bit of control over the deployment tool to say actually I do want this to be a container.
The alternative that we considered was not having AddPostgresContainer(...) at all, and just having AddPostgres(...) and if someone wanted a Postgres container that they could manipulate with volume mounts etc, then they would just use AddContainer(...) and build it up themselves.
The complexity with that is that Aspire does some magic around connection string handling when you pass in the type via WithReference(...) to extract the connection string. A handle rolled container using AddContainer(...) wouldn't be able to participate in that mechanic because it doesn't have the right interfaces (because not all containers provide connection strings).
The API surface that we have isn't perfect, but we've tried it a few different ways and this is the one that felt the most ergonomic once all factors were considered. It is all still subject to change however and your feedback is noted.

I created a seperate issure for splitting the current WithVolumeMount into two methods (one for bind mounts and one for named volumes): https://github.com/dotnet/aspire/issues/1437

What should the name for automatically generated volumes be? In my first approach i used a guid (as @josephaw1022 did in his PR; yes, there are two PRs now?). But the random guid would change each time the method is executed (at least while developing this means a new volume on each start, i am not sure what happens when the project is deployed).
We could either persist the guids somewhere if a container way already created, but i don't think that this is actually the way to go? Another approach could be to generate the volume dependent on some sort of assembly id and the resource name, but then we could only run the application once per host (otherwise they would share volumes). I don't actually like any of these approaches, but i couldn't figure out anything else.
How should we solve that?

Wrote a long-winded explanation explaining giving my thought process on this https://github.com/dotnet/aspire/pull/1447#issuecomment-1859367388
TLDR of comment
In my opinion, the simplest approach to this would have the developers write a name for the volumes like this
var db1 = builder.AddPostgresContainer("db1")
                       .WithNamedVolume("db1.volume");

var db2 = builder.AddPostgresContainer("db2")
                       .WithNamedVolume("db2.volume");

The developers would need to name the volume, but they wouldn't need to memorize or look up any volume paths with this approach.
However, the case where two volumes have the same name needs to be considered and thought through for this to work.
Currently if you were to run this

var volumeName = "VolumeMount.sqlserver.data";

var database = builder.AddSqlServerContainer("sqlserver", sqlpassword)
    .WithVolumeMount(volumeName, "/var/opt/mssql", VolumeMountType.Named)
    .AddDatabase("appdb");

var anotherDatabase = builder.AddSqlServerContainer("sqlserver2", sqlpassword)
    .WithVolumeMount(volumeName, "/var/opt/mssql", VolumeMountType.Named)
    .AddDatabase("anotherdb");

builder.Build().Run();

You should see this error

This error seems to be more of a symptom exception rather than an exception being thrown at the root cause (duplicate volume names).
So, I think having some custom error being thrown for two container resources using the same volume name would need to be implemented so that if someone were to write
var db1 = builder.AddPostgresContainer("db1")
                       .WithNamedVolume("db1.volume");

var db2 = builder.AddPostgresContainer("db2")
                       .WithNamedVolume("db1.volume");

// or

var volumeName = "VolumeMount.sqlserver.data";

var database = builder.AddSqlServerContainer("sqlserver", sqlpassword)
    .WithVolumeMount(volumeName, "/var/opt/mssql", VolumeMountType.Named)
    .AddDatabase("appdb");

var anotherDatabase = builder.AddSqlServerContainer("sqlserver2", sqlpassword)
    .WithVolumeMount(volumeName, "/var/opt/mssql", VolumeMountType.Named)
    .AddDatabase("anotherdb");

builder.Build().Run();

they would then immediately know they have a duplicate volume name.
And now that I think about it, adding more specific errors for duplicate volume names doesn't necessarily need to be done for this new syntactic sugar to be added as it's still an issue without the syntactic sugar. But, I am curious on if we wanted just the syntactic sugar done now and do something later for the duplicate volume names exception issue or do we want that solved in the same pr or done before the syntactic sugar pr?

@josephaw1022
In my opinion we should probably create a seperate issue/PR for that as this is a somewhat different topic. Further it is not even approved by a team member that this error is something we want

Probably we should wait for https://github.com/dotnet/aspire/pull/1521 and then see how it affects this issue (especially the volume/bind mount stuff)

cc @JamesNK

Moving to next preview.

@eerhardt We're going to go with @stbau04's PR on this.