Update desktop application

ISSUE: https://github.com/tomochain/tomomaster/issues/347
When there is no internet connection, an error is displayed

Pull Request Test Coverage Report for Build 628

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

Totals

Change from base Build 626:
0.0%

Covered Lines:
92

Relevant Lines:
103

💛  - Coveralls


Add testing with jsdom.

19/20 tests pass. The one failing test is addressed by https://github.com/contra/react-responsive/pull/51

Thanks!

Getting a failing test still after merging both


Is there a way to let the user resize column width?

Thanks!

you might have to customize this feature yourself
https://onewaytech.github.io/vue2-datatable/doc/#/en/DIY

http://www.bacubacu.com/colresizable/#samples

I think this plugin should work, but you have to adjust the style to make it look normal


Use SIGCHLD for graceful child cleanup without hanging

We can't guarantee that child processes exit immediately.  Rather than hanging, we handle the SIGCHLD we receive to ensure that we wait on a process when it's ready to be waited upon.

e73a8e85878ddd5e60075b8b6daca5d52c6dbd06


"Editor: Accept Suggestion On Enter" defaulting to "On" messes with code editing in languages like Python

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

VS Code Version: 1.71.2
OS Version: Linux 5.19.14

Steps to Reproduce:

Install VS Code with default settings
Open a Python file
Try to enter this code (no pasting, type it out blindly!):pr = 5
new_value = 2 * pr
print("Result: " + str(new_value))

You'll notice that you can't.  (Even though there are plenty other common ways like TAB to do this, and in a language without line terminators this is quite suboptimal.)
The reason for this is "Editor: Accept Suggestion On Enter" defaults to "on".
A better default might be "smart" if it was smarter and actually disabled Enter-for-autocomplete in languages where it's interfering. "off" would also work, TAB is well known. Or some new value that is alike "on for languages with explicit line terminators".
#108536 was closed with the reasoning 1. we aren't fixing defaults for such highly visible [...] features (If it's highly visibly bad, isn't that worse?) and 2. changing the default for your setup is easy (then why not fix it for the majority and let the others change it?).
I think this would help making languages without line terminators less of a second class citizen, and to make VS Code more beginner friendly since interfering with basic newlines is disorienting.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.72.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

/duplicate of https://github.com/microsoft/vscode/issues/108536

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


fix i18n load path

current version occurs
I18n::UnknownFileType:
       can not load translations from /(...snip...)/gems/date_validator-0.8.0/locales, the file type  is not known

when using with rails.
and
$ rails console
> Rails.application.config.i18n[:load_path]
=> ["...../gems/date_validator-0.8.0/locales",
 "...../gems/devise-3.5.1/config/locales/en.yml",
 "...../gems/kaminari-0.16.3/config/locales/kaminari.yml",
 "...../application/config/locales/devise.en.yml",
 "...../application//config/locales/devise.ja.yml",
 "...../application/config/locales/en.yml",
:
:

Thanks!


Detroit Home Connect - Accessibility Audit

Goal: Address results of Lighthouse Accessibility audit by the time Detroit drops into maintenance contract (March 31st 2023). Additionally, create best practices framework and documentation for Accessibility work in the future and
determine a flexible, collaborative model for features squad work.
Description:
Lighthouse performed an accessibility audit of the Detroit Bloom instance, and itemized the output. The features team (Sarah, Em, Colin) wants to implement fixes to these findings before Detroit falls into their support contract. We also hope to use this exercise to produce best practices documentation on accessibility guidelines and a template for feature and issue writing going forward.
Definition of Done:

Lighthouse audit findings incorporated into the Detroit Bloom instance
Lighthouse audit findings incorporated into Bloom-Core where applicable
Features team drafted a preliminary issue template
Accessibility best practices documents for future projects (Acceptance criteria, QA notes and considerations, general guidelines, list of key questions)

Links:
Issues Drafts
Project Plan
Itemized output

Closing -- opened an issue instead of an epic on accident.


Hyperlink and Bulleted List support.

Thank you very much for providing the "RichTextKit" package. It helps my project.
Please kindly add a Hyperlink and bulleted list. Also, kindly take this as a request.

Hi,
I'm currently not working actively on this project, but I'm happy to merge any PRs that add this feature.

Hello @VIJAYARAJSVR , just note that I didn't forget about this. I am actively implementing this and I ran into some issues with the current implementation. I want to give you some background:
As you can see, bulleted list were super complicated to implement with TextKit 1, best solution to do this is to create custom NSLayoutManager and NSTextContainer in order to draw bullet points with some offset. I have tried my best to make it work as smooth as possible but I ran into so many issues that I can't actually even name.
With TextKit 2, it is possible to create bullet list on go by adding textList array to NSMutableParagraphStyle as follows:
let list = NSTextList(markerFormat: .decimal, options: 0)
            let listLevel1Style = NSMutableParagraphStyle()
            listLevel1Style.textLists = [
                list
            ]
        setRichTextAttribute(.paragraphStyle, to: listLevel1Style)

This will work, but only iOS 16+ (which is the project, that's cool) when using TextKit2... However there is another issue with the project, that custom text alignment setting collides with this a bit.
In order to fix paragraphs, we needed to use textStorage instead of simply just adding paragraph attribute to the text alone since this introduced buggy behaviour.
See https://github.com/danielsaidi/RichTextKit/issues/145 and https://github.com/danielsaidi/RichTextKit/pull/147 for further understanding of the implementation.
But dont worry, everything fixable :D

@DominikBucher12 - just a note that there currently seems to be a TextKit 2 bug with using textLists on macOS 14+, though it seems to be working fine on iOS. I've made some comments on the issue here: https://developer.apple.com/forums/thread/747433
It looks like even their sample code associated with that text list announcement from WWDC (TextKitAndTextViewSampleApp) is no longer available.


Do not export dispatch, just use getindex

Closes #21. I'm not going to deprecate dispatch, since we're still pretty early in dev.

bors r+


feat(pitch): ✨ add midiNumber getter

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 99.813%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
1070

Relevant Lines:
1072

💛  - Coveralls


Implement smart tabs for indent rule

Smart tabs allows the use of tabs for indentation, spaces for alignment.  This is a crucial feature that there is basically no alternative to, if you're using tabs for indentation.  Please implement this.  I used it with ESLint and didn't come across any issues.

Not a priority for this project, but feel free to fork it and open a PR, I'll be glad to help you.

The solution for this is to implement a new rule to give a TSLine equivalent to no-mixed-spaces-and-tabs.  I have implemented this rule and I will submit a pull request.

@jez9999 , I've tried these rules and, given a tab followed by a space, am still getting a lint Error of "indentation has mixed tabs and spaces (ter-no-mixed-spaces-and-tabs)" when smartTabs is set to true. I have tried both "ter-no-mixed-spaces-and-tabs": { "smartTabs": true } and "ter-no-mixed-spaces-and-tabs": { "type": "tabs", "smartTabs": true }, although I'm not sure what the difference ought to be between those two options.


add eslint-plugin-header, and --fix all

Summary
add eslint-plugin-header, and --fix all, as done in other repositories. This required some manual changes to preserve the other copyright headers included with same.
Ticket Link
None.
Checklist

[ ] Added or updated unit tests (required for all new features)
[ ] Includes text changes and localization file updates

Device Information
This PR was tested on: N/A
Screenshots
N/A

@enahum: Have we cut 1.9 yet, such that this can be merged to master?


chore(repo): Bump node version matrix for Github actions

Type of change

[ ] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[x] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[ ] @clerk/clerk-js
[ ] @clerk/clerk-react
[ ] @clerk/nextjs
[ ] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[ ] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/clerk-sdk-node
[ ] @clerk/shared
[ ] @clerk/fastify
[ ] gatsby-plugin-clerk
[ ] build/tooling/chore

Description

[ ] npm test runs as expected.
[ ] npm run build runs as expected.

@clerk/shared:test:     Expected: "11:15 PM"
@clerk/shared:test:     Received: "11:15 PM"

The date issue is back again :)
I'll try to tackle this today as the last node version that works consistently is 18.12.1

This failed initially because of a different white space character produced by specific node versions. This broke in node 18.12.2 and is now solved in >18.15 and >19.8

Why does `build` checks node versions of this PR are still the ones ?

Why does build checks node versions of this PR are still the ones ?

Not related to the PR itself, we just need to update the github status checks for the new job names. WIll do that shortly.


Artefact remains after opening a bookmark

Artefact remains after opening a bookmark (in Google Chrome at least):

Scrolling away fixes it.

Hi, I don't think that's related to this plugin. Whichever option you're using from either url_open_command or url_open_plugin, either of them must be emitting the message and a probable bug in Neovim might be causing it to be displayed here.
Closing this issue but feel free to ask any other questions.


Validation: Reject D18 Charge Information request if specified ChargeOwner does not match Sender GLN

Today, when receiving a charge request of any type, the system verifies that there is a match between the token used and the Sender (GLN) written in the xml message.
Next, a validation is needed to ensure that the Charge Owner in the xml match the Sender (GLN). If that's not the case, the system shall reject the request, thereby blocking market participants from creating/updating and stopping other market participants' charges.
Notes

Please note that this new async validation rule is embedded within one of our product goals.

Acceptance criteria:

[x] 1 Given a Charge Information Request (D18) where ChargeTypeOwner differs from Sender (GLN) is received and processed
When sender does a new peek (for a message)
Then a rejection message is received with error code <TBD> and error message <TBD>

[x] 2 Given a Charge Information Request (D18) where ChargeTypeOwner equals Sender (GLN) is received and processed
When sender does a new peek (for a message)
Then a confirmation message is received.

Test procedure:
Ingest an update of existing charge (or create a new one) with field sender_MarketParticipant.mRID not equal to the chargeTypeOwner_MarketParticipant of at least one transaction/operation/MktActivityRecord.
The expected behavior is a rejection with errortext:
The specified charge owner {charge owner id} do not match sender {sender id} and is therefore not authorized to change charge id {charge id} of type {charge type}
If ingested message has more than one transaction, all subsequent transactions must be rejected with a reference to the first invalid transaction.

AC1: failed scenario

<cim:RequestChangeOfPriceList_MarketDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cim="urn:ediel.org:structure:requestchangeofpricelist:0:1" xsi:schemaLocation="urn:ediel.org:structure:requestchangeofpricelist:0:1 urn-ediel-org-structure-requestchangeofpricelist-0-1.xsd">
cim:mRIDDocId{{$isoTimestamp}}</cim:mRID>
cim:typeD10</cim:type>
cim:process.processTypeD18</cim:process.processType>
cim:businessSector.type23</cim:businessSector.type>
<cim:sender_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:sender_MarketParticipant.mRID>
cim:sender_MarketParticipant.marketRole.typeDDM</cim:sender_MarketParticipant.marketRole.type>
<cim:receiver_MarketParticipant.mRID codingScheme="A10">5790001330552</cim:receiver_MarketParticipant.mRID>
cim:receiver_MarketParticipant.marketRole.typeDDZ</cim:receiver_MarketParticipant.marketRole.type>
cim:createdDateTime{{ISO8601Timestamp}}</cim:createdDateTime>
cim:MktActivityRecord
cim:mRIDOpId1{{$isoTimestamp}}</cim:mRID>
cim:ChargeGroup
cim:ChargeType
<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">5790001330551</cim:chargeTypeOwner_MarketParticipant.mRID>
cim:typeD03</cim:type>
cim:mRIDjdTarId024</cim:mRID>
cim:nameTax tariff created</cim:name>
cim:descriptionCREATE</cim:description>
cim:priceTimeFrame_Period.resolutionP1D</cim:priceTimeFrame_Period.resolution>
cim:effectiveDate2022-06-30T22:00:00Z</cim:effectiveDate>

cim:VATPayerD02</cim:VATPayer>
cim:transparentInvoicingfalse</cim:transparentInvoicing>
cim:taxIndicatortrue</cim:taxIndicator>
</cim:ChargeType>
</cim:ChargeGroup>
</cim:MktActivityRecord>
cim:MktActivityRecord
cim:mRIDOpId2{{$isoTimestamp}}</cim:mRID>
cim:ChargeGroup
cim:ChargeType
<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
cim:typeD03</cim:type>
cim:mRIDjdTarId024</cim:mRID>
cim:nameTax tariff updated</cim:name>
cim:descriptionUPDATE</cim:description>
cim:priceTimeFrame_Period.resolutionP1D</cim:priceTimeFrame_Period.resolution>
cim:effectiveDate2022-07-14T22:00:00Z</cim:effectiveDate>

cim:VATPayerD02</cim:VATPayer>
cim:transparentInvoicingfalse</cim:transparentInvoicing>
cim:taxIndicatortrue</cim:taxIndicator>
</cim:ChargeType>
</cim:ChargeGroup>
</cim:MktActivityRecord>
cim:MktActivityRecord
cim:mRIDOpId3{{$isoTimestamp}}</cim:mRID>
cim:ChargeGroup
cim:ChargeType
<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
cim:typeD02</cim:type>
cim:mRIDFeeId002</cim:mRID>
cim:nameCharge Fee day Name</cim:name>
cim:descriptionThe charge description update</cim:description>
cim:priceTimeFrame_Period.resolutionP1M</cim:priceTimeFrame_Period.resolution>
cim:effectiveDate2022-06-05T22:00:00Z</cim:effectiveDate>

cim:VATPayerD02</cim:VATPayer>
cim:transparentInvoicingfalse</cim:transparentInvoicing>
cim:taxIndicatorfalse</cim:taxIndicator>
cim:Series_Period
cim:resolutionP1M</cim:resolution>
cim:timeInterval
cim:start2022-05-31T22:00Z</cim:start>
cim:end2022-06-30T22:00Z</cim:end>
</cim:timeInterval>
cim:Point
cim:position1</cim:position>
cim:price.amount100.001</cim:price.amount>
</cim:Point>
</cim:Series_Period>
</cim:ChargeType>
</cim:ChargeGroup>
</cim:MktActivityRecord>
cim:MktActivityRecord
cim:mRIDOpId4{{$isoTimestamp}}</cim:mRID>
cim:ChargeGroup
cim:ChargeType
<cim:chargeTypeOwner_MarketParticipant.mRID codingScheme="A10">{{GridAccessProvider}}</cim:chargeTypeOwner_MarketParticipant.mRID>
cim:typeD03</cim:type>
cim:mRIDTarId022</cim:mRID>
cim:nameTax tariff stopped</cim:name>
cim:descriptionSTOP</cim:description>
cim:priceTimeFrame_Period.resolutionP1D</cim:priceTimeFrame_Period.resolution>
cim:effectiveDate2022-07-31T22:00:00Z</cim:effectiveDate>
cim:terminationDate2022-07-31T22:00:00Z</cim:terminationDate>
cim:VATPayerD02</cim:VATPayer>
cim:transparentInvoicingfalse</cim:transparentInvoicing>
cim:taxIndicatortrue</cim:taxIndicator>
</cim:ChargeType>
</cim:ChargeGroup>
</cim:MktActivityRecord>
</cim:RequestChangeOfPriceList_MarketDocument>

Originally, it was assumed that a charge information (operation) with mismatching charge owner (compare to sender GLN), would be able to reject the subsequent charge informations (operations) intended for the "correct" charge.
This assumption does not stand, as it only occurs for any subsequent charge informations (operations) where the exact combination of ChargeId, ChargeType and ChargeOwner is used. Any charge informations (operations) deviating in any of the three will NOT get rejected, as they are processed as a separate command(s).
Had a talk with Irene (SME); we will keep ChargeOwnerMismatch as an input validation. This means only subsequent charge informations (operations) with the exact combination of id, type and owner are rejected. Other charge informations received in the same request that were most likely intended for the same Charge are not rejected due to this.
So if the following Charge Information request is received, bundled with 4x charge informations (operations):
Sender GLN: A
Operation 1 (ChargeID: Tariff01, ChargeType: D03, ChargeOwner: A)
Operation 2 (ChargeID: Tariff01, ChargeType: D03, ChargeOwner: B)
Operation 3 (ChargeID: Tariff01, ChargeType: D03, ChargeOwner: A)
Operation 4 (ChargeID: Tariff01, ChargeType: D03, ChargeOwner: B)
Then Operation 1 + 3 are processed together (and accepted)
Operation 2 gets rejected due to mismatching ChargeOwner (compared to Sender GLN)
Operation 4 gets rejected due to Operation 2 getting rejected (as they are processed together).


Maas 4503 http response body in error message

Add 'http_response_body' field to alert payload.

Coverage remained the same at ?% when pulling fe2bf341524442500b9c4bba40a4dcd1288bec1b on MAAS-4503-http-response-body-in-error-message into 492d042f95d3136a751eeaa9441862db162e94ad on develop.


Raise pre focus changed event before focus exit when unregistering pointer

Also, raise pointer changed event.
Fixes: #4158

@Alexees , I don't seem to be able to add you as reviewer. Can you have a quick look here and also make sure that the associated bug correctly describes the problem? I'll deal with issue with the pointer exit event in UpdateFocusedObjects() in a separate PR.

looks good :)

/azp run mrtk_pr


Lab 10 Review by Giuseppe Nicola Natalizio (s305912)

Hello there, Marco!
I liked your idea of using Prioritized Experience Replay to improve the learning process, the concept is quite new to me so I found your work very interesting. There are some things I'd like to point out:

Inside the Memory class you define the capacity attribute, but, for what I can see, it's never used;
The way you defined the number of states overestimates the number of possible board states by a big margin because it considers a significant number of impossible states (for example those where there are more Os than Xs), from what I see this isn't a big issue because your algorithm never visits these states but it's quite expensive in terms of memory usage;
Some comments refer to unused pieces of code and it hurts the overall readability, so I suggest getting rid of them.

I hope this review was useful to you and good luck on the final project. 😊

Hi, thank you for your precious comment.
Your consideration was about the number of possible states of the tic-tac-toe board, which is a square grid of 3x3 cells. Each cell can be empty, occupied by a cross or by a circle, so there are 3 possibilities for each cell. The total number of possible states is therefore given by 3 raised to the power of 9, which is equal to 19,683.
However, many of these states are equivalent to each other, if you consider the symmetries of the board, such as rotations and reflections. In other words, two states are equivalent if you can obtain one from the other by rotating or flipping the board.
If you want to count only the distinct states, without considering the symmetries, the number
is reduced to 7653.
If instead you want to count only the legal states, that is, those that can be reached by following the rules of the game, the number is reduced further to 255,1684. This is because not all states are possible in a real game, for example those in which there are more crosses than circles, or those in which there are more than one row of three equal symbols.
I didn't think of these forms of optimization at first, so I simply used a matrix considering all the 19683 possible states but yes, you're basically right, thank you for having reported it.


Add warning to documentation about setting the model id in the defaults

Please see #4205 for a rationale of this change. My thoughts that led to this PR are in the bottom comment.
I have asked myself whether this should be documented at all, given that it is a rather obscure corner case (user sets the model id to a fixed value in the defaults and also adds instances of the model to a collection). However, the fact that #4205 was reported proves that users may encounter the situation.
The edit can be previewed as web page over here: https://cdn.statically.io/gh/jgonggrijp/backbone/document-defaults-idAttribute/index.html#Model-defaults.

@paulfalgout Better now?


Ensure that no custom subscription owner roles are created

Possible check to target the following resource

[ ] azurerm_role_definition

closing, tracking in spreadsheet

closing, tracking in spreadsheet


Allow user to start a new conversation from scratch without restarting the web server

Yo @nitesh-jaswal - can you please review the bit where we "reset" the conversation so that we are not incurring additional charges for a new conversation, and the user doesn't have to restart the session by hopping on the terminal and pressing Ctrl+C? Feel free to drop comments or suggestions as you see fit.

BTW, all the code for this is on the main branch - i have not created a PR cuz it's just a personal project and i like to see greens on our Git profiles ;)


tone_alarm uses circut breaker before paramaters initalized

There is an assertion failure because a semaphore is not initialized in the parameter code called in the early stages of the startup script.  The other possibility is that sem_wait is called from interrupt context

offending code (shown commneted out):

This is fixed but not completely re-architected yet (the parameter is disabled right now).

Hey, this issue has been closed because the label status/STALE is set and there were no updates for 30 days. Feel free to reopen this issue if you deem it appropriate.
(This is an automated comment from GitMate.io.)


Button placement not mobile friendly

As a user I want to be able to use all buttons, while using the App/Webpage on my phone. Right now buttons are squished into each other.
A redesign of button placement would be possible, if not taking too much time. Buttons that are used more frequently should be on the right, others on the left, but login/profil should always be in the top right corner.

For the position tracking switch/switches, this is already done in #234.


Create Floyd_Warshall.c

created folder
Algorithms -> Floyd-Warshall Algorithm.c

Make a .MD file

Please review now, I have made required changes.


Add AND/OR combinators for run conditions

Objective
Fix #7584.
Solution
Add an abstraction for creating custom system combinators with minimal boilerplate. Use this to implement AND/OR combinators. Use this to simplify the implementation of PipeSystem.
Example
Feel free to bikeshed on the syntax.
I chose the names and_then/or_else to emphasize the fact that these short-circuit, while I chose method syntax to empasize that the arguments are not treated equally.
app.add_systems((
    my_system.run_if(resource_exists::<R>().and_then(resource_equals(R(0)))),
    our_system.run_if(resource_exists::<R>().or_else(resource_exists::<S>())),
));

Todo

[ ] Decide on a syntax
[x] Write docs
[x] Write tests

Changelog

Added the extension methods .and_then(...) and .or_else(...) to run conditions, which allows combining run conditions with short-circuiting behavior.
Added the trait Combine, which can be used with the new CombinatorSystem to create system combinators with custom behavior.

@alice-i-cecile @inodentry I'd appreciate your opinions on the syntax used here :)

Milestone placement is "we should make a call on this", not "this must be included". I think there's a lot of value here, but it's also a little tricky.

Why doesn't pipe use this combinator pattern?
I'd like us to avoid proliferating unsafe system implementations.
Two? is already too many, can we avoid it growing to three?

Why doesn't pipe use this combinator pattern?

It does.

Ah, the dangers of trying to do code review on my phone. My apologies.

(I also believe that they're not sound)

It's unsound in the same way that every other System impl is (has no guarantees that it's running on the correct World). I've been meaning to open a PR to address this.

I've added documentation and examples, simplified the Combine trait, and documented the previously-implicit safety invariants in impl System for CombinatorSystem.

I chose the names and_then/or_else to emphasize the fact that these short-circuit, while I chose method syntax to empasize that the arguments are not treated equally.

Maybe use and and or? Shorter and a little more readable as to me.

Personally I prefer and_then/or_else for the reasons I mentioned in the PR desc -- I think that making the behavior clear is more important than making the name short. I'm willing to change it if there's a consensus for those names (or any other) though, of course.

I prefer and_then/or_else as well :)

Could you add an example of usage under examples/ecs? There might already be a suitable .rs file

From what I can tell, none of our examples use run conditions at all (except for .on_update()). We should address this, but IMO there should be a separate issue for this.

Will it be possible to combine multiple conditions with this syntax?..
For example something like A && B || C && D?
I think it's very useful if you have substaces. For example, in my game I run PlacingObjectPlugin::movement_system in GameState::City with substate CityMode::Objects and in GameState::Family with substate FamilyMode::Building. Currently I have to add my system twice (1, 2, the game currenly uses loopless, but will be similar with stageless).

Yes, that should be possible. and_then and or_else return run conditions, so you should be able to keep adding as many combinators as you want.

Can you add these to the example from #7652 once it's merged?

I've added and_then to the example, but I'm really struggling to think of a way to show off or_else that isn't extremely contrived.

The most common use case for OR-combining run conditions that I've seen is to make a system run in multiple states (or other state-like resource type).
For example:
enum GameMode {
    Singleplayer,
    Multiplayer,
    Tutorial,
}

app.add_system(move_player_units.run_if(
    resource_equals(GameMode::Singleplayer)
        .or_else(resource_equals(GameMode::Multiplayer))
));
app.add_system(move_ai_units.run_if(
    resource_equals(GameMode::Singleplayer)
        .or_else(resource_equals(GameMode::Tutorial))
));

You could come up with something along those lines, for the example. It does not seem "contrived" to me. Very much a real-world use-case.


🗨 feat: Prompt Slash Commands

Summary
I implemented a new feature that allows users to access prompts directly from the main chat input using slash commands, inspired by Discord's slash command functionality. This enhancement streamlines the user experience by providing quick access to predefined prompts without leaving the chat interface.

Integrated the slash command feature with the existing chat commands
Added new UI elements to display available commands and their descriptions
Allows user to specify command when editing/creating prompts

Other Changes

Moved Assistants builder to top of side panel when Assistants are active
allow defining emailVerified via create-user script

Change Type

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist

[x] My code adheres to this project's style guidelines
[x] I have performed a self-review of my own code
[x] I have commented in any complex areas of my code
[x] I have made pertinent documentation changes
[x] My changes do not introduce new warnings
[x] I have written tests demonstrating that my changes are effective or that my feature works
[x] Local unit tests pass with my changes

any way to disable this feature ?
I frequently input linux path /path/to/dir and this feature make it difficult

any way to disable this feature ? I frequently input linux path /path/to/dir and this feature make it difficult

no but in the meantime you can add a backtick before the slash, like this:
`/path/to/dir`

+1 for the disabling. The popup is really annoying to close, so I bound '/' to 'a/' in my browser to avoid it and then go back to remove the extra character.

+1 for the disabling. The popup is really annoying to close, so I bound '/' to 'a/' in my browser to avoid it and then go back to remove the extra character.

Likely an option to disable, but it also would make sense to only allow characters from the first character position

I managed to disable this feature with a simple way, by forcing the conditions of the 3 show commands to be false:


Fix logs view

Description
Log view was already implemented but could not be used due to scrolling bugs.
Fixes
scrolling fixes:

Logs View was very buggy: when user scrolls, scrolling wheel jumps or it gets stuck and causes flickering
cause: most probably aurelia virtual.repeat cannot handle elements that do not have the same height => probably gets stuck between function calls (triggered by the position of the scrollingwheel) that load more content up or down
(I experienced the same behavior when i tried to recreate dynamic scrolling by myself)
fix: use bigger blocks to reload content dynamically so the scrolling wheel does not accidentally cross mark for reloading content in the opposite direction (=> more or less recreate aurelias virtual-repeat functionality)

search fixes:

fixed search-jumping by using scrollIntoView() instead of calculating scroll distance
instead of scrolling through all messages, now only the found message is loaded and the messages around
added searching for stackTrace.messages (found results were highlighted but not considered when jumping through results)
converted search results for loggerName (sometimes there were search results in the data model but the result was not displayed on the website because it was converted with a statusConverter)

general improvements:

instead of scrolling whole page there is a scrolling window now (height dynamically according to https://getbootstrap.com/docs/5.0/layout/breakpoints/)
search feedback: when searching a term there will appear a helper text that shows how many results there are and which one the user found => jumping by using the enter key

Type of change
Please delete options that are not relevant.

[x] Bug fix (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)
[ ] This change requires a documentation update

Known Issues / Future Work

scrollIntoView() uses ids to get elements => created long ids from log-line content to get individual id => consider to add id field to logMessage model

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Did you test your changes with big log files, like 50 MiB of log entries for example? Because that's the reason, why UI virtualization exists.

instead of scrolling through all messages, now only the found message is loaded and the messages around

This sounds like filtering, not searching. These are different use-cases.

Did you test your changes with big log files, like 50 MiB of log entries for example? Because that's the reason, why UI virtualization exists.

The biggest files i tested had 13000 log lines. The goal was not to remove UI virtualization but to fix the lagging problem. Trying that i realized that removing the aurelia virtual-repeat also fixed the lagging but we wanted to reload content dynamically, that is why i implemented the dynamic reloading by myself

instead of scrolling through all messages, now only the found message is loaded and the messages around

This sounds like filtering, not searching. These are different use-cases.

What i meant by that is that by pressing enter you jump to the next search result. Therefore the window is not scrolling and reloading blocks until it finds the result, but instead it finds the result immediately and loads messages around the result.
This behavior avoids loading many many new blocks just to get to the one that contains the search result. When you got the result the dynamic scrolling in both directions (up and down) works the same way it did before, so there is no filter activated, all messages can be seen by scrolling even after searching.
The user does not see that not all messages are loaded in the DOM
But if you imply that filtering is used to only load messages in the DOM that are located around the search result, you are right.

Did you test your changes with big log files, like 50 MiB of log entries for example? Because that's the reason, why UI virtualization exists.

The biggest files i tested had 13000 log lines. The goal was not to remove UI virtualization but to fix the lagging problem. Trying that i realized that removing the aurelia virtual-repeat also fixed the lagging but we wanted to reload content dynamically, that is why i implemented the dynamic reloading by myself

Please try with the complete log of the Integration test suite in DEBUG mode. Or ask @martingrossmann, because he had a big test suite with many logs that result in UI freezes in log view before introducing UI virtualization.

This sounds like filtering, not searching. These are different use-cases.

What i meant by that is that by pressing enter you jump to the next search result. Therefore the window is not scrolling and reloading blocks until it finds the result, but instead it finds the result immediately and loads messages around the result. This behavior avoids loading many many new blocks just to get to the one that contains the search result. When you got the result the dynamic scrolling in both directions (up and down) works the same way it did before, so there is no filter activated, all messages can be seen by scrolling even after searching. The user does not see that not all messages are loaded in the DOM
But if you imply that filtering is used to only load messages in the DOM that are located around the search result, you are right.

Just to make sure there is not misunderstanding: The previous approach was, to simulate searching of keywords through the log view by finding the next result, scrolling to and highlighting it. It should behave like searching through a regular document in the browser or a regular text editor. Not any line should be hidden (filtered) by the search.

Did you test your changes with big log files, like 50 MiB of log entries for example? Because that's the reason, why UI virtualization exists.

The biggest files i tested had 13000 log lines. The goal was not to remove UI virtualization but to fix the lagging problem. Trying that i realized that removing the aurelia virtual-repeat also fixed the lagging but we wanted to reload content dynamically, that is why i implemented the dynamic reloading by myself

Please try with the complete log of the Integration test suite in DEBUG mode. Or ask @martingrossmann, because he had a big test suite with many logs that result in UI freezes in log view before introducing UI virtualization.
Ok, I will try it

This sounds like filtering, not searching. These are different use-cases.

What i meant by that is that by pressing enter you jump to the next search result. Therefore the window is not scrolling and reloading blocks until it finds the result, but instead it finds the result immediately and loads messages around the result. This behavior avoids loading many many new blocks just to get to the one that contains the search result. When you got the result the dynamic scrolling in both directions (up and down) works the same way it did before, so there is no filter activated, all messages can be seen by scrolling even after searching. The user does not see that not all messages are loaded in the DOM
But if you imply that filtering is used to only load messages in the DOM that are located around the search result, you are right.

Just to make sure there is not misunderstanding: The previous approach was, to simulate searching of keywords through the log view by finding the next result, scrolling to and highlighting it. It should behave like searching through a document in the browser or a regular text editor. Not any line should be hidden (filtered) by the search.
Yes right. There is nothing hidden in terms of being unreachable. They are just not displayed in the DOM because they are outside of the viewport anyways. By searching we just jump to another part of the logmessage-"text"

I will record a video to clear all misunderstandings

I will record a video to clear all misunderstandings

I think this is not necessary :) I believe that your colleagues have seen the result and accepting it.

@mreiche Yes, we have tested the new implementation also with big excution files and a huge number of logs. The look-and-feel is the same. Except, scrolling is working.


Cluster health improvements

This fixes two problems I ran into recently with osdctl cluster health:

For a cluster that doesn't specify AZs, the count of expected worker nodes was displaying "null".
For a cluster with a longer name, the actual node count was incorrectly displaying 0 master, infra, worker and total nodes. This is because the Name tag on instances is prefixed with the infra ID, which is the cluster name cropped and appended with another string.

/lgtm


Easy File Picker: Adding a file when a file list row is selected causes that row to be overwritten

Issue fixed in 4e4f14b - closing.


python312Packages.apsystems-ez1: 1.3.3 -> 2.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.apsystems-ez1 is: Streamlined interface for interacting with the local API of APsystems EZ1 Microinverters.
meta.homepage for python312Packages.apsystems-ez1 is: https://github.com/SonnenladenGmbH/APsystems-EZ1-API
meta.changelog for python312Packages.apsystems-ez1 is: https://github.com/SonnenladenGmbH/APsystems-EZ1-API/releases/tag/2.3.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.3.0 with grep in /nix/store/k6xh03zb2m7pjhj41niz3ns537sc30i8-python3.12-apsystems-ez1-2.3.0
found 2.3.0 in filename of file in /nix/store/k6xh03zb2m7pjhj41niz3ns537sc30i8-python3.12-apsystems-ez1-2.3.0

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath

home-assistant-component-tests.apsystems
python311Packages.apsystems-ez1
python312Packages.apsystems-ez1

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/k6xh03zb2m7pjhj41niz3ns537sc30i8-python3.12-apsystems-ez1-2.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.apsystems-ez1 https://github.com/r-ryantm/nixpkgs/archive/7196719dc2a50b2f8afd3df873dbe112f295dd94.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/7196719dc2a50b2f8afd3df873dbe112f295dd94#python312Packages.apsystems-ez1

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/k6xh03zb2m7pjhj41niz3ns537sc30i8-python3.12-apsystems-ez1-2.3.0
ls -la /nix/store/k6xh03zb2m7pjhj41niz3ns537sc30i8-python3.12-apsystems-ez1-2.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

home-assistant-component-tests.apsystems

4 packages built:

python311Packages.apsystems-ez1
python311Packages.apsystems-ez1.dist
python312Packages.apsystems-ez1
python312Packages.apsystems-ez1.dist

Maintainer pings
cc @pyrox0 for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

Done in https://github.com/NixOS/nixpkgs/commit/790526832515f30ff0fd6395039639deb0efec26.


python3Packages.aiosqlite: 0.12.0 -> 0.16.0

Motivation for this change
Bump to latest upstream release 0.16.0
Upstream switched to poetry thus the switch to the PyPI release.
Change log: https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md#v0160
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108308 run on x86_64-linux 1

4 packages marked as broken and skipped:

python39Packages.databases
python39Packages.fastapi
python39Packages.orm
python39Packages.starlette

6 packages failed to build and are new build failures:

python37Packages.fastapi: log was empty
python37Packages.orm: log https://hastebin.com/raw/iquhozokob
python37Packages.starlette: log https://hastebin.com/raw/yonupepowo
python38Packages.fastapi: log https://hastebin.com/raw/yonupepowo
python38Packages.orm: log https://hastebin.com/raw/yonupepowo
python38Packages.starlette: log https://hastebin.com/raw/qagedutoxu

5 packages built:

python37Packages.aiosqlite
python37Packages.databases
python38Packages.aiosqlite
python38Packages.databases
python39Packages.aiosqlite

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108308 run on x86_64-linux 1

4 packages marked as broken and skipped:

python39Packages.databases
python39Packages.fastapi
python39Packages.orm
python39Packages.starlette

6 packages failed to build and are new build failures:

python37Packages.fastapi: log was empty
python37Packages.orm: log https://hastebin.com/raw/iquhozokob
python37Packages.starlette: log https://hastebin.com/raw/yonupepowo
python38Packages.fastapi: log https://hastebin.com/raw/yonupepowo
python38Packages.orm: log https://hastebin.com/raw/yonupepowo
python38Packages.starlette: log https://hastebin.com/raw/qagedutoxu

5 packages built:

python37Packages.aiosqlite
python37Packages.databases
python38Packages.aiosqlite
python38Packages.databases
python39Packages.aiosqlite

Closing this PR as #108602 also contains the update to 0.16.0.

Closing this PR as #108602 also contains the update to 0.16.0.


Elm json support

This requires some more testing, but I think it's about done. It adds some descriptions to the properties and validates that they have the required properties.
This is to my best knowledge (I've tested on my own projects) but I'm not sure if there are any other differences in 0.18. Additionally, I'm not completely sure if you're allowed to add extra properties to elm.json in 0.19. I think 0.18 you are allowed to and it will leave it alone. I seem to recall someone saying that it will remove them in 0.19. For now, it allows additional fields for 0.18 and doesn't for 0.19.
I will continue testing this in different situations. Feedback on the descriptions is especially helpful. Also, let me know if you think there can be even more validation done to the different properties. For instance, we could add more regexes on the string fields.

LGTM, thanks a lot for contribution, and sorry it took me a while to merge it!


Improve the way text is displayed in the login modal window

A customer you installed this  [decidim-verify_wo_registration] module for in the past, wants to change the text from the actual custom modal window shown when not authenticated user try to perform an action that requires verification.

[ ] Add heading: No tinc compte i no em vull registrar
[ ] Change text button to: Verifica't sense registre
[ ] Change right heading: Ja tinc un compte. Inicia la sessió i verifica't

(https://github.com/CodiTramuntana/decidim-verify_wo_registration) module

Can you approve this change? Then we will prepare a PR.
Tx!

Resolved by https://github.com/CodiTramuntana/decidim-verify_wo_registration/pull/11


Obsolete struct System.Span was introduced

https://docs.microsoft.com/en-us/dotnet/api/system.span-1?view=netcore-2.0

It was introduced by this change:
https://github.com/PowerShell/PowerShell/pull/6504

/cc @iSazonov @SteveL-MSFT

That doc seems to be wrong.  Span is new and isn’t marked obsolete in corefx https://github.com/dotnet/corefx/blob/master/src/System.Memory/src/System/Span.Portable.cs.  We would have a compilation error if it was obsolete

It is in runtime and System.Memory from last summary.

I found description of the feature https://github.com/dotnet/csharplang/blob/master/proposals/csharp-7.2/span-safety.md#metadata-representation-or-ref-like-structs

Having no other good alternatives that work in old compilers without servicing, an Obsolete attribute with a known string will be added to all ref-like structs. Compilers that know how to use ref-like types will ignore this particular form of Obsolete.

Thanks @iSazonov, that explains it :)

Once I did a second restore this error went away.  VS seemed to have some issues...


weird, outlandish wrapping with HTML Pretty Diff

The formatting seems all over the place. If I use JS Beautifier for XHTML, it incorrectly indents the entire document except for the XML declaration, as I reported in #706. So atom-beautify passed the buck and said it was JS Beautifier's problem, and told me to use Pretty Diff instead.
So I did, and Pretty Diff is Pretty Ugly. I start with this:

For a computer program to be useful, it usually needs to gather input from the user, and also
  needs to provide output back to the user after processing. The approach it uses to interact
  with the user is called the <dfn>user interface</dfn> (UI) of the program. ...

Pretty Diff gives me this:

For a computer program to be useful, it usually needs to gather input from the user, and also needs to provide output back to the user after processing. The approach it uses to interact with the user is called the
  <dfn>user interface</dfn>
  (UI) of the program. ...

What? Since when is <dfn> a block element? If Pretty Diff is behind in HTML4, then surely it has never heard of HTML5.
No, I don't intend to make special configuration files just to tell Pretty Diff that <dfn> should be inline. These sort of things are all over the place --- it's even wrapping . Useless.

What? Since when is  a block element?

Indenting a tag in the HTML code source has no bearing on whether the HTML tag is a block or inline element.  The two code samples above render to exactly the same output in the browser unless the CSS property white-space is associated with the element.  Pretty Diff does provide support for elements that should not have their contents modified: http://prettydiff.com/guide/tag_ignore.xhtml

it's even wrapping . Useless.

Both JS Beautify and Pretty Diff supply a wrap option.  Set the value to 0 to turn wrapping off.
No additional action will be taken on this issue from Pretty Diff.

Indenting a tag in the HTML code source has no bearing on whether the HTML tag is a block or inline element.

True. But that wasn't what I was asserting --- you have it backwards. Whether an HTML tag is a block or inline element should have a bearing on whether it is indented in the HTML source code.

The two code samples above render to exactly the same output in the browser ...

Of course! I could format the source code any old way, and it would still show up in the browser. But the whole point of a code formatter is that I want my source code to look pretty, too! (Um, isn't this obvious? If you don't want to make the source code pretty, what is the point of the prettydiff library?)

Pretty Diff does provide support for elements that should not have their contents modified ...

(sigh) Just like js-beautify (see https://github.com/beautify-web/js-beautify/issues/841), it seems you are conflating the concepts of "do not format" and "not a block element". Phrasing tags such as <dfn> should not have a line break adding before them. That doesn't mean you should not format their contents. Those are two entirely separate concepts.

(Um, isn't this obvious? If you don't want to make the source code pretty, what is the point of the prettydiff library?)

The reason I indent even inline tags is to make the code easier to read.  When tags are lumped into text they can get lost and become more difficult to quickly identify for human readers not using syntax color schemes.  This is particularly true in long content that is not being wrapped.  The goal is to make code easier to read opposed to increasing content legibility, which is where embedded inline elements would benefit.  Content legibility is better discerned from the rendered product where various other pieces and interactions come together to influence how that content is consumed.
I come to this conclusion because I have maintained an HTML/XML beautifier/parser for almost 7 years and at one time supported beautification as you suggest.  Experience proved that to be less than ideal provided large blocks of time examining a variety of code samples and use cases.

(sigh) Just like js-beautify (see beautify-web/js-beautify#841), it seems you are conflating the concepts of "do not format" and "not a block element". Phrasing tags such as  should not have a line break added before them. That doesn't mean you should not format their contents. Those are two entirely separate concepts.

From our perspectives, as the maintainers of large parsers, there is no difference.  Code is parsed provided a set of rules.  The parsed code is beautified according to a different set of rules.  In the end there is only parsing and decoration.  Everything else is completely superficial or irrelevant to the tools we maintain.  What a given tag means or what it does to enhance and describe its content is for higher level assisting technologies not merely concerned with code beautification.
Another option to consider in the face of a difference of opinion is to write your own beautifier if that difference of opinion is an insurmountable roadblock.  That is how Lamborghini got started: A mere tractor producer recommended some improvements to Enzo Ferrari because the transmission felt a little sluggish.  Enzo told him to go build his own car if he knew better.

Thanks for the thorough and nice response.

The reason I indent even inline tags is to make the code easier to read.

Fine. You like that. I don't. We have different preferences. So all I ask is a preference that allows me to specify tags that should not start with a linefeed and be indented (i.e. inline). Isn't that a reasonable to ask for? An option of "don't format this at all" is a different setting semantically, don't you agree?

Another option to consider in the face of a difference of opinion is to write your own beautifier if that difference of opinion is an insurmountable roadblock.

Yes, sorry for taking up your time with this. The problem is that there are so many things for me to rewrite, because no one takes care in writing their software to specifications and they simply throw together a one-off solution that works specifically for their own situation. (Try getting a beautifier that understands the XML declaration in XHTML5 files, or that provides the correct EOL based upon the platform, for instance.)

#778


How to connect MySQL with docker instance

You don't explain how to use the MySQL database with docker instance. So I create another container with mysql inside, created there a database for gogs, and linked the 2 container with:
docker run --name=gogs --link gogs-db:mysql -p 10022:22 -p 10080:3000 -v /var/www/gogs:/data -d gogs/gogs
But it's not working. At the install of gogs, it can't connect to MySQL. Could you explain how to do step by step ?

Hi,

Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.


PoET Block Publisher Faillure and success test cases

Signed-off-by: nconde<EMAIL_ADDRESS>

Please fix lint errors blocking successful build

The changes in this PR are included in PR 466
https://github.com/hyperledger/sawtooth-core/pull/466


Error running sample demo

Hi All,
I was able to build threadx as per README as below -
vscode@f5db10ae23ff:/workspaces/threadx-master$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=../cmake/cortex_m4.cmake .
-- The C compiler identification is GNU 13.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- THREADX_ARCH: cortex_m4
-- THREADX_TOOLCHAIN: gnu
-- Using default tx_user.h file
got here
-- Configuring done
-- Generating done
-- Build files have been written to: /workspaces/threadx-master/build
vscode@f5db10ae23ff:/workspaces/threadx-master$ cmake --build ./build
[193/193] Linking C static library libthreadx.a
vscode@f5db10ae23ff:/workspaces/threadx-master$ echo $?
0
vscode@f5db10ae23ff:/workspaces/threadx-master$ ls ./build/libthreadx.a
./build/libthreadx.a
vscode@f5db10ae23ff:/workspaces/threadx-master$

But, when I try to run the sample threadx demo in a devcontainer from vscode, I get an error. I created a CMakeLists.txt as below.
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project(demo)

# set(THREADX_ARCH linux)
set(THREADX_ARCH cortex_m4)
set(THREADX_TOOLCHAIN gnu)

add_subdirectory(.. threadx)
# add_library(threadx)

target_compile_options(threadx PRIVATE
    -mthumb
    # other compile options
)

add_executable(${PROJECT_NAME} demo_threadx.c)
target_link_libraries(${EXECUTABLE} threadx)
include_directories(SYSTEM BEFORE ../common/inc ../ports/linux/gnu/inc /usr/include ../build)

The error I am getting is -
vscode@f5db10ae23ff:/workspaces/threadx-master/samples$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=../cmake/cortex_m4.cmake .
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-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: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc
-- THREADX_ARCH: cortex_m4
-- THREADX_TOOLCHAIN: gnu
-- Using default tx_user.h file
got here
-- Configuring done
-- Generating done
-- Build files have been written to: /workspaces/threadx-master/samples/build
vscode@f5db10ae23ff:/workspaces/threadx-master/samples$ cmake --build ./build
[28/195] Linking C executable demo
FAILED: demo
: && /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4  --specs=nosys.specs -fdata-sections -ffunction-sections -mlong-calls -mthumb -mcpu=cortex-m4  -Wl,--gc-sections CMakeFiles/demo.dir/demo_threadx.c.obj -o demo   && :
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: /opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-closer.o): in function `_close_r':
closer.c:(.text._close_r+0xc): warning: _close is not implemented and will always fail
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: /opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-lseekr.o): in function `_lseek_r':
lseekr.c:(.text._lseek_r+0x14): warning: _lseek is not implemented and will always fail
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: /opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-readr.o): in function `_read_r':
readr.c:(.text._read_r+0x14): warning: _read is not implemented and will always fail
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: /opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(libc_a-writer.o): in function `_write_r':
writer.c:(.text._write_r+0x14): warning: _write is not implemented and will always fail
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/bin/ld: CMakeFiles/demo.dir/demo_threadx.c.obj: in function `main':
demo_threadx.c:(.text.main+0x10): undefined reference to `_tx_initialize_kernel_enter'
collect2: error: ld returned 1 exit status
[45/195] Building C object threadx/CMakeFiles/threadx.dir/common/src/tx_initialize_kernel_setup.c.obj
ninja: build stopped: subcommand failed.
vscode@f5db10ae23ff:/workspaces/threadx-master/samples$

Can someone help me troubleshoot and fix this ?
TIA

Your GCC does not implement these functions. You need to achieve it yourself. This is not a problem with Threadx itself.


x/mobile/app: basic app doesn't exit when window is closed

I tried running the basic example with:
go install golang.org/x/mobile/example/basic && basic
When clicking the close-window button, the application does not exit. It does stop repainting however, and appears hung. I tried inserting some log lines for lifetime events, but there doesn't seem to be any event sent when the window is closed, but the paint.Event stops.
This is on Arch Linux running Gnome 3.16.

This is happening on Mac OS X also.

/cc @crawshaw

On X11, closing the window triggers onStop() which sends a lifecycle event then a stopPumping{} event.
In the app.pump() loop, he lifecycle event gets in the event buffer, then on the next iteration stopPumping{} is received, discarding the input event channel, and the libecycle event has not been sent out yet and remains in the buffer. What happens next is that the application's main loop sits in a.Send(paine.Event{}), trying to send to the input event channel, which the pump() loop does not read anymore.
A possible fix could be to actually close eventsIn upon receiving stopPumping{}, and perform all internal event sending via app.Send() with modifications to discard events should the channel be closed.

I have a much simpler working fix that uses a boolean done flag in pump() that is set to true when a stopPumping{} is received. If done is true, incoming events are just ignored, thus keeping both input and output event channels alive. Should I submit a CL with this?

@db47h: I'd like to see if we could sort this out in the shiny version of closing the events channel first, and then copy that code into x/mobile.

Apps can exist properly today, except windows (see #49499). Close.


Anchor has inconistant icon annimation

In the anchor examples, on [icon + label], the icon grows on hover, but for icon, it only changes to #fff, no grow.
https://grommet.github.io/hpe/docs/anchor/examples#3
Your Environment

Browser Name and version: Firefox 48.0 and Chrome 53.0.2785.116

That's by design. We can discuss.

Fixed in grommet commit c70f84981aab9dd70739344c8d19b64b1eda7806.


Post job cleanup - Error: Could not revoke installation access token

Hello
The workflow is going well until, the post job cleanup
I get this weird error, in Post job cleanup.
Any idea why I get this error?
 Error: Could not revoke installation access token.
     at revokeInstallationAccessToken (file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70955)
     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
     at async file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70644
     at async run (file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:71110)
     at async file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70457 {
   [cause]: RequestError [HttpError]: Bad credentials
       at file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:1:45703
       at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
       at async revokeInstallationAccessToken (file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70894)
       at async file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70644
       at async run (file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:71110)
       at async file:///D:/a/_actions/tibdex/github-app-token/v2/dist/post/index.js:7:70457 {
     status: 401,
     response: {
       url: 'https://api.github.com/installation/token',
       status: 401,
       headers: [Object],
       data: [Object]
     },
     request: {
       method: 'DELETE',
       url: 'https://api.github.com/installation/token',
       headers: [Object],
       request: [Object]
     }
   }
 }

I too have recently begun to see this error.
Post job cleanup.
Error: Could not revoke installation access token.
    at revokeInstallationAccessToken (file:///home/runner/work/_actions/tibdex/github-app-token/v[2](https://github.com/caregility/iconsult_front_end/actions/runs/6584797783/job/17889996736#step:28:2).1.0/dist/post/index.js:7:70955)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:70644
    at async run (file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:71110)
    at async file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:70457 {
  [cause]: RequestError [HttpError]: Bad credentials
      at file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:1:4570[3](https://github.com/caregility/iconsult_front_end/actions/runs/6584797783/job/17889996736#step:28:3)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async revokeInstallationAccessToken (file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:7089[4](https://github.com/caregility/iconsult_front_end/actions/runs/6584797783/job/17889996736#step:28:4))
      at async file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:70644
      at async run (file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:71110)
      at async file:///home/runner/work/_actions/tibdex/github-app-token/v2.1.0/dist/post/index.js:7:704[5](https://github.com/caregility/iconsult_front_end/actions/runs/6584797783/job/17889996736#step:28:5)[7](https://github.com/caregility/iconsult_front_end/actions/runs/6584797783/job/17889996736#step:28:7) {
    status: 401,
    response: {
      url: 'https://api.github.com/installation/token',
      status: 401,
      headers: [Object],
      data: [Object]
    },
    request: {
      method: 'DELETE',
      url: 'https://api.github.com/installation/token',
      headers: [Object],
      request: [Object]
    }
  }
}

You can set revoke to false:
https://github.com/tibdex/github-app-token/blob/3eb77c7243b85c65e84acfa93fdbac02fb6bd532/README.md?plain=1#L46-L47

Ah thanks!!BrGöran Halvarsson20 okt. 2023 kl. 16:13 skrev Thibault Derousseaux @.***>:
You can set revoke to false:
https://github.com/tibdex/github-app-token/blob/3eb77c7243b85c65e84acfa93fdbac02fb6bd532/README.md?plain=1#L46-L47
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


fix: make image url field optional

Just a one-liner!

@angeloashmore 	This also makes the dimensions optional.
Additionally - I needed to install this directly from github in a live project, so I added a "prepare" script to package.json. We can remove this before merging the PR, but it might be handy in case anyone else needs to do the same. (I also had to have it use npm run build instead of yarn build because there's a bug in yarn and it doesn't run package lifecycle scripts)
https://github.com/yarnpkg/yarn/issues/5235

@good-idea Thanks for the PR! v3.0.0-beta.0 has been published with this fix along with a couple other PRs.
And thanks for the tip about prepare. I swapped out prepublish for prepare as it seems to do the same function but with the added benefit of building on GitHub instals. Also changed all the yarn scripts to use NPM as it is more standard.

Amaz, thanks!!


Reloading the window is not retaining the cells positions

#96279

Guessing this is just another instance of the bug with not saving the content

right, the code cell (second cell in the UI) is gone after reload, even though the editor has no dirty indicator any more.
This should already be fixed in master.


VT purl does not point to latest release

Good day! I noticed that
https://github.com/OBOFoundry/purl.obolibrary.org/blob/master/config/vt.yml redirects the VT ontology to the uPheno repo. Your OBO metadata suggests that this repo here is the rightful home of VT, so we should change the above ASAP. One of the consequences is tools like ontobee or OLS which are used to browser are ontologies are not up to date with VT anymore! But basically anyone who is referring to VT by its purl (http://purl.obolibrary.org/obo/vt.owl) is now using an out-of-date version.
https://www.ebi.ac.uk/ols/ontologies/vt
http://www.ontobee.org/ontology/VT
Assuming that this indeed IS the right VT repo, would you want us to redirect the OBO purl here instead? If so, we need you to do one thing (I can take care of the rest): create a file called "vt.owl" somewhere in your repo, for example in a directory called "current release" which you always remember to overwrite when you have a new release. So for example, you want to add VT version 10, you would do as you did so far, and then overwrite the file vt.owl with the VT-10.0.owl file so that we can have a stable url to point to. What do you think? Happy to help.

This issue results in an old version VT to be displayed on OLS.

We experience the same problem with AgroPortal. And I assume BioPortal too.
So I would recommend:

store the version in the owl:versionInfo property (so that our portal will automatically get it)
always maintain the last version in a file called « VT.owl » or « VT_latest.owl » and only rename it to VT_X.owl when you create another latest version
fix the PURL to point to https://github.com/AnimalGenome/vertebrate-trait-ontology/blob/master/VT_latest.owl
let us all know (by closing this issue)

Sorry for the overlook.  Please take a look in the "current_release" folder.  Is this something that can work for you as a "stable version"?  We will keep files in this location to be up to date.  Thank you all!

Thats perfect! just make sure you keep it updated. Thanks :)


[BUG] gRPC max message size issue

Investigative information

Timestamp: Mon May 11 20:55:52 PDT 2020
Function App name: jupyterless
Function name(s) (as appropriate): jupyterless
Core Tools version: Not using Core Tools. Using azure-functions-host running locally.

Repro steps

Step A: Start azure function's host with the AzureWebJobsScriptRoot environment variable pointing to the function root.
Step B: Invoke the function through an HTTP request and another blob input which has a size greater than 4MB.

Expected behavior
The function should successfully run with the blob input.
Actual behavior
The function throws an exception in the debugger (VSCode):
Exception has occurred: _MultiThreadedRendezvous
<_MultiThreadedRendezvous of RPC that terminated with: status = StatusCode.RESOURCE_EXHAUSTED details = "Received message larger than max (8005196 vs. 4194304)" debug_error_string = "{"created":"@1589243718.140000000","description":"Received message larger than max (8005196 vs. 4194304)","file":"src/core/ext/filters/message_size/message_size_filter.cc","file_line":191,"grpc_status":8}" >
 File "f:\foo\functions_runtime\azure-functions-python-worker\azure_functions_worker\dispatcher.py", line 553, in __poll_grpc  for req in grpc_req_stream:

Known workarounds
Blobs smaller than 4MB work fine.
Contents of the requirements.txt file:
azure-functions
azure-storage-blob
dill
tblib==1.4.0
pandas
aiohttp

Related information
I have tried running with the default version of the python worker that azure-functions-host (dev branch) uses and that works fine.
However, when I used this local version of the worker, I noticed this behavior.

@pragnagopa @Hazhzeng I think this behavior was attempted to be fixed under this PR but probably it is still not fixed or I'm not doing something correctly. Please help with this, thanks.

when I used this local version of the worker

Can you give us more details on the setup ? which version of host? from dev branch or the e2e tests in this repo?

@gohar94  - I think this is not yet deployed in production.

@pragnagopa I am using the dev branch of the azure-functions-host and dev branch of azure-functions-python-worker.
@anirudhgarg I see, but I am using local version of the worker and the host (as mentioned above) and this problem is occurring when using dev branch of of this worker repo. When I use the default version that the host (again, dev branch) picks up, it works fine.

@gohar94 do you mean that the version that comes with core tools ? That also has a previous version. Please just wait for the deployments to happen which will in the next 2-3 weeks.


HDDS-6974. Container report processing in Recon is single threaded.

https://issues.apache.org/jira/browse/HDDS-6974

LGTM. We should have fixed both DN and Recon the same way right from the start. Thanks for fixing this.

LGTM. We should have fixed both DN and Recon the same way right from the start. Thanks for fixing this.

Thanks @kerneltime for the code review.  Can we merge it now?

Thanks @ChenSammi for the patch, @kerneltime for the review.

Thanks @adoroszlai .


Divider between Appbar and Content

Rn the content is hard to visually seperate when the background color for the AppBar and the content is both white.
The addition of a Divider() between them might come in useful here.

In this case you can create Divider on top of your sheetChild
I will not mind if you think of a custom field for this.


Letsencrypt auto renew

Hi,
I have been running this setup for a while now and it was time for the letsencrypt certificates to auto renew.
However i get the following error:
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/[hostname_removed]/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
Thu Jun 22 07:35:02 CEST 2017
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
tls-sni-01 challenge for [hostname_removed]
Cleaning up challenges
Attempting to renew cert from /etc/letsencrypt/renewal/[hostname_removed].conf produced an unexpected error: Could not bind TCP port 443 because it is already in use by another process on this system (such as a web server). Please stop the program in question and then try again.. Skipping.

In the letsencrypt renew file that is within cron.daily it seems to have a command with docker. I assume this is a mistake?
#!/usr/bin/env bash

date >> /var/log/letsencrypt.log
certbot-auto renew --no-self-upgrade 2>&1 &>> /var/log/letsencrypt.log
docker kill -s HUP nginx

Indeed, that was copied from a docker deployment without proper updating.
Can you try running:
certbot-auto renew --nginx

?

Scratch that, run:
certbot-auto renew --webroot --webroot-path=/etc/letsencrypt/webroot
service reload nginx

and see if that works. If it does, I'll update the file.

I ended up doing the following:
date >> /var/log/letsencrypt.log
kill -s HUP $( pgrep -o nginx )
fuser -k 443/tcp
fuser -k 80/tcp
certbot-auto renew --no-self-upgrade 2>&1 &>> /var/log/letsencrypt.log
sleep 10
fuser -k 443/tcp
fuser -k 80/tcp
service nginx --full-restart
service nginx reload

which seemed to work. Not very optimal i guess.
@minrk when running
certbot-auto renew --webroot --webroot-path=/etc/letsencrypt/webroot
service reload nginx

I get an error:
Upgrading certbot-auto 0.13.0 to 0.15.0...
Replacing certbot-auto...
Creating virtual environment...
Installing Python packages...
Installation succeeded.
/etc/letsencrypt/webroot does not exist or is not a directory

Try:
mkdir -p /etc/letsencrypt/webroot

first, then run it again. nginx is already serving that directory for letsencrypt upgrades.

Ok seems to work now.
Although i can't really test if the cerbot gets a connection since the certificate is not due for renewal anymore.
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/learnmore.imm.dtu.dk.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/learnmore.imm.dtu.dk/fullchain.pem (skipped)
No renewals were attempted.

Thanks for the help :)

Thanks! We'll have to wait until a renewal is needed to test for real. #80 should fix it.

Hi , While setup the Jupyterhub, I saw that the let's encrypt auto-renew the certificate. But my certificate is not renewing. I saw this issue, but I am not able to figure out where we have to run this bash file or auto-renew commands


Skip e2e tests on trains for safe subset of changes

High-level description
The e2e tests skipping generally identifies two sets of files:

files that do not contribute to the delivered artifact of DC/OS (e.g. Markdown files);
files that, despite contributing to the artifact, are not expected to affect the outcome of the specific e2e test.

The first subset is generally those files identified in the E2E_SAFE_DEFAULT variable. If a PR only changes these files, there is practically no chance that the e2e test outcomes should be affected.
This PR allows trains to skip e2e testing when only files in E2E_SAFE_DEFAULT are changed.
As a minor addition, I removed some defunct packages from treeinfo.json. This allowed me to check that the change to the packages/** patterns do run the tests when treeinfo.json changes.
Corresponding DC/OS tickets (required)

D2IQ-ID JIRA title / short description.

Related tickets (optional)

D2IQ-ID JIRA title / short description.

@mesosphere-mergebot request-review @orsenthil @jkoelker

@mesosphere-mergebot changelog-not-required tests only

@mesosphere-mergebot request-review @janisz

@mesosphere-mergebot sync

@mesosphere-mergebot label Ship It

@mesosphere-mergebot backport 2.2


HSEARCH-3134 Error message in MassIndexerImpl#toRootEntities mentions "a subclass of an indexed entity" but should mention "supertype" instead

https://hibernate.atlassian.net//browse/HSEARCH-3134

merged in master


[CLOUD-3358] Document the cekit version we are using

Cekit is a fast-moving project. If you build the same image sources with two different versions of cekit you might get very different outputs when compared with e.g. diff or git diff. It's therefore helpful for us to document which version we are using at the present moment so we can manage the diff caused by tooling changes when we review newer versions of the tooling.
https://issues.jboss.org/browse/CLOUD-3358

@jmtd Looks OK to me.


Skeleton not exported

Hi
I am using the current master branch for this add-on
Here is my rig structure

I export it to gltf with default settings, but after I load it again there is no rig on model

Will appreciate any help.

Hello,
Please provide your blend file and/or your gltf file. It's difficult to check what's wrong only with screenshots.

Okay,
You can get blend file here

when I export with this addon : https://github.com/KhronosGroup/glTF-Blender-Exporter
it works fine.

Looks like a bug in the exporter. The output .glTF has no skins

cc94870 fixes the skins not beeing exported.
The validator still does not accept the exported glTF, as it can not decompose the inverse bind matrices of some bones.
When importing the above glTF, the importer fails with a seemingly unrelated error, @julienduroure maybe you can verify this?

Hi @UX3D-becher,
Seems something is wrong on your export hierarchy. All children of "root" node (node 79, children are node id 63 to 78) has no children at all. That means that I can't find any bones starting from root.

Any news? Is there a problem with my model?

Should now reimport as expected

Thanks for the fix.

Hmm... now  I get this error upon export

Anybody have confirmed this yet ?

Yes, i can confirm the error, it is a bug in the exporter.

8fbe41dc16a687e974d0f5d1bbd26c34b7ba616e should fix the issues with rigged animation exports

Thank you :)


NIFI-12561 MergeContent honours DELIMITER_STRATEGY_NONE

Summary
NIFI-12561
MergeContent does no longer add Header, Footer, and Demarcator when Delimiter Strategy is set to Do Not Use Delimiters.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 21

Licensing

[x] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[x] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[x] Documentation formatting appears as expected in rendered files

@EndzeitBegins @exceptionfactory There are a lot of changes made that do not relate to the bug addressed in the ticket. Wouldn't it make sense to have the refactoring pieces in a different ticket so the review can focus solely on what it took to fix the bug?

I'm open for splitting the changes into two commits / PRs / tickets.
The actual bugfix are basically three lines added in MergeContent.getDelimiterContent plus a test case for reproduction.
Everything else is just applying newer syntax (switch expressions, lambdas instead of anonymous objects ..).
I'm a proponent of the "boy scout" rule, but sometimes get ahead of myself a little.
What's your view on this @exceptionfactory, split or keep as is?

Thanks for the considerations @dan-s1 and @EndzeitBegins.
I do appreciate the effort to leave things cleaner than you found them, but in this case, I think it is important to keep the PR focused on the bug fix. The main reason in this particular case is that the fix needs to be applied to the support branch. That will probably require a separate pull request either way, but in terms of keeping the changes focused on the actual fix, separating out the syntax improvements would be helpful.

That seems reasonable. I reduced the changes to a minimum.
I'd appreciate a review @dan-s1 & @exceptionfactory.

LGTM+!. Great Fix!


Prevent debug notice text from being selected

A tiny issue I noticed playing around with the demo.
Otherwise, this is really cool!

Agree, this is something that I noticed too ;)
Thanks for fixing it!

Never even crossed my mind! Thanks :)


Restore EquiZip operator

This PR restores the sync version of EquiZip and adds the async version of EquiZip. These operators are now implemented via Source Generator; due to the 30-50% performance advantage in the 2-param version when not using dummy enumerables and common method.
Fixes #140

Codecov Report
Base: 87.19% // Head: 87.19% // No change to project coverage :thumbsup:

Coverage data is based on head (e4b7e34) compared to base (bfe74d4).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #155   +/-   ##
=======================================
  Coverage   87.19%   87.19%
=======================================
  Files         190      190
  Lines        5122     5122
  Branches     1191     1191
=======================================
  Hits         4466     4466
  Misses        359      359
  Partials      297      297

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


ssh repository field with no protocol causes ERR_INVALID_URL

If the repository field is in the following format:
// package.json
{
  // ...
  "repository": "git@github.com:hello/world.git"
  // ...
}

it causes an ERR_INVALID_URL error, since new<EMAIL_ADDRESS>is expecting a protocol. So new<EMAIL_ADDRESS>would work.
Think there just needs to be a check for this case in getRepoInfo. Since, this format is one of the possible variants in https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

:tada: This issue has been resolved in version 1.3.7 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

I'm responsible for this bug. In my defense, I was expecting this module: get-git-auth-url.js to handle all the cases. But I guess I was wrong. Thanks for the fix!


Training on real world images

Hi there, I need to train over real world images.
I'm already preprocessing them, but there will always be some "dirt" on them.
Is tesstrain able to learn how to read also partially covered characters?

I suggest to try it (and report the result here).

Or post some examples for a wild guess from experienced users. :smile:

This is an example of image on which I need to train, I'm interested only in the biggest number/text.
I'm leaving at the moment the preprocessing and the binarization to tesseract.

At the moment I'm doing some tests (mostly to understand how tesstrain works) with 528 ground truth images, but I'm increasing it gradually. The dataset is really variable, with many different fonts, partially covered text, deformed and rotated text.
Do you have any suggestions on how to increase the training performance on these kind of images?

First of all, Tesseract's recognition procedure works on the line level. Feeding images like you posted won't work from scratch. You have to separate them into lines a) for training and b) at run time. In addition, it is usually very helpful to deskew and/or dewarp (https://wrznr.github.io/IT-Kolloquium-2019/#29) the images. I think your specific application is mainly a preprocessing and not so much an OCR challenge. You may want to have a look at https://scantailor.org/, https://github.com/Flameeyes/unpaper and https://github.com/ZaMaZaN4iK/PRLib/.

@wrznr thanks for the great resources!
The image I provided you it's a single line for me. I'm not interested in the small text, I consider it noise.
I pushed preprocessing till now, I started with very low tesseract performances to have something like 40% accuracy at the moment. The best working preprocessing I do at the moment is the one locating the digits inside the image and cropping them.
I've tried many strategies at image level (binarization, noise removal, text extraction with EAST, Watershed and so on), but none of the outperformed tesseract's internal preprocessing.
I also tried cleaning some images manually, but tesseract failed detecting the right text probably because of the font.
This is why I decided to proceed with custom Tesseract training.
As an update, at the moment I have a ground truth dataset of more or less 700 images, and after 500.000 iterations it starts improving on a different validation test. Training gave me 36% error rate, validation gave me 77% error rate. But the previous attempt was 100% error rate on the validation :D
I'll keep you updated on the progresses, I just launched a new training for 1 million iterations, let's see what happens.
Does all of this make sense to you?

If you make sure that you use the same page segmentation mode (either 7 or 13) during runtime, it might work for some examples. But I do not think that it is the right way to try teach the character recognition to perform image clean up and that is what you're setup looks like. Keep in mind how character recognition with recurrent networks works: The line image is scaled to a uniform height and than split into many columns of binary values (i.e. black and white pixels). These columns (technically vectors) are the atoms on which the sequence classification is based upon. You train the relation between sequences of those binary-valued columns and the characters in the corresponding text files. But this relation is not consistent in your setup since the lines above and below the actual target are subject to high variance. I.e. the classifier will frequently stumble upon events (columns) it has not seen during training and thus does not “know”. The confidences will be very small and effectively lead into the realm of guessing. More iterations won't help you with that problem. They may even worsen the situation, since you pretend a relation between image and text which is not real. But of course, this is just speculation from my experiences in machine learning. If you are lucky the model may learn the difference between reliable and unreliable cells in the columns.

Thanks for the explanation, I indeed do not know what's the logic behind the training, I'm going blind at the moment because it's my first time in the topic and progressing by attempts.
I'm already using PSM 13 as you suggested. Without custom training it worked pretty well, it was failing I think only for a font matter.
I'll try increasing the ground truth dataset, to see if there will be any improvement in the performances. If not, as you forecast, I'll try to train on preprocessed images.
You talked about binary vectors, but I'm providing grayscale images as requested in the readme. Should I binarize by myself before the training?

Not necessary to binarize as far as I know. @stweil ?

As an update, I tried feeding the 1 million iterations model with the not preprocessed validation dataset, I had a huge performance boost.
Preprocessing + digits.traineddata = 42% accuracy
Dirty image + custom.traineddata = 46% accuracy
I'm trying to understand when the model will overfit and meanwhile increase the training dataset

I can confirm it is improving, I'll close this one

@mikylucky


Composer mediawiki/skin support

refs #6
If you want to support composer require .. then you have to do some additional steps:

Register your package with packagist.org (see https://packagist.org/packages/mediawiki/chameleon-skin or https://packagist.org/packages/mediawiki/vector-skin) in order for Composer to find the package
The naming convention for the mediawiki-skin type is name + -skin (to distinguish it from a possible extension of the same name within the same mediawiki/ namespace) so in your case mediawiki/booty-skin

{
   "name"       : "mediawiki/booty-skin",
   "type"       : "mediawiki-skin",
   "description": "... skin",
   "keywords"   : [
       "wiki",
       "MediaWiki",
       "skin"
   ],
...

For all global variables like (e.g. wgExtensionCredits) use $GLOBALS instead as in $GLOBALS['wgExtensionCredits']

Thanks @mwjames I hope to get some time on this skin again soon, so I'll update it as per your advice at the next opportunity.

I've made the changes you suggested @mwjames  and to my tests install via Composer now works as expected.
I've got this package hosted at packagist under tinymighty, but happy for it to be moved over to mediawiki if that's the way things are done.

to my tests install via Composer now works as expected.

:+1:

but happy for it to be moved over to mediawiki if that's the way things are done.

I think this entirely up to you. Having it under mediawiki/ might improve discoverability but functionality wise it doesn't change anything.
You may want to add your skin to [0] as well, so others can appreciate your work. I added it to [1] since it works on Funtoo Linux wiki (that's where I first discovered your skin) together with SMW.
[0] http://www.mediawiki.org/wiki/Category:All_skins
[1] https://www.semantic-mediawiki.org/wiki/Help:Skins

One think I couldn't find was a license.

Good call. I've added a license file, and created pages on MediaWiki for this skin and for the Skinny extension which it needs to work.  Thanks for the nudge, I've been meaning to get some of this stuff sorted for a long time :)

Seems to be solved therefore closing it. Cheers


Use references to schemas in API definition

Closes: https://github.com/metarhia/impress/issues/1574

[x] tests and linter show no problems (npm t)
[x] code is properly formatted (npm run fmt)
[x] description of changes is added in CHANGELOG.md

Landed in https://github.com/metarhia/impress/commit/8997dd8773394bd77d62b3fb108a55c01f087c32


Using template to render week events trigger twice or multiple times

Bug related to https://github.com/quasarframework/quasar-ui-qcalendar/issues/18.
I think this is still a big problem. Maybe it's just not explained properly.
Describe the bug
I use basic code to display the month calendar and I noticed that the template for slot #week is rendered several times.
I have tried several codes to display the basic calendar and all of them have the same issue.
I also set console.log() in other functions to look for a point that might be querying the render calendar template. No other function is executed multiple times!
At the beginning when the component is displayed on the screen, console.log(...) is printed 2x. If the calendar is moved forward or backward (goToNext/PreviousMonth), console.log(...) is printed 3x. If we perform window resize, console.log(...) is printed 50x, 100x, ...
If we have a lot of data that we want to put on the calendar, this will put a lot of load on the application!
I have not tested other views yet (day, week, agenda...).
Codes:
<q-calendar
        ref="calendar"
        :locale="locale"
        v-model="date"
        now="date"
        mode="month"
>
       <template #week="{ scope: { week, weekdays } }">
              {{console.log('This is rendered twice!')}}
        </template>
</q-calendar>

<q-calendar-month
        ref="calendar"
        :locale="locale"
        v-model="date"
        now="date"
>
       <template #week="{ scope: { week, weekdays } }">
              {{console.log('This is rendered twice!')}}
        </template>
</q-calendar-month>

<QCalendarMonth
        ref="calendar"
        :locale="locale"
        v-model="date"
        now="date"
>
       <template #week="{ scope: { week, weekdays } }">
              {{console.log('This is rendered twice!')}}
        </template>
</QCalendarMonth>

The same issue is with Scheduler. Code:
<q-calendar-scheduler
      ref="scheduler"
      v-model="date"
      v-model:model-resources="resources"
      view="week"
>
      <template #resource-days="{ scope }">
              {{console.log('This is rendered twice!')}}
       </template>
</q-calendar-scheduler>

Expected behavior
I would expect the template to be executed only once. With window resize I expect that there is no rendering of the template.
Desktop (please complete the following information):

OS: Windows 10 64-bit
Browser: Chrome
Quasar: 2.14.2
@quasar/app-vite: 1.7.3
@quasar/quasar-ui-qcalendar: 4.0.0-beta.19
vue: 3.4.15
vue-router: 4.2.5
node: 18.17.1

This is really important.
Rendering twice becomes a real problem when you have to calculate lots of content cards and calculate their positions and sizes.


Jetquery cannot find table in Schema

Prior to running jetzig server I:

Rolled back some migrations, edited one, then reran jetzig database migrate
Ran jetzig database reflect
Edited the query as to be one statement
Ran jetzig server

Error:
.zig-cache/o/54ec88777eeb81755877ba9f98da00b5/src/app/views/upload.zig:18:30: error: enum 'meta.DeclEnum(jetzig.config.Schema)' has no member named 'Artist'
    try request.repo.insert(.Artist, .{
                            ~^~~~~~
/home/swebb/.zvm/master/lib/std/meta.zig:627:12: note: enum declared here
    return @Type(.{

Query:
    try request.repo.insert(.Artist, .{
        .id = 123,
        .name = "wilco",
        .album_num = 10,
        .song_num = 200,
        .play_count = 2700,
        .avg_album_score = 10.0,
        .avg_song_score = 10.0,
        .url = "/wilco",
        .aliased = false,
    });

Schema.zig:
const jetquery = @import("jetzig").jetquery;

pub const AlbumSong = jetquery.Model(
    @This(),
    "album_songs",
    struct {
        id: i32,
        album_id: i32,
        song_id: i32,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{},
);

pub const Album = jetquery.Model(
    @This(),
    "albums",
    struct {
        id: i32,
        title: []const u8,
        song_num: i32,
        length: f64,
        play_count: i32,
        score: f64,
        avg_song_score: f64,
        url: []const u8,
        holiday: bool,
        compilation: bool,
        collaboration: bool,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{
        .relations = .{
            .scrobbles = jetquery.hasMany(.Scrobble, .{}),
        },
    },
);

pub const ArtistAlbum = jetquery.Model(
    @This(),
    "artist_albums",
    struct {
        id: i32,
        artist_id: i32,
        album_id: i32,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{},
);

pub const ArtistSong = jetquery.Model(
    @This(),
    "artist_songs",
    struct {
        id: i32,
        artist_id: i32,
        song_id: i32,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{},
);

pub const Artist = jetquery.Model(
    @This(),
    "artists",
    struct {
        id: i32,
        name: []const u8,
        album_num: i32,
        song_num: i32,
        play_count: i32,
        avg_album_score: f64,
        avg_song_score: f64,
        url: []const u8,
        aliased: bool,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{
        .relations = .{
            .scrobbles = jetquery.hasMany(.Scrobble, .{}),
        },
    },
);

pub const Scrobble = jetquery.Model(
    @This(),
    "scrobbles",
    struct {
        id: i32,
        date: jetquery.DateTime,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{
        .relations = .{
            .song = jetquery.belongsTo(.Song, .{}),
            .album = jetquery.belongsTo(.Album, .{}),
            .artist = jetquery.belongsTo(.Artist, .{}),
        },
    },
);

pub const Song = jetquery.Model(
    @This(),
    "songs",
    struct {
        id: i32,
        name: []const u8,
        play_count: i32,
        length: f64,
        score: f64,
        url: []const u8,
        aliased: bool,
        track_num: i32,
        hidden: bool,
        holiday: bool,
        created_at: jetquery.DateTime,
        updated_at: jetquery.DateTime,
    },
    .{
        .relations = .{
            .scrobbles = jetquery.hasMany(.Scrobble, .{}),
        },
    },
);

Edit: Realizing now the way I worded this, I'm making it sound like I'm reporting a regression. However, I hadn't had it working prior to any of those commands (I hadn't done any work between the fix for #1 and today) so to be clear, not (necessarily) a regression

@mitteneer Do you have this line inside jetzig_options in your src/main.zig ?
pub const Schema = @import("Schema");

Ah that was it, thank you