Search Regex doesn't accept \n

When I am editing js objects sometimes I want to make a search and replace over more than one line, so I am using regular expressions containing new line commands to include the line break.
When I tried today, the Brackets search could not find anything when entering \n in the search field and activating Regular Expression Button.
If I open the same file in Notepadd++ I can search for and find new line characters.
I am not sure, but I think this has worked in previous versions of Brackets.
Issue #8093 might be related.

Any update?

Any update?

Of course not, this issue is 6 years old and there is no fix. Use Notepad++ for this instead of the Brackets, web development source editor by the Adobe. Lmao


OAuth2 auth+token endpoints

generally: use https endpoints when requests contain sensitive data - inform user if endpoints and redirections are insecure.
This is a list of missing functionality to conform to https://tools.ietf.org/html/rfc6749
/auth endpoint:

(must) error message for unsupported authorization grant -> see https://tools.ietf.org/html/rfc6749#section-<IP_ADDRESS> unsupported_response_type - currently only supports "code" and just answers "bad request" on wrong type
(optional) RefreshToken: If refresh tokens are issued then they are included when issuing an access token
(optional) endpoint also supports "POST" method
(must) parameters without values must be be treated as if they were omitted - currently takes empty strings
(must) response response_type parameter support for "token" - currently only for "code"
(optional) response_type can have multiple values delimited by a space ( %20 )
(must) if response_type is missing return an error message -> see https://tools.ietf.org/html/rfc6749#section-<IP_ADDRESS> invalid_request
(must) the oauth2callback uri must be absolute and
(optional) can include a query component
(optional) support for multiple oauth2callback uris
(must) do not redirect directly to invalid redirection uri
(must) add "Cache-Control: no-store" header to code response
(optional) /auth endpoint should show a page that tells the user which details are to be shared ( scope and what details of the user it contains )

/token endpoint:

(must) parameters without values must be be treated as if they were omitted - currently takes empty strings
(must) error message for bad requests -> see https://tools.ietf.org/html/rfc6749#section-<IP_ADDRESS> and https://tools.ietf.org/html/rfc6749#section-5.2
(must) discard user credentials when access token was sent
(must) add "Cache-Control: no-store" header to token response

Will do the "must" points in the near future

After testing: all (must) entries should be done


First budget row is cutoff at the top when using Height of Budget Rows - Slim option

Defective ToolKit Feature Name: Height of Budget Rows
Expected Behavior
It is expected that selecting Height of Budget Rows >> Slim will reduce the height of each row without cutting any rows off visually.
Actual Behavior
When selecting the Slim option, the first row in the budget is cut off at the top. This is a visual UI error. It seems to be even more pronounced when the first row is "Uncatagorized Transactions".
Steps to Reproduce the Behavior

For the "Height of Budget Rows" option, select "Slim".
Click "Save" to save settings.
Reload YNAB.
Go to the Budget tab.
Notice that the first row is cutoff at the top.
Now select an account that contains a transaction from this month.
Remove the category from one or more of those transactions.
Go back to the budget tab.
Notice that the "Uncatagorized Transaction" row is now even more cutoff.

Export of Toolkit Settings (Bottom Left of Settings Page)
[{"key":"accountsClearSelection","value":false},{"key":"accountsDisplayDensity","value":"0"},{"key":"accountsEmphasizedOutflows","value":false},{"key":"accountsRowHeight","value":"0"},{"key":"accountsSelectedTotal","value":false},{"key":"accountsStripedRows","value":true},{"key":"activityTransactionLink","value":true},{"key":"betterScrollbars","value":"0"},{"key":"budgetBalanceToZero","value":true},{"key":"budgetProgressBars","value":"0"},{"key":"budgetQuickSwitch","value":false},{"key":"budgetRowsHeight","value":"2"},{"key":"calendarFirstDay","value":"0"},{"key":"categoryActivityPopupWidth","value":"0"},{"key":"changeEnterBehavior","value":false},{"key":"checkCreditBalances","value":false},{"key":"checkNumbers","value":false},{"key":"collapseExpandBudgetGroups","value":false},{"key":"collapseSideMenu","value":false},{"key":"colourBlindMode","value":false},{"key":"compactIncomeVsExpense","value":false},{"key":"currentMonthIndicator","value":false},{"key":"daysOfBuffering","value":false},{"key":"daysOfBufferingHistoryLookup","value":"0"},{"key":"editButtonPosition","value":"0"},{"key":"enableRetroCalculator","value":false},{"key":"enlargeCategoriesDropdown","value":true},{"key":"enterInRegisterNow","value":true},{"key":"goalIndicator","value":false},{"key":"goalIndicatorWarningColor","value":false},{"key":"googleFontsSelector","value":"0"},{"key":"hideAOM","value":false},{"key":"highlightNegativesNegative","value":false},{"key":"importNotification","value":true},{"key":"incomeFromLastMonth","value":"0"},{"key":"l10n","value":"0"},{"key":"largerClickableIcons","value":false},{"key":"monthlyNotesPopupWidth","value":"0"},{"key":"options.dark-mode","value":false},{"key":"pacing","value":"0"},{"key":"popupCalculator","value":false},{"key":"printingImprovements","value":true},{"key":"privacyMode","value":"0"},{"key":"reconciledTextColor","value":"0"},{"key":"removePositiveHighlight","value":false},{"key":"removeZeroCategories","value":false},{"key":"reports","value":true},{"key":"resizeInspector","value":false},{"key":"rightClickToEdit","value":true},{"key":"runningBalance","value":false},{"key":"seamlessBudgetHeader","value":true},{"key":"showIntercom","value":true},{"key":"splitKeyboardShortcut","value":true},{"key":"splitTransactionAutoAdjust","value":true},{"key":"squareNegativeMode","value":false},{"key":"swapClearedFlagged","value":false},{"key":"toBeBudgetedWarning","value":false},{"key":"toggleSplits","value":false},{"key":"toggleTransactionFilters","value":"0"},{"key":"warnOnQuickBudget","value":false}]

System Settings
ToolKit Version:0.7.7
Operating System (Mac/Windows/Etc):Mac
Browser (Chrome/Firefox/Safari):Chrome
Browser Version: 54.0.2840.98 (64-bit)
Other Extensions: Clip to Evernote, Colorzilla, Evernote Clearly, Bitly, AdBlock Plus, Todoist

@malutj could you provide a screenshot as well?

#701

Hey @malutj  I'm going to go ahead and close this issue as it should be fixed. If you're still experiencing the issue, please feel free to reopen! Thanks again!


Rework partial packet handling once more

Address the concern that commit c53c2fec raised differently.
The original direction of the traffic is encoded in bit 0
of the flight number.

Previously, I mean before I ruined the code, this loop looked like this:
     foreach my $record (@{$self->record_list}) {
-        #We only replay the records for the current flight
-        if ($record->flight != $self->flight) {
-            next;
-        }
         $packet .= $record->reconstruct_record();
     }

So this restores the original logic, just with the difference that if bi-directional
traffic crosses only unsent flights from the same direction are considered.
@dot-asm I hope you like it.

What I don't appreciate is that decision if packet is to be reconstructed is split. I mean this loop has if-then-skip and reconstruct_record has if-then-skip too. Would you consider passing $self->flight to reconstruct_record (instead of $server) and consolidating if-then-skip a sensible thing?

easy, because $server is always ($flight & 1)

Merged.  Thanks!


docs: indicate that 4.x is the latest supported version

Hey there. Thanks for your PR. cjstoesm is now fully compatible with all TypeScript versions between 3.2 and 5.6. Because of that, I'm going to close this PR.


Email verification

Email verification on company data page

I would try looking into this -- https://www.mailgun.com/

closing for the sake of #9


Custom resource only able to be inherited from script after editor restart

Godot version:
3.2 stable
OS/device including version:
Win 10 1903
Issue description:
After you create a script that inherits resource, give it a class name, and save it, it is not available from the 'New Resource' dialog until after the editor is restarted.
Steps to reproduce:
New Project
Add Script
class_name MyNewResource
extends Resource

export (String) var thing

Save script
Right click in FileSystem -> New Resource
Search for your class, it's not there
Restart Editor
Right click in FileSystem -> New Resource
Now it is there.
Minimal reproduction project:
As Above
Is there a refresh asset database method or something? Any ideas on where to look to resolve this?

Is there a refresh asset database method or something? Any ideas on where to look to resolve this?

Try saving the scene then use Scene > Revert Scene at the top of the editor. You can bind it to a shortcut in the Editor Settings if you plan on using it often.

I couldn't find any docs on 'Revert Scene', are they any details on what exactly it does? I know about how you can revert properties with the little grey arrow on the property editor. How does this expand to a scene level? Or is the same word used for different meaning?

Revert Scene basically reloads the current scene without closing the editor. It's functionally equivalent to closing the scene then reopening it.

@Calinou No go unfortunately... Revert Scene has no effect, restarting the editor still resolves it. I'll try look into it. Any hints for where to look appreciated.

Update on this one, seems to only occur when using an external editor, as I am with VS Code. When I turn off the external editor in Editor Settings and use the built-in one, it works fine, and the resources are able to be created as soon as I save the script file.

Any reason why this button is hidden? Enabling this button and then clicking it resolves the issue without editor restart. It's all set up and ready to go... just needs to be shown!
https://github.com/godotengine/godot/blob/30ab5c9baae1cad3e157d906395a4eb8cef77e42/editor/filesystem_dock.cpp#L2513-L2519

@EricEzaM It's probably intended as a debugging option and should normally not be needed. However, I think it makes sense to expose it given the number of bugs related to external editors right now. Feel free to open a pull request :slightly_smiling_face:

Duplicate of #24633.


Feature: Invalid Reason information on invalid parts

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

This is a feature

What is the current behavior? (You can also link to an open issue here)

There is no way for the blueprints to provide additional information about why the part is invalid.

What is the new behavior (if this is a feature change)?

Additional information on the reason why a part is invalid can be provided. If information is provided, it can be a mandatory short description (title), longer (description) and color hint (color) that may be used by the UI to mark a part.

Other information:

For correct building of this feature, this PR needs to be released in blueprints-integration.
Status

[x] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

Codecov Report

Merging #129 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #129      +/-   ##
==========================================
- Coverage    63.9%   63.89%   -0.02%
==========================================
  Files         120      120
  Lines        8264     8267       +3
  Branches     1782     1784       +2
==========================================
+ Hits         5281     5282       +1
- Misses       2960     2962       +2
  Partials       23       23

Impacted Files
Coverage Δ

meteor/lib/collections/Segments.ts
57.69% <0%> (ø)
:arrow_up:

meteor/lib/collections/Parts.ts
39.13% <0%> (-1.17%)
:arrow_down:

meteor/server/coreSystem.ts
67.91% <0%> (-0.48%)
:arrow_down:

meteor/lib/collections/Timeline.ts
63.41% <0%> (ø)
:arrow_up:

meteor/server/api/blueprints/migrationContext.ts
99.6% <0%> (ø)
:arrow_up:

meteor/server/api/playout/infinites.ts
38.77% <0%> (ø)
:arrow_up:

meteor/server/api/blueprints/postProcess.ts
100% <0%> (ø)
:arrow_up:

meteor/server/api/playout/timeline.ts
56.64% <0%> (+0.15%)
:arrow_up:

meteor/server/api/playout/pieces.ts
21.92% <0%> (+0.34%)
:arrow_up:

meteor/server/api/testTools.ts
37.36% <0%> (+0.69%)
:arrow_up:

Continue to review full report at Codecov.

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


versioned shared library

this commit adds versioning to libseasocks.so
before:
/usr/local/lib/
|-- libseasocks.so
after:
/usr/local/lib/
|-- libseasocks.so -> libseasocks.so.1.4.4
|-- libseasocks.so.1.4.4

Seems the versioning got lost in #143 (previously added by #77 / #78).

 Or is it ignored on static build anyway?

 Or is it ignored on static build anyway?

I would assume, that it gets ignored and it seems to have worked previously with https://github.com/mattgodbolt/seasocks/pull/78

Maybe it's a stupid question: But shouldn't the SO version only get set when building a SO? Or is it ignored on static build anyway?

Actually, we could omit the SOVERSION, if that is cause for confusion:
"For shared libraries VERSION and SOVERSION can be used to specify the build version and API version respectively. [...]  If only one of both is specified the missing is assumed to have the same version number." - https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html

Only shared libraries are mentioned at https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html and https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html

Ok, thanks!

Anything left @Jasper-Ben @madebr? Otherwise we can merge I guess :+1:

I think the SOVERSION can be dropped as there is no backwards compatibility contract.
See https://en.wikipedia.org/wiki/Soname

ok, I did a quick sqash. Feel free to merge (assuming Seasocks_VERSION works, did not test).

Thanks @Jasper-Ben !


[ru] Localization of /concepts/scheduling-eviction/api-eviction.md

Add RU localization for api-eviction.md and _index.md.

@shurup hello! Please review and merge this PR.

/lgtm

@shurup appreciate the review, all the corrections are committed. I had to add two more files to the Glossary to get rid of the following errors:

ERROR 2023/02/16 12:13:24 [ru] "docs/concepts/scheduling-eviction/api-eviction.md": "api-eviction" is not a valid glossary term_id, see ./docs/reference/glossary/* for a full list
ERROR 2023/02/16 13:03:30 [ru] "docs/concepts/scheduling-eviction/_index.md": "pod-disruption" is not a valid glossary term_id, see ./docs/reference/glossary/* for a full list

Now the tests run smoothly, and the PR seems to be ready for merging (well, at least I hope so :smile:)

Great, thanks! All looks fine to me.
/lgtm
/approve


Landing page components

Description
Completed functionality and rough styling of main components for landing page: Featured Projects, PopularMakers, PopularReviewers
Type of change

[ ] 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

Change status

[x ] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Tested by adding more data for each component

[ ] Test A
[ ] Test B

Checklist:

[x] I have performed a self-review of my own code
[x] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My code has been reviewed by at least one peer
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

Added Redux actions and reducers for the following components:
FeaturedProjects
PopularMakers
PopularReviewers


Enhancement: Distinguish between error message and context in validation of spans

Description
I expanded slightly on the error message provided when providing spans that do not match the tokenization.
Consider the following example script:
import argilla as rg

record = rg.TokenClassificationRecord(
    text = "This is my text",
    tokens=["This", "is", "my", "text"],
    prediction=[("ORG", 0, 6), ("PER", 8, 14)],
)

The (truncated) output on the develop branch:
ValueError: Following entity spans are not aligned with provided tokenization
Spans:
- [This i] defined in This is my ...
- [my tex] defined in ...s is my text
Tokens:
['This', 'is', 'my', 'text']

The distinction between defined in and This is is unclear. I've worked on this.
The (truncated) output after this PR:
ValueError: Following entity spans are not aligned with provided tokenization
Spans:
- [This i] defined in 'This is my ...'
- [my tex] defined in '...s is my text'
Tokens:
['This', 'is', 'my', 'text']

Note the additional '. Note that the changes rely on repr, so if the snippet contains ' itself, it uses " instead, e.g.:
import argilla as rg

record = rg.TokenClassificationRecord(
    text = "This is Tom's text",
    tokens=["This", "is", "Tom", "'s", "text"],
    prediction=[("ORG", 0, 6), ("PER", 8, 16)],
)

ValueError: Following entity spans are not aligned with provided tokenization
Spans:
- [This i] defined in 'This is Tom...'
- [Tom's te] defined in "...s is Tom's text"
Tokens:
['This', 'is', 'Tom', "'s", 'text']

Type of change

[x] Improvement (change adding some improvement to an existing functionality)

How Has This Been Tested
Modified the relevant tests, ensured they worked.
Checklist

[x] I have merged the original branch into my forked branch

[ ] I added relevant documentation

[x] follows the style guidelines of this project

[x] I did a self-review of my code

[ ] I added comments to my code

[ ] I made corresponding changes to the documentation

[ ] My changes generate no new warnings

[x] I have added tests that prove my fix is effective or that my feature works

Tom Aarsen

Hi @tomaarsen Looks much more readable. Perhaps it makes sense to directly link them to the provided input.
("ORG", 0, 6) - 'This i' defined in 'This is Tom...'

Even better. I also considered output along the lines of this:
("ORG", 0, 6): 'This is Tom...'
                ^^^^^^

But I suspect that we would be best off implementing #1843 instead and using colors.
That said, we may want to have a "color toggle" of sorts for users directly logging away into files, in which case this solution would work well.
Thoughts?
I'm down to update this PR according to your suggestion, by the way.

Yes, I agree that something like that would even be better, but might require a bit more custom code/logic, so I would, for now, go for a quick win, and based on the initial rich improvements continue fine-tuning from there.

I've updated the error to match the proposed message from https://github.com/argilla-io/argilla/pull/2329#issuecomment-1425614519. I think we should skip the proposed error from https://github.com/argilla-io/argilla/pull/2329#issuecomment-1425619096.
import argilla as rg

record = rg.TokenClassificationRecord(
    text = "This is Tom's text",
    tokens=["This", "is", "Tom", "'s", "text"],
    prediction=[("ORG", 0, 6), ("PER", 8, 16)],
)

ValueError: Following entity spans are not aligned with provided tokenization
Spans:
('ORG', 0, 6) - [This i] defined in 'This is Tom...'
('PER', 8, 16) - [Tom's te] defined in "...s is Tom's text"
Tokens:
['This', 'is', 'Tom', "'s", 'text']

I think this PR is ready. The next step could come when #1843 is implemented.

Tom Aarsen

Hi @tomaarsen ,
Sorry, readability is still a bit off for me.
Spans:
("ORG", 0, 6, "This i")
("PER", 8, 16, "Tom's te")
Tokens:
['This', 'is', 'Tom', "'s", 'text']

Spans:
("ORG", 0, 6) - "This i"
("PER", 8, 16) - "Tom's te"
Tokens:
['This', 'is', 'Tom', "'s", 'text']

I wanted to avoid wordiness because we are dealing with a lot of text/words. If you feel option 2 is too unintuitive, I would prefer your final proposal.

No, I think option 2 is fairly clear, especially as we must consider that the snippet follows "Following entity spans are not aligned with provided tokenization". I'll get on it :)

Updated the output:
import argilla as rg

record = rg.TokenClassificationRecord(
    text = "This is Tom's text",
    tokens=["This", "is", "Tom", "'s", "text"],
    prediction=[("ORG", 0, 6), ("PER", 8, 16)],
)

ValueError: Following entity spans are not aligned with provided tokenization
Spans:
('ORG', 0, 6) - 'This i'
('PER', 8, 16) - "Tom's te"
Tokens:
['This', 'is', 'Tom', "'s", 'text']

I'm open to any additional feedback.


Drag and drop overlay does not cover canvas

Bug Description
See screenshot.
Expected Behaviour

Steps to Reproduce
Drag file into window.
Screenshots

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria
QA Instructions

According to #1741 this was already fixed in the meantime


Implement follow-fork-mode

b6de3d3

There seems to be a problem with replacing the tracer with gdb when following a fork, not sure why yet.


Trouble with class names containing numerals

OS: Windows 10
Node: v6.9.5
Webpack: 3.4.1
New to webpack. Trying PurifyCSS. Using class-names with numerals in .scss files will be compiled in the .css file, regardless if the class is present in the template files or not.
Example in template

Example in .scss file
.test2 { color: red }
Output in .css file
.test2 { color: red }
However, changing the .scss to "test" and the class in the template to "testy" will yield the desired result (omitting the "test" class from the compiled css).
It seems PurifyCSS does not recognize class names with numerals in them. Seen other issues addressing this issue when using CSS frameworks like bootstrap, who has plenty of numeral-based class-names.
Is there something that can be done about this?

FYI this is an outstanding with the core purifycss library:

https://github.com/purifycss/purifycss/issues/147#issuecomment-319375939
https://github.com/purifycss/purifycss/issues/118

@Cobrarosa See @zackkrida's comment. @zackkrida Thx 👍


174 interactive treemap for fossil fuel page

Summary
Description of PR here...
Closes #174
Changes

changed treemap on fossil fuel page from photo to dynamic apexchart

Screenshots

TODO

[x] Create multidimensional tree chart that relies on DB queries
[x] Format each dimension as carbon underground 200 (red), fossil fuel (orange), and rest of the portfolio (blue)
[x] Display the company name on the chart and hover over amount of CO2, with the legend enabled
[x] On click, send to corresponding tare page
[x] Make sure it looks good in page

@zorazrr I would still like to check all these todo's before merging in, but I wanted to open a pr so we can discuss how it looks in page and getting the other technical stuff down.
First and foremost, how can we get the dimensions right so that it is centered but only takes up say 75% of the width of the page. Also, how can we get the name to be cleaner that what is displayed? I thought we were going to overwrite the DB with company names from yahoo finance?

You will need to wrap the EmissionTreeMap component in a div in UniversityInvestments.tsx, and adjust the wrapper div to be 75% and centered in the screen.
We are. The ones that are not clean are not handled in the Python scripts and Yahoo Finance (either bc of ticker value or other stuff). Those cases I thought we are tackling those through the admin data update system, no?

Here is what the treemap looks like in page now,

I think the dimensions are good for production, I like that the paragraph and the chart fit on page.
I still need to add legend and link to tare page.

Visually, the chart is where I want it to be

:)


defaultOption prop is not working

defaultOption prop is not working. The value is not getting selected by default using this option. https://snack.expo.dev/U81BJIcrW

Yes having same issue and also the setting default value using setSelected is not being auto selected in the dropdown.
https://snack.expo.dev/@akshay_vootkuru/react-native-dropdown-select-list

You both are using older version of the plugin
{
"dependencies": {
"axios": "^0.27.2",
"expo-constants": "~13.0.2",
"@expo/vector-icons": "^12.0.0",
"react-native-paper": "4.9.2",
"react-native-dropdown-select-list": "1.0.18"
}
}

Please upgrade to "react-native-dropdown-select-list": "1.0.21"


"TCP connections" is often inflated

e.g. it is currently claiming that the weavescope container has 415 TCP connections.

It's also possible that the app and probe are holding loads of connections.

I've noticed this as well, I suspect something like we're summing connection counts at each second in the 15s window, rather than taking the max of that window.

Tracked it down to procspy returning duplicates, because the connections appear in multiple /proc/<pid>/net/tcp files:
PROCFILE       MD5SUM                           COMMAND
6907/net/tcp   548238acd52847eddd0557101b347263	[kworker/u2:1]
6957/net/tcp   548238acd52847eddd0557101b347263	[kworker/0:2]
6992/net/tcp   548238acd52847eddd0557101b347263	/sbin/runsvdir /etc/service
6998/net/tcp   548238acd52847eddd0557101b347263	runsv probe
6999/net/tcp   548238acd52847eddd0557101b347263	runsv app
7001/net/tcp   548238acd52847eddd0557101b347263	/home/weave/probe
7002/net/tcp   548238acd52847eddd0557101b347263	/home/weave/app
8943/net/tcp   548238acd52847eddd0557101b347263	vim /home/vagrant/net_tcp_diffs.txt

Good times.


Add contribution guidelines under .github

This PR is for #2750. (And repost of PR #2763)

CONTRIBUTING.md
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md

CONTRIBUTING.md is simply copied from docs/source/contribution.rst and markups has been fixed for markdown.
See also: https://github.com/blog/1184-contributing-guidelines
Also added ISSUE_TEMPLATE.md and PULL_REQUEST_TEMPLATE.md.

I am thinking of merging this PR after updating the contribution guide for v2 (working as #2773). Could you update CONTRIBUTING.md accordingly after the PR is merged.

OK!

I added a few optional wording change suggestions.

Thank you for review!
As we discussed internally, the content of CONTRIBUTING.md will be a link to the official contribution guide (or vise versa).
The official guide is being composed in #2773.

LGTM


is WeTTY the right tool for my remote managment scenario, when SSH is block on my machine

Hello,
it took me some time to find apps to enable me to share a shell in a browser.
Me and friend managing some simple VPSs that shall be managed from a central management server to simplify workflow.
There are cases that we still need a shell and allowing us to share this session would be extremely helpful.
In addition, when I'm at work, SSH is blocked so it quite challenging to manage them.
So is WeTTY the tool to get around this?
The architecture is close to this one:
image

thank you for answering my humble question which answer might be obvious but due to my endless searching I cannot see the woods for the trees.
Stefan

when I'm at work, SSH is blocked so it quite challenging to manage them

Not really an answer to your question, but that statement is concerning.
If your employer blocked it, attempting to subvert their restrictions probably isn't the best idea.  Also, in some places whatever you do on company time is automatically 'owned' by the company.

If your employer blocked it, attempting to subvert their restrictions probably isn't the best idea.

It is blocked for security reason of the companies network what is acceptable. Accessing my stuff that way does not expose any risk to the company, so that does not count

Also, in some places whatever you do on company time is automatically 'owned' by the company.

I don't work on them during office but if something is making trouble shell access is mandatory. The same when you bank or whoever informs you that something is wrong, you don't wait until coming back home.

No offense intended.  I just didn't want you to fall into the trap that a few of my co-workers ran into.

What trap they ran into?

WeTTy's primary use for my self is for using on machines or networks where ssh is blocked for some reason or another.
WeTTy doesn't currently allow for session sharing, I would recommend the use of tmux or screen for this rather than implementing it in WeTTy as they already do a fantastic job of session sharing.
I currently run WeTTy on one box in my network and then remotly access other boxes from that admin box using tradiotinal tool ala a jump host.
So i think yes WeTTy would work for you.

tmux

I'm reading up tmate.io currenlty too.

I currently run WeTTy on one box in my network and then remotly access other boxes from that admin box using tradiotinal tool ala a jump host.
So i think yes WeTTy would work for you.

that would alright for the beginning as it allows to access them via ssh at any time from anywhere.
Could you explain in detail your setup as it looks like that tmate server container needs to run with --cap-add=SYS_ADMIN what is for security reasons, but still don't like it:

https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container
https://serverfault.com/questions/889139/disadvantage-of-giving-sys-admin-to-docker-container/892461?_sm_au_=iVVfvkqVLqkfR8T6tfMpNK72VpWWt)

Unfortunately docker-stack does not support  cap-add what could me allow to bring up and down using portainer.
So I wonder how can activate WeTTY on demand without shell access?
Any safe possibility using docker?


Return the old value during a insert.

This makes the storage api closer to the rust api, and allows for a more efficient logging of changes. IE a changefeed that works on-top of the of specs.
This is an api breaking change.

If we wanted to stick with standard return types, we could have Result<Option<T>, T>. Although that would be less descriptive, so I'm merging your approach.


std.mix should be curried

It'd be nice to be able to using currying with std.mix so we can nicely express a complex transform we can apply to several objects.
Ramda does it for the vast majority of its functions, we could have a look at how they do it.

You can't curry a function that takes varargs, because you don't know when you've provided all the arguments. But you can certainly make it higher-order -- that is,
function mix(...patches) {
  return v => patches.reduce((acc, fn) => fn(acc), v);
}

Ah yes, makes sense! Not sure the mix in the std lib should be a high order function itself, users can always declare such a thing with:
const f = v => mix(v, ...)

Let's close this for now.


Add an integration test for Messaging SQS

To better test all client implementations, we need an integration test.

sorry for delay, busy time happened. I will look into it this week.

https://github.com/adampoplawski/quarkus-amazon-services/pull/1

could you create a pull request in this repo from your branch

sorry, new to contributing :)
https://github.com/quarkiverse/quarkus-amazon-services/pull/1483


Natively make ajv validators typeguards in TS (integrate with json-schema-to-ts)

What version of Ajv you are you using?
NA
What problem do you want to solve?
In TS, it would be neat to make ajv.validate and ajv.compile outputs typeguards.
I maintain json-schema-to-ts which would allow such feature, as long as the schema is defined with the as const statement. The lib is heavily tested against ajv, and there are even examples on how to integrate with ajv.
This is something that is frequently done in many projects, and it would be cool to have this feature natively in the lib.
What do you think is the correct solution to problem?
Some schemas (for instance, those imported from json files), will NOT be defined with the as const statement. Besides, json-schema-to-ts has impacts on IDE performances (it comes with some deeply nested type computations), and FromSchema can accept configuration options such as deserialization patterns.
So I think the best solution is to make such feature opt-in, but I'm not sure exactly how. Maybe with a type overload:
import Ajv, { TypechargedAjv } from 'ajv'

const ajv = new Ajv() as TypechargedAjv<SomeFromSchemaOptions>

const mySchema = { ... } as const

if (ajv.validate(mySchema, someData)) {
   ... // someData is correctly typed
}

Will you be able to implement it?
Definitely yes.
Note: There are some other solutions out there, but I think json-schema-to-ts is the best for this need. Some links if you want to check them:

https://www.npmjs.com/package/as-typed (less maintained, less downlads and less features)
https://www.npmjs.com/package/@sinclair/typebox (different approach, as it uses a different syntax, so less directly integrable with ajv)

Validate function is already typeguarded, you just need to pass the generic to it.

Sorry I probably wasn't clear enough: I was talking about making validators typeguards without having to input the valid data type.
If you define your schemas with the as const statement, the generic type of the schema is enough to infer the type of valid data, that's what json-schema-to-ts does.
It may seem like a small difference, but it is a HUGE one! Providing manually the type of valid data:

Takes time from the developer and increase the codebase size
Means that you duplicate your types between json-schemas and types, which increases risks of bug

Sure, you can always provide FromSchema<typeof mySchema> as your generic, but there also, there may be room for human error (you provide the same input twice).

Overloads for compile infer the type from the passed schema already - check this: https://github.com/ajv-validator/ajv/blob/master/lib/core.ts#L371

@epoberezkin Can you give me more context on the lines of code you provided ? It's not that easy to understand.
It seems rather like the JSON schema type is inferred from the valid data type but I may be wrong 🤔

It seems rather like the JSON schema type is inferred from the valid data type but I may be wrong

it should work both ways - if you provide the schema of known type, the compiler would infer the type of data. There are actually tests for that.

See this, for example - https://github.com/ajv-validator/ajv/blob/master/spec/types/json-schema.spec.ts
Validating against the schema of known type proves the type of data

@ThomasAribart
Do I understand right that you want a way to automatically infer a valid interface for an input value from JSON schema?
Is this even possible for complex enough schemas full of "$ref"s and "$dynamicAnchor"s?


Online demo?

Hey Hayden,
Do you have a demo in prod ?
Cheers!
Pascal

Hey @pascalandy, I don't run a demo myself but there are plenty of people using Phantom (Google search "Phantom Hayden Bleasel") e.g.

http://blog.zer0w1re.net/
http://daniafaruqui.com/
http://blog.sopamo.de/
http://articles.novoresume.com/
http://blog.bryanalexander.co/

Some have been edited but you get the idea :)

Thanks!


Weird animation

I'm replacing the navigationController.viewControllers array animated and then the notification acts a bit weird. Known bug? Known fix?
Example video of the issue: http://cl.ly/ZGu3/direct

What seems to fix it, but is probably not a solution, is calling      [JDStatusBarNotification dismiss]; first.


Add support for Floodgate UUIDs

Supporting Floodgate UUIDs would allow for java server using Floodgate/GeyserMC to have bedrock players have pronouns in the game using certain plugins/mods depending on the server, could be a nice little detail for bedrock players.

 I'm not sure how to implement it, considering this would be the first time the platform would attempt to do ID translation (to convert from the fake Minecraft UUID to an Xbox ID)

I'd be more than happy to help with the fake ID creation part, I just can't test as I don't have an Azure account and can't get a functional one

If it helps I have a bit of TypeScript code to do this conversion in a relatively quick manner
function convertFUUID(fuuid: string): string {
    return parseInt(fuuid.substring(22).replace("-", ""), 16).toString();
}

Well the concern is not necessarily from creating the ID; the thing is that it'd be kind of a pain to store it as a real minecraft account internally as it'd show up under people's linked account (despite being a "ghost" account).
In the database the platform will most likely only have the Xbox ID stored as the user's xbox account. Performing ID translations means a platform is no longer "just" a simple lookup in the database, it may be a different set of paths to take that may eventually perform a preprocessing step.
Theoretically I could just achieve this via a simple HTTP redirect, but this is not entirely transparent to API clients so I pretty much have to do the translation/re-route internally which isn't something the current code is (easily and properly) capable of doing

Couldn't this be the in the same platform as Minecraft? That way you technically store the Microsoft account only and can do a simple check after either it's a FUUID or a regular UUID, then you could do the needed database look ups then. I could be wrong, correct me if I am but this seems doable with the current system

Yes but the thing is: the platform doesn't have any "special handling" of any kind with platform and IDs. It just takes whatever input it gets, feeds it to the database, and gets results.
I'd preferably try to avoid having to do nasty platform-specific if/else branches in the middle of the platform-generic code and have a more generic way of specifying this type of things.
Put in other words; what the endpoint currently does is simply:

get ids & platform from params
query database
give results

And it does so while treating all the parameters as opaque. What I'm saying is that I don't have a clean way at this time to add between reading parameters and querying the database a transform step that'd apply the transformation required here. And I really don't want to slap an if/else branch in there since that'd quickly become a nightmare if more transformations like this are needed.
Ideally I'd have a transform function that's part of the minecraft.ts specification part and that'd transform that on-the-fly, with the function routing being dynamically handled.
Even this transform step aside, this brings a new issue since database queries may no longer be guaranteed to hit a single platform; it may need to fetch some minecraft accounts and some xbox accounts which isn't something the database abstraction is accepting at the moment...
And after that I'd still need to keep the original mapping to transform back the xbox IDs to the UUIDs used in the request (or dynamically rebuild them, alternatively...) which is a 3rd thing that needs to be taken care of 🤔
It's not very difficult, it's just a bunch of changes to the code structure that are needed 😅

Ah ok I think I understand now, no problems if you can't implement, thanks for being a cool developer tho 👍


LogEventInfo.MessageFormatter - External Structured Logging Formatter

Add support for external Message Formatter. This will allow integration with external logger formatters like Microsoft.Extensions.Logging. See also https://github.com/NLog/NLog.Extensions.Logging/pull/125

Can make extra PRs for CoreCLR and release-4.4.12. This will allow jump-start of structured-logging support for NLog.Extensions.Logging.
Will then update #2208 to work through the official LogEventInfo.MessageFormatter, so structured logging support is also added for the internal NLog-MesageFormatter.

@304NotModified Removed some premature optimization regarding FormatProvider (Too many side-effects in attempt to save 8 byte)

:+1:

Thanks! Merged!

Updated some documentation:
https://github.com/nlog/nlog/wiki/Message-Layout-Renderer

Thanks!


"Custom command" plugin to retrieve passwords from any backend that have cli interface

Will be good to implement a "custom command" plugin, that will run a specific command and parse the output to retrieve the value.
For example, we have no integration for Bitwarden secrets storage backend. But Bitwarden provides a good cli interface that can be used to retrieve the values.
For example, we can introduce the configuration like this:
name: bitwarden
dataFormat: {id}/{fieldname}
commandTemplate: bw get {fieldname} {id}
outputType: json # plaintext|json|yaml
outputValue: data.{fieldname} # JSON path, or YAML path, or Regexp

And then, we can refer to this provider like this:
password: ref+bitwarden://35ab2e78-7d47-49e5-b72f-d8c7cbc32531/password

And the same approach can cover any other secrets storage that provides command line interface!
What do you think about this idea?

@MurzNN Hey! Thanks for bringing this up. This is now a good idea, especially after we realized that there is a concrete example of where this custom-command-plugin would be handy- Bitwarden's SDK isn't light enough and gives us no ability to build a one-binary solution.


Resurrect ONNX -> jaxpr compatibility

This worked in a demo at one point. Would be great to be able to load all models in the ONNX model zoo

Not sure if the example added in 9ddd30c really covers the ONNX model zoo, since I remember there being a few different ONNX formats. But at least it's an example to point to, and we can extend it as interest directs!


#119 Enable the rubocop on bin/ and fix its errors

This fixes #119. I've enabled the rubocop on the bin dir and fixed some of its errors.

@yegor256/z please, pay attention to this pull request

@aivinog1/z this pull request is too small, just 3 lines changed (less than 10), there will be no formal code review, see §53 and §28; in the future, try to make sure your pull requests are not too small; @yegor256/z please review this and merge or reject

Codecov Report

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

@@           Coverage Diff           @@
##           master     #127   +/-   ##
=======================================
  Coverage   98.59%   98.59%
=======================================
  Files           9        9
  Lines         285      285
=======================================
  Hits          281      281
  Misses          4        4

Continue to review full report at Codecov.

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

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 3min)

Job gh:yegor256/pdd#127 is not assigned, can't get performer

This job is not in scope


Make the table width consistent

Added theme/book.css. It is a direct copy of the standard mdbook
book.css file with one addition of width: 100%; to the table style.
Infortunately mdbook allows only to substitute whole book.css.
Moreover please note that due to https://github.com/azerupi/mdBook/issues/227
theme directory has to be placed at the project root instead of src
resolves: https://github.com/brson/rust-cookbook/issues/42

Thank you! https://github.com/azerupi/mdBook/issues/227 is what I was missing.
The tables are still misaligned because the three columns are different widths in each table. Is that similarly simple to fix?

Yeah I have noticed the discrepancy between cell widths. I have no Idea if it will be easy to fix as my background is mostly c/c++ and 100% of my css knowledge was gained in previous 10minutes ;) I can look but no guarantees.

Unfortunately another 10min of css googling is not upto the task :(. The best I could do with table-layout: fixed; is to make all of table cells of identical width which in my opinion is much worse...

I guess that that each table cell/header would have to be annotated with explicit width value or css class. And I am not sure if it is possible in Markdown at all. And I would prefer to spend this time learning rust (via implementing some of the snippets) :)
@dtolnay To summarize I guess that either this pull is "good enough" for now and someone would be able to provide a better solution based on this commit or we just close it right away.

Thanks for looking into it. I will keep the original issue open and someone else can follow up.


https?

Hi Markus
Thanks for the container.
Is it possible to use svn with https with it?
best wishes
Stephan

https://github.com/MarkusH1975/svnserver.apache.mh#setup-reverse-proxy-optional

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!


Overlay components not presenting

Short description of the problem:
Overlay components are not firing from ionic lifecycle events ( ionViewWillEnter, ionViewDidEnter etc ) or a page's constructor.
What behavior are you expecting?
An overlay component to present itself when called using the present() function from within an ionic lifecycle event.
Steps to reproduce:

In the Ionic Conference App add a loading component to the schedule page's ionViewDidEnter function.
Open the app as normal and skip through to the page.

The loading component is only fired when navigating to the schedule page using the tabs at the bottom. When coming from either the side menu or straight from the tutorial the loading component isn't fired.
    ionViewDidEnter() {
        let loading = this.loadingController.create({
            content: "Please wait..."
        });
        loading.present();
    }

Bug raised as a result of this forum post.
Ionic Version: 2.0.0-beta.11

I believe this will be fixed in<EMAIL_ADDRESS>The Ionic team have been working hard to overhaul navigation in the latest release so I understand.
In the interim, I have had a similar issue and @jgw96 very kindly suggested I use:
loading.fireOtherLifecycles = false;

Which should get around your issue?

Thanks for the suggestion, unfortunately fireOtherLifecycles isn't fixing the issue. I tried this code...
ionViewDidEnter() {
    let loading = this.loadingController.create({
        content: "Please wait..."
    });
    loading.fireOtherLifecycles = false;
    loading.present();
}

Hello, thanks for opening an issue with us! This has actually already been fixed and will be in the beta.12 release. This was caused by overlay components (like the loading component) not being able to find the correct component to be presented from when fired from inside ionViewDidEnter. Thanks for using Ionic!

Awesome! Look forward to beta 12. Thanks.


Refactor calibration workers and fix metadata writing

This PR starts to refactor recOrder.plugin.workers.calibration_workers to reduce redundancy. Related: #170.
Fixes #189.

Codecov Report

Merging #195 (6e96b25) into main (10f941e) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #195      +/-   ##
==========================================
- Coverage   11.17%   11.14%   -0.04%
==========================================
  Files          45       45
  Lines        6006     6023      +17
==========================================
  Hits          671      671
- Misses       5335     5352      +17

Impacted Files
Coverage Δ

recOrder/plugin/workers/calibration_workers.py
0.00% <0.00%> (ø)

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

I tested this branch and found it was double writing "Microscope parameters" and "Microscope Parameters" fields, and I fixed it by making a small change to MetadataReader.
Other than the new import questions, LGTM!


Test with latest Go versions

Codecov Report

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

@@           Coverage Diff           @@
##           master      #10   +/-   ##
=======================================
  Coverage   99.29%   99.29%
=======================================
  Files          10       10
  Lines        1424     1424
=======================================
  Hits         1414     1414
  Misses          7        7
  Partials        3        3

Continue to review full report at Codecov.

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

Thanks! 🤗


ENH: special: allow for more fine-tuned error handling

Add new functions geterr and seterr and a context manager
errstate that control how special-function errors are handled. There
are now several categories of errors:

singular
underflow
overflow
slow
loss
no_result
domain
arg
other

which can each individually be set to 'ignore', 'warn', or
'raise'. This allows one to e.g. raise on interesting errors like loss
of precision while ignoring fairly routine errors like underflow.
The new functions/context manager work similarly to the eponymous
NumPy functions/context manager.
Closes gh-6681.
Example:
>>> import scipy.special as sc
>>> from numpy.testing import assert_raises
>>> sc.gammaln(0) # default error state is to ignore everything
inf
>>> with sc.errstate(singular='raise'):
...     with assert_raises(sc.SpecialFunctionError):
...         sc.gammaln(0) # raises
...     sc.spence(-1) # doesn't raise because this is a domain error
...
nan
>>> sc.gammaln(0) # original error state has been restored
inf

@ev-br when you have the chance, I wonder if you could comment on whether you find this more pleasant to use than the current errprint + warnings.simplefilter way?

The errstate context manager definitely makes it nicer for a user in me!
I'm not sure if it's worth it to add a pair of geterr and seterr. I'd guess that numpy only has this pair because it predates the introduction of context managers in python. However I don't have a very strong opinion here, and I defer to you and Pauli on this and on whether to formally deprecate errprint or just ignore it.
The changes to sf_error I cannot meaningfully comment on, since I just don't understand it :-).

I do think there's one use case for seterr--doing something like sc.seterr(loss='raise') at the beginning of a script.

I do think there's one use case for seterr--doing something like sc.seterr(loss='raise') at the beginning of a script.

Indeed.

Can you rebase it please @person142

Will do, but need to fix https://github.com/scipy/scipy/issues/6972 first.

Rebased; hopefully nothing breaks.

Merging, thanks Josh!


[fix](create tablet) fix disk usage may change during chose disks

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Chef Server's all-or-nothing IPv6 configuration is problematic

Currently, to support IPv6, we've provided users with a single configuration option:
ip_version
This configuration option has an impact on a variety of different internal service configuration options.  As a result, it is very difficult to support a mixed environment. Such mixed environments might be especially more common for users that are using external PostgreSQL or external Elasticsearch.
We should investigate how much of this ip-version-specific configuration we can simply remove.  Ideally, I would like the following behavior:

The user does not specify any particular IP version configuration by default. If an IPv6 address is used as an IP address in their chef-server.rb, then the correct configuration is generated automatically.  If the user specifies hostnames, then we prefer the IPv4 address returned for that name if it exists.

We provide a new set of configuration items items that would allow you to express the following ideas:

prefer_ipv4: Prefer IPv4 to IPv6, but use IPv6 if that is all that is available (the default)

prefer_ipv6: Prefer IPv6 to IPv4, but use IPv4 addresses if that is all that is available.

only_ipv6: Only allow IPv6 (perhaps with an exclusion for <IP_ADDRESS>)

only_ipv4: Only allow IPv4

We should research how other tools handle this configuration to provide a set of options that feel ergonomic to our users.

One pain point in the whole IPv6 saga is the difference between things resolvable as IPv6 and those reachable as IPv6. Not everything that advertises IPv6 DNS can be reached via IPv6, many servers list both but only are accessible by one. The ibrowse library isn't sophisticated in handling this; it makes a choice based on resolvability, which may fail later as a timeout because it wasn't reachable. My hack on the chef ibrowse fork got us past a short term issue, but didn't help the situation.
Waiting for one to time out and then trying the other seems unviable. From my modern browsers seem to have a bunch of heuristics, including trying both and taking the first to respond, or various nudges to try to get to IPv6 if possible. So the prefer_* strategies might require a little work; possibly including having something outside of ibrowse arbitrating which to chose, and probably caching the choice.
I'm pretty sure that only_ipv6 will require an exception for <IP_ADDRESS>; I hit some snags getting things on ::1. In any event, if we are hardcoding an IP we we've embedded an opinion and  probably should respect it.

My hack on the chef ibrowse fork got us past a short term issue, but didn't help the situation.

Yeah, I was looking at this today and it is definitely one of the trickier cases.

So the prefer_* strategies might require a little work; possibly including having something outside of ibrowse arbitrating which to chose, and probably caching the choice.

Yup I'm envisioning that if we want to go as far as the end-goal I outlined here we'd have to do a lot of the heavy lifting ourselves.
I think a stop along the path to it though is at the very least breaking out some of the configurable so that we could do thinks like have external PG using one IP version but communication with a backend using another.
Another thing I need to write up is that there appear to be some eldap bugs around IPv6 as well (IPv6 support was intended from what I can see in the code, but them some input validation was added that makes it impossible to use).


show-midi: 1.0.0 -> 1.0.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/gbevin/ShowMIDI/releases.
meta.description for show-midi is: Multi-platform GUI application to effortlessly visualize MIDI activity
meta.homepage for show-midi is: https://github.com/gbevin/ShowMIDI
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.0.1 with grep in /nix/store/kx8k31s0k07p4sc93g9i339hr5hx5jw2-show-midi-1.0.1
found 1.0.1 in filename of file in /nix/store/kx8k31s0k07p4sc93g9i339hr5hx5jw2-show-midi-1.0.1

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

show-midi

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/kx8k31s0k07p4sc93g9i339hr5hx5jw2-show-midi-1.0.1 \
  --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 show-midi https://github.com/r-ryantm/nixpkgs/archive/fda4340878b877d1cfcca303e0f5f084afc7ce63.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fda4340878b877d1cfcca303e0f5f084afc7ce63#show-midi

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/kx8k31s0k07p4sc93g9i339hr5hx5jw2-show-midi-1.0.1
ls -la /nix/store/kx8k31s0k07p4sc93g9i339hr5hx5jw2-show-midi-1.0.1/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 built:

show-midi

Maintainer pings
cc @minijackson for testing.

@NixOS/nixpkgs-merge-bot merge


TTML to SRT error: AttributeError: 'NoneType' object has no attribute 'iter_regions'

This error appears when trying to convert a TTML subtitle to SRT:
# tt convert -i subtitle.ttml -o subtitle.srt
Input file is subtitle.ttml
Output file is subtitle.srt
A tt element is not the root element
Traceback (most recent call last):
  File "Python\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "Python\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "Python\Scripts\tt.exe\__main__.py", line 7, in <module>
  File "Python\lib\site-packages\ttconv\tt.py", line 423, in main
    args.func(args)
  File "Python\lib\site-packages\ttconv\tt.py", line 374, in convert
    srt_document = srt_writer.from_model(model, writer_config, progress_callback_write)
  File "Python\lib\site-packages\ttconv\srt\writer.py", line 199, in from_model
    ISD.generate_isd_sequence(doc, _isd_progress, is_multithreaded=isd_config.multi_thread if isd_config is not None else True)
  File "Python\lib\site-packages\ttconv\isd.py", line 321, in generate_isd_sequence
    sig_times = ISD.significant_times(doc)
  File "Python\lib\site-packages\ttconv\isd.py", line 237, in significant_times
    doc_regions = list(doc.iter_regions())
AttributeError: 'NoneType' object has no attribute 'iter_regions'

Subtitle:
subtitle.zip

@fonic You use namespaces from an early pre-version of TTML. This version is also often referred to as DFXP. Before TTML became a W3C recommendation, namespaces changed.  You must use the correct namespaces, which are documented, for example, in IMSC 1.2 (https://www.w3.org/TR/ttml-imsc1.2/#namespaces).

So it's basically a legacy version of TTML. Could you add support for that? That would be great since there seem to be a lot of TTMLs in this format.

So it's basically a legacy version of TTML. Could you add support for that? That would be great since there seem to be a lot of TTMLs in this format (this one is from 2019).

Couple of questions to help understand if/how that deprecated flavor can be supported:

does the document conform to any particular delivery specification?
what tool was used to generate it?
is the document intended for a specific user/platform?

It was downloaded from here using yt-dlp with option --write-subs.
I can't answer the other questions as I did not create the subtitles. What I can say is that TTMLs of newer videos from the same source are in a different format (and work with ttconv out of the box), so it would seem they switched the format as some point.

Regarding @palemieux's first question:
The spec version that the document conforms to could be this one:
https://www.w3.org/TR/2009/CR-ttaf1-dfxp-20090924/
You can try to validate your file by using the schema provided here:
https://www.w3.org/TR/2009/CR-ttaf1-dfxp-20090924/#dfxp-schema-xsd

For testing, I replaced the namespace with http://www.w3.org/ns/ttml and conversion with ttconv now almost works, except for a duplication of all entries due to overlapping timestamps.

except for a duplication of all entries due to overlapping timestamps.

This is by design since it looks like the caption file is intended to mimic CEA 608 roll-up.
@andreastai Does WebVTT support regions for that style of captions?

What I can say is that TTMLs of newer videos from the same source are in a different format (and work with ttconv out of the box), so it would seem they switched the format as some point.

@nigelmegitt does BBC offer a tool to convert legacy DFXP documents?

For testing, I replaced the namespace with http://www.w3.org/ns/ttml and conversion with ttconv now almost works,

A few more tweaks are needed -- see subtitle.zip.

A few more tweaks are needed -- see subtitle.zip.

Thanks, that converts much better.

except for a duplication of all entries due to overlapping timestamps.

This is by design since it looks like the caption file is intended to mimic CEA 608 roll-up.

Just out of curiosity: what does that mean / why exactly are the entries overlapping?
Could an option be added to ttconv to correct this? From the look of it, the fix would simply be to use the previous entry's end timestamp as the start timestamp of the next entry when overlapping is detected.

Just out of curiosity: what does that mean / why exactly are the entries overlapping?

I looked closer at the document:

This programme contains scenes which
some viewers may find upsetting,

and some strong language
from the start.

It looks like the overlap (40ms) is exactly one frame at 25 fps, so here's what I think happened: the document was generated from a source file that contained in and out points and the converter incorrectly assumed that both in and out points were inclusive, whereas the out point is exclusive in TTML.
ttconv had a somewhat similar bug at some point: https://github.com/sandflow/ttconv/issues/258
Just a guess of course. Impossible to tell without looking at the source and the converter.

What I can say is that TTMLs of newer videos from the same source are in a different format (and work with ttconv out of the box), so it would seem they switched the format as some point.

@nigelmegitt does BBC offer a tool to convert legacy DFXP documents?

No, our pragmatic workaround while we have to support older documents is to make adjustments in the player to make a best effort at processing them. For example, in the BBC fork of imscJS we added namespace "fixing" code in https://github.com/bbc/imscJS/commit/cf3d3e53da25aeca47c1c4463a06f37a214cc0de as well as some other fixes for example making a more useful default region: I think I'm right in saying that the default region definition came into the TTML specification at a later stage than the pre-Recommendation DFXP era, so such adjustments are beyond what's in any specification, and should probably remain that way.

@nigelmegitt Thanks for info!

@andreastai Does WebVTT support regions for that style of captions?

WebVTT regions have a feature for that kind of feature (see § 1.4. Other caption and subtitling features, example 8). However, I am not sure to what extent this is implemented.

@fonic I changed the title of the issue to make it easier to find for folks that run into the same kind of documents.

Filtering out those duplicates would of course still be desirable.

It would be easier to simply drop all events that are less than 1/2 second long.

Filtering out those duplicates would of course still be desirable.

It would be easier to simply drop all events that are less than 1/2 second long.

But then you'll probably have someone open an issue due to a file that has longer overlaps - there will always be other malformed files out there. If you go that route, you should make this configurable, e.g. -d 0.5 to drop entries up to 0.5s in duration.

Any significant overlap is probably to convey roll-up. See the "roll-up" demo below (which uses IMSC):
https://www.sandflow.com/public/caption-styles-demo/index.html

Any significant overlap is probably to convey roll-up. See the "roll-up" demo below (which uses IMSC):
https://www.sandflow.com/public/caption-styles-demo/index.html

Ok, got you. So that's what 'roll-up' means.
As I got multiple of these legacy ttml subtitles to deal with, I created a Bash script to batch-process them for ttconv. Eliminating  duplicates by adjusting the timestamps works fine, there are no noticeable issues during playback.


first commit

To test in RDPC mode, you can run:
nextflow run main.nf -profile docker,debug_qa,test_rdpc_qa --api_token **** --outdir results

To test the local mode, you can run:
nextflow run main.nf -profile test,docker

To test in RDPC mode with given data, you can run:
nextflow run main.nf -profile docker,debug_qa --api_token **** --study_id **** --analysis_id ****

Ran:
nextflow run main.nf -profile docker,debug_qa --api_token **** --study_id TEST-QA --analysis_id 25021fb0-efb7-4751-821f-b0efb7b75105

25021fb0-efb7-4751-821f-b0efb7b75105 (TEST-QA) might be a better test analysis-id as it includes BAM and FASTQ.
Will have to alter prep_sample to account for generated tmp files for to pass for cleanup


Keyboard shortcuts stop working when caps lock is down.

Steps to reproduce

Creat a project on any of the latest channels
Add a TextField()
or try the code sample below

code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: TextField(),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

Actual Results
Be able to enter only capital text and delete the text with backspace/delete
Expected Results
Not able to delete text with backspace/delete when text is in caps in the end
Note:

If you enter lower caps text right after all caps text, you will be able to delete text backspace/delete
If you enter only lower caps, there is no issue
It reproduces all channels (check multiple doctor -v below) on the macOS Desktop app

When there is only capital text

Backspace/delete only working where there non-captial text at the end

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.3, on macOS 11.2.3 20D91 darwin-x64, locale
    en-GB)
    • Flutter version 2.0.3 at /Users/tahatesser/Code/flutter_stable
    • Framework revision 4d7946a68d (12 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

[✓] Flutter (Channel beta, 2.1.0-12.2.pre, on macOS 11.2.3 20D91 darwin-x64,
    locale en-GB)
    • Flutter version 2.1.0-12.2.pre at /Users/tahatesser/Code/flutter_beta
    • Framework revision 5bedb7b1d5 (13 days ago), 2021-03-17 17:06:30 -0700
    • Engine revision 711ab3fda0
    • Dart version 2.13.0 (build 2.13.0-116.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

[✓] Flutter (Channel dev, 2.1.0-12.1.pre, on macOS 11.2.3 20D91 darwin-x64,
    locale en-GB)
    • Flutter version 2.1.0-12.1.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision 8264cb3e8a (3 weeks ago), 2021-03-10 12:37:57 -0800
    • Engine revision 711ab3fda0
    • Dart version 2.13.0 (build 2.13.0-116.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

[✓] Flutter (Channel master, 2.1.0-13.0.pre.323, on macOS 11.2.3 20D91
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.323 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision 2cdd51900c (6 hours ago), 2021-03-30 10:16:05 +0200
    • Engine revision dbcbf69a57
    • Dart version 2.13.0 (build 2.13.0-175.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

This issue has a pattern involving onscreen keyboard with which it can be replicated, as below:

When TextField is focussed and we use physical keyboard to enter lower case and upper case letters, the letters are deleted, as expected:

https://user-images.githubusercontent.com/67046386/113124573-45627580-9233-11eb-874f-02570d9f8be9.mov

If we open onscreen keyboard that has a default input source (ex: ABC or ABC extended) and type in lower case letters, then those letters are deleted as expected, but as soon as we turn ON caps lock and type in a letter, then those are not getting deleted. Moreover, if we turn OFF caps lock and now enter lower case letters, now these are also not getting deleted:

https://user-images.githubusercontent.com/67046386/113124851-983c2d00-9233-11eb-8bb9-e0d5958dedca.mov

Now if we switch to physical keyboard and try to enter any lower case or upper case letter, none is deleted:

https://user-images.githubusercontent.com/67046386/113125324-1bf61980-9234-11eb-83bc-7579ae1c15c9.mov
Looking at step 2 above, if we are coming back from onscreen keyboard to physical keyboard, then regular letters in small caps or upper case letters are not getting deleted, so this issue isn't limited to not deleting last upper case letter, but if the last letter is small caps, the same issue persists.

flutter doctor -v
[✓] Flutter (Channel master, 2.1.0-13.0.pre.346, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.346 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 8158b478d7 (2 hours ago), 2021-03-31 13:29:03 +0800
    • Engine revision dbcbf69a57
    • Dart version 2.13.0 (build 2.13.0-175.0.dev)

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 89.0.4389.114

! Doctor found issues in 1 category.

Originally issue reproduced without using the on-screen keyboard  https://github.com/flutter/flutter/issues/79374#issue-844653134
Here is a demonstration of the issue without ever opening on-screen keyboard  [1 min complete preview]
https://user-images.githubusercontent.com/48603081/113127443-6de17400-9221-11eb-8c47-3f60d76a7e9d.mov

This is a known issue caused by not tracking the caps lock state separately from the caps lock key press state. This should be fixed by https://github.com/flutter/flutter/issues/44918

Hi all, I originally raised another ticket when I encountered this problem on the mac, but subsequently discovered that this one had already been raised. In my case it was specifically that backspace, delete and cursor arrows just mysteriously stop working when caps-lock is on.
I see that #44918 has been earmarked as the ticket that will fix it, however that ticket has been open for almost 2 years now with no visibility as to when it will be released (which is totally fine... it is a large ticket with a lot of implications so I get that it takes time).
However, the question is what to do about this problem right now. Where we are at the moment is that the app can easily get into a state where important keystrokes are just ignored and there's no clue to the user about why that is happening. I mean, I'm a developer and it took me ages to track down a repeatable case... what hope do my users have of figuring out why the app has suddenly stopped responding?
Is there any chance of a tactical fix or a suggested workaround while we're waiting for 44918 (and/or a bump in the priority)? I get that caps-lock isn't massively used on mobile, but on desktop/web, it is very common. This feels, to me, like a pretty bad bug and to be honest, I'm reluctant to ship a mac app where my app becomes non-responsive just because the user has their caps-lock key on.

Actually, there's definitely another underlying problem with the cursor/backspace keys. I've lost count of the number of times I've just suddenly lost the ability to backspace even without caps lock on (it also affects the cursor arrow keys, delete, and the tab key). Normal text entry continues to work fine.
I'm yet to find a reliable way to reproduce, but it happens approx 10 times a day for me (note that this is on macOS... not sure if it happens on mobile too).
Not that I expect anyone from the Flutter team to be able to do anything without a repeatable test case, but I just thought I'd mention it here as a datapoint.

Assigning to @dkwingsmt to ensure this is on his radar.

Tested just now on Win32 and wasn't able to reproduce in the following situations:

physical keyboard only
on-screen keyboard, using caps-lock and control key combinations on on-screen keyboard
physical keyboard with on-screen keyboard up

I'm going to label this as macOS-specific for the moment since it seems like all reports above have been for macOS. I have not yet tested on macOS.

This issue should have been fixed by https://github.com/flutter/flutter/pull/80756 (merged on Apr 26, 2021).
@edwardaux I'm sorry to hear about the random hiccups. We have improved a lot since your comment. Let us know if you're experiencing any issues lately.


Link / Source not working

Hi there!
I am following this tutorial, and this link is broken.
It is on the item 2.1 on WIKIDATA

Thanks, it's now corrected!


Add hacathons

Summary of your changes
Description
Added a comprehensive list of popular hackathons and coding competitions, including major events like HackMIT, NASA Space Apps Challenge, Google CodeJam, and others. This addition provides users with various options to explore, participate in, and learn about different hackathon events and competitions.
Fixes #1964
Checklist

[x] My change follows the Contributing Guidelines
[ ] I have added only one new link to the list.
[x ] I have checked that the link that I added does NOT exist in the project already.
[x ] I have sorted the link alphabetically under the related section.

please consider this for hactober2024


NIST Curve P-256 is considered unsafe?

I love Tink - and commend you for the awesome work you all have done to make crypto easy for us.
That said, I am reading that NIST curves, in general, and P256 in particular are considered unsafe (see https://safecurves.cr.yp.to/).
Bernstein et al give their blessing to curve 25519 but that is not available for Java - which is our primary platform and for which only P256 is available.
Are there plans to add other non-NIST curves to Java?   Thanks!

Thanks for the report.
Contrary to belief made popular by DJB, there's no practical attack against P-256. Nobody has even came up with a theoretical weakness uniquely applied to this curve. I agree that the way it was generated is somewhat shady, but so far we don't have real evidence to support any claim of malice.

Are there plans to add other non-NIST curves to Java? Thanks!

We have a plan to add X25519 for ECIES. Tink Java also supports Ed25519's signature scheme.


NPM shows no license

Looks like the license is not carried over to NPM: https://www.npmjs.com/package/next-cloudinary
Maybe a packaging issue?

thanks for flagging htis @villesau should be addressed in the upcoming release


Manual vs Automatic instrumentation

Will this method provide less functionality than using the profiler? this seems too good to be true.
Does this mean that by adding Amazon.XRay.Recorder.AutoInstrumentation.Initialize.AddXRay(); I am manually instrumenting my application, or does that mean that I also need to go through the application adding segments/subsegments, and using the AWSXRayRecorder* nuget packages.

Manual Instrumentation
Asp.Net Core
Instead of using profiler, you may choose to manually instrument AWS X-Ray SDK into your Asp.Net Core application.
Import AWSXRayRecorder.AutoInstrumentation package into your project.
Add the following method into any method in startup.cs or program.cs file
Amazon.XRay.Recorder.AutoInstrumentation.Initialize.AddXRay();

@lupengamzn - Sorry for the annoying issues. I'm not getting a clear picture of what's required in order to use this. If I can simply add that one line of code (I have cloned/referenced the project) and not use the clrprofiler.dll then that is amazing. But if by doing so, there are more steps then I just need to know which way to go.

Hey @chazt3n ,
Sure, no problem and all issues are welcome!
Will this method provide less functionality than using the profiler?

It provides exactly the same functionality as using profiler.
Does this mean that by adding Amazon.XRay.Recorder.AutoInstrumentation.Initialize.AddXRay(); I am manually instrumenting my application

Yes, this is the only thing you need to do to your application if you choose not to use profiler.

@lupengamzn manual instrumentation is working super well, the only caveat is that background services registered with
AddHostedService<TBackgroundService> are not being traced.
We use background services for guaranteed delivery/exactly once processing of SQS/SNS messages (try not to judge!) and are looking at XRay to trace events across the system.
The background service is guaranteed to be added after the XRay auto instrumentation, but no traces are being generated. Is there a special step for background / hosted services within the web api?
My code basically boils down to this:
  protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {

            while (!stoppingToken.IsCancellationRequested )
            {
                using (var scope = _scopeFactory.CreateScope())
                {
                    var messagesToPublish= await GetMessagesToPublish();
                    foreach (var message in messagesToPublish)
                    {
                            var response = await _snsClient.PublishAsync(request, cancellationToken);
                    }
                }
            }
        }

@chazt3n Seems like the background services are executed outside Asp.Net Core's request-response life-cycle, thus will not be captured in X-Ray Agent's use case. In this case, you will need to find out the entry/end point of the background services and call AWSXRayRecorder.Instance.BeginSegment()/AWSXRayRecorder.Instance.EndSegment() (These two APIs are already included in auto instrumentation's library) to manually begin/end segment and the business logic of the background services will be showing up in X-Ray console as a separate graph from the main service.

Based on your code, you may try:
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {

            AWSXRayRecorder.Instance.BeginSegment("Background Services");

            while (!stoppingToken.IsCancellationRequested )
            {
                using (var scope = _scopeFactory.CreateScope())
                {
                    var messagesToPublish= await GetMessagesToPublish();
                    foreach (var message in messagesToPublish)
                    {
                            var response = await _snsClient.PublishAsync(request, cancellationToken);
                    }
                }
            }

            AWSXRayRecorder.Instance.EndSegment();

        }

@lupengamzn you are my hero, I really appreciate the guidance - went from total noob to total noob with distributed tracing very fast.

@lupengamzn  - if AWSXRayRecorder.Instance.EndSegment(); is never called, will tracing data ever be sent to the daemon?
Wondering if I need to be creating/ending these in a loop?

Hey @chazt3n ,
Thanks for the feedback!
Basically all of the http, AWS or Sql request called within the background services will generate subsegments and there should already be one parent segment to "wrap" them up otherwise it will throw Entity doesn't exist in AsyncLocal exception.
Also, segment has to be ended before it can be further sent to daemon, and the above snippet is just an example of how to trace the background services. You may adjust the location of AWSXRayRecorder.Instance.BeginSegment()/AWSXRayRecorder.Instance.EndSegment() to better fit the business logic of your application.

Ok so the last thing I'm trying to figure out is how best to get the traceId out of the SQS consumer (background service)
I can create a parent segment for the entire process which should never end, then within that I can create subsegments, but I need them to have the incoming message's TraceId. So I'm wondering if I should call BeginSegment(name, traceId, parentId) (for a this would theoretically create two segments?)
tricky!

@chazt3n , are you trying to connect SNS with SQS in the service graph? If so, you may try getting the trace header from AWSTraceHeader as a message system attribute from the SQS message. Here is an example(Java) of how you can get it. Once you have it, you can further extract trace id and parent id from it and then pass to BeginSegment(name, traceId, parentId) to create the parent segment in your background service.

OK great that's exactly what I'm doing -
message publisher:
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            // Your business logic within background service
            while (!stoppingToken.IsCancellationRequested )
            {
                using (var scope = _scopeFactory.CreateScope())
                {
                    var messagesToPublish= await GetMessagesToPublish();
                    AWSXRayRecorder.Instance.BeginSegment("Background Services");
                    foreach (var message in messagesToPublish)
                    {
                            var response = await _snsClient.PublishAsync(request, cancellationToken);
                    }
                    AWSXRayRecorder.Instance.EndSegment();
                }
            }
        }

message consumer:
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            // Your business logic within background service
            while (!stoppingToken.IsCancellationRequested )
            {
                using (var scope = _scopeFactory.CreateScope())
                {
                    var messages = await PollSqsForMessages();

                    foreach (var message in messagesToPublish)
                    {
                            AWSXRayRecorder.Instance.BeginSegment("event-consumer", message.GetTraceId()); //pseudocode
                            var response = await _snsClient.PublishAsync(request, cancellationToken);
                            AWSXRayRecorder.Instance.EndSegment();
                    }
                }
            }
        }

one question I have is: Are segments required to be unique and should I append a Guid or something?
Thank you again for all your support!

@chazt3n , sure, no problem! Segment created by AWS X-Ray SDK library should all be unique and you don't need to do anything about it.


feat: upgrade to neutron-sdk v0.7.0

upgrade all other dependencies
delete unused dependencies
use workspace dependencies where possible, so updating them in future will be easier
set release profile at workspace level
delete unused metadata script
fix schema filename warnings
delete gitignored artifacts

Test run: https://github.com/neutron-org/neutron-tests/actions/runs/6559389599

Successful test run: https://github.com/neutron-org/neutron-tests/actions/runs/6564522226


Investigate building the site as a static html page to improve page loads

If you really want to speed up the initial page load, I think a better solution would be SSG on build, so we serve html instead of waiting for javascript to render. Might require a bit of work to handle network calls for search though.

Originally posted by @ChaseC99 in https://github.com/icssc/AntAlmanac/issues/406#issuecomment-1183844868
If anyone looks into how we would go about doing static site generation as an HTML file instead of js bundle, post your research findings here.

This setup for manually running webpack might be useful: https://github.com/icssc/AntAlmanac/tree/manual-webpack
Also see this comment: https://github.com/icssc/AntAlmanac/pull/406#issuecomment-1186294798

Not super important, more work than it's worth, closing.


fix redirects

fixes #402
Also changes some backend-tests to comply with the new routes

Codecov Report

Merging #406 (f5fc8de) into develop (155cc5e) will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop        #406   +/-   ##
=============================================
  Coverage   91.05467%   91.05467%
=============================================
  Files             79          79
  Lines           1811        1811
=============================================
  Hits            1649        1649
  Misses           162         162


removed airmail

Like vox, this is a beta of an app that has a stable version on the MAS. As such, it should be in caskroom versions.
Not merging yet, to allow for possible discussion.

there seems to be several instances of casks where there's a HEAD.  Does this not qualify to be in the cask system for any reason? Frankly, I want to have this beta installed, and I'm sure others do too. It's much easier to use casks for this, and it's definitely inline with the spirit of casks where it should be easy to download the apps.


default values for user/locale

The last section describes defaults for different user types (e.g. anonymous, Guest) and says "Default", but doesn't describe how these defaults can be changed.  The term Default suggests they can be changed, but no documentation exists on this.

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

ID: 2465e854-e3b1-6bd0-c834-c696121e857a
Version Independent ID: 6b225ed2-0cd3-b3c3-0e3a-d7ce98031e16
Content: Use NDI in Microsoft Teams - Microsoft Teams
Content Source: Teams/use-NDI-in-meetings.md
Service: msteams
GitHub Login: @cichur
Microsoft Alias: v-cichur

I removed the mention of defaults for user types. The article is now live. Thank you for your help.

Thanks.  So I am guessing you are confirming they can't be changed?  Too bad.  This becomes another half baked feature, then, if you can't use it with external participants.


Evaluate Cquery

https://github.com/jacobdufault/cquery/#cquery
Easier to compile than doing the full clang checkout + build to get clangd
Maybe have some nice solutions for extra compiler flags etc?

Found a homebrew formula here which installed at first try: https://github.com/twlz0ne/homebrew-cquery

Wow, this worked really well!
I believe the --language-server option has been default for a few days now, but  your config example was a perfect guide to solving the only snag:
The initializationOptions must specify a cacheDirectory or the server will exit at initialisation.
I tried these options together with log_stderr set to true in LSP's settings.
    "cquery": {
      "command": ["cquery", "--log-all-to-stderr"],
      "scopes": ["source.c", "source.c++", "source.objc", "source.objc++"],
      "syntaxes": ["Packages/C++/C.sublime-syntax", "Packages/C++/C++.sublime-syntax", "Packages/Objective-C/Objective-C.sublime-syntax", "Packages/Objective-C/Objective-C++.sublime-syntax"],
      "languageId": "objc++",
      "initializationOptions":
      {
          "cacheDirectory": "/tmp/cquery",
      }
    },

@papadokolos, regarding the issue above I can help you set up a package that implements the extra LSP extensions (like $cquery/progress).
An example of how to plug in extra functionality exist for the Rust language server here: https://github.com/tomv564/LSP-rust

Closing as cquery appears to be working with LSP with the above configuration.


✨ InfoCard

Category

Feature

Overview

Element implementable anywhere to add a little info bubble with a simple string input.
Supports Links.
Element is accessible project wide using "import { InfoCard } from "src/component/InfoCard/InfoCard"
Element is Light/Dark mode compliant and limited to 400px wide

Wide implementation on the widget options
Activate using info: true when adding an option.
Will automatically use translation through descriptor.settings."Widget-Option".info.

Fully implemented into the Bookmark widget title option as an exemple.

Screenshot

Background color of the tooltip is no longer based on user selection. It is however light/dark mode compliant.

Tooltip had all the text in one line so I added the multiline property and max width of 300px.

Also tooltip code used to stand on one line but there where too many attributes so I separated them on multiple lines.
(In the same spirit of that fix)

Added a commonOptions to the widget settings since all of them used the new info tooltip instead of initializing it on each tooltip.

Tooltip replaced by HoverCard with RichTextEditor.
Supports links.
Made element usable anywhere in the project.

Link for more information can be inserted into the infocard using this parameter.
Will show like this "See more..." (Which is it's own translatable element)


Set config default defaults

I believe python-click has some nice functionality for this.
Currently we only have the cmd_all.loglevel config variable. (Also consider if you want to change this name within the scope of this ticket, or if you want to in another ticket, or do this at all.)

Would be nice if this ticket also solves this by design: https://github.com/melvio/hopla/issues/67
But that is not strictly required by this ticket.

Marked low-priority because it is not a big issue right now. This can change in the future