HDDS-8920. Ozone is supporting unicode volume and bucket names, potentially unintentionally

What changes were proposed in this pull request?
Ozone was unintentionally supporting Unicode non-ascii alphabetic characters (like Æ, ｚ, etc.) for volume and bucket names as Character.lowercase method is unicode aware. The check is now done using regex to avoid this behaviour.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8920
How was this patch tested?
Added a unit test in TestHddsClientUtils. Also tested manually in docker set-up:
bash-4.2$ LC_ALL="en_US.UTF-8" ozone sh volume create "ãñð"
INVALID_VOLUME_NAME Bucket or Volume name has an unsupported character : ã
bash-4.2$ LC_ALL="POSIX" ozone sh volume create Áaa
INVALID_VOLUME_NAME Bucket or Volume name has an unsupported character : ?

This change looks correct to me, but I worry slightly about needing to use a (simple) regex on every character of a key. Its going to churn a lot of small objects on a hot path (key creation) as each match needs to create a new matcher object.
The valid characters are only a-z, 0 - 9, . and -, so we have 38 characters.
Could we have a method that checks the ascii range of the character, eg:
int code = (int) character;
if (code >= 47 && code <= 57) { // 0 - 9
  return true;
} else if (code >= 97 && code <= 122) {  // a-z
  return true;
} else if (code == 45) { // "-"
  return true;
} else if (code == 46) { // "."
  return true;
} else {
  return false;
}

I honestly don't know if this method is better than the regex method performance wise. The regex solution is certainly nicer code, but it would be interesting to try a test using the micro-benchmark framework (JMH) to see how big the performance difference is for strings of a reasonable length (eg 100 - 500 characters or so).

I worry slightly about needing to use a (simple) regex on every character of a key

I guess it's only needed to be able to show the offending character.  How about this:

check the whole string against the regex
only if it fails to match, find (all) offending characters

This might reduce processing time for the happy path.

I decided to have a go at benchmarking this with JMH, using some code like in this PR, using a single Regex against the entire string and with the series of IF statements. The code looks like:
package com.sodonnell.microbench;

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.Warmup;

import java.util.regex.Pattern;

import static java.util.concurrent.TimeUnit.MILLISECONDS;

public class Strings {

  private final static Pattern pattern = Pattern.compile("[a-z0-9.-]");
  private final static Pattern patternAll = Pattern.compile("^[a-z0-9.-]+$");

  private static String str = "hellothisisastringthatiwilltestoutforkeysetc123456789hellothisisastringthatiwilltestoutforkeysetc123456789";

  public static void main(String[] args) throws Exception {
    String[] opts = new String[2];
    opts[0] = "-prof";
    opts[1] = "gc";

    org.openjdk.jmh.Main.main(opts);
  }

  @Benchmark
  @Warmup(iterations = 1)
  @Fork(value = 1, warmups = 1)
  @Measurement(iterations = 3, time = 5000, timeUnit = MILLISECONDS)
  @BenchmarkMode(Mode.Throughput)
  public boolean regexp() {
    for (int i = 0; i < str.length(); i++) {
      if (!pattern.matcher(Character.toString(str.charAt(i))).matches()) {
        return false;
      }
    }
    return true;
  }

  @Benchmark
  @Warmup(iterations = 1)
  @Fork(value = 1, warmups = 1)
  @Measurement(iterations = 3, time = 5000, timeUnit = MILLISECONDS)
  @BenchmarkMode(Mode.Throughput)
  public boolean regexpFull() {
    return patternAll.matcher(str).matches();
  }

  @Benchmark
  @Warmup(iterations = 1)
  @Fork(value = 1, warmups = 1)
  @Measurement(iterations = 3, time = 5000, timeUnit = MILLISECONDS)
  @BenchmarkMode(Mode.Throughput)
  public boolean table() {
    for (int i = 0; i < str.length(); i++) {
      if (!isValid(str.charAt(i))) {
        return false;
      }
    }
    return true;
  }

  private boolean isValid(int code) {
    if (code >= 47 && code <= 57) { // 0 - 9
      return true;
    } else if (code >= 97 && code <= 122) {  // a-z
      return true;
    } else if (code == 45) { // "-"
      return true;
    } else if (code == 46) { // "."
      return true;
    } else {
      return false;
    }
  }

}

The results look like:
Benchmark                                             Mode  Cnt         Score        Error   Units
Strings.regexp                                       thrpt    3    418466.343 ± 257782.725   ops/s
Strings.regexp:·gc.alloc.rate                        thrpt    3      6755.787 ±   4084.420  MB/sec
Strings.regexp:·gc.alloc.rate.norm                   thrpt    3     18656.000 ±      0.001    B/op
Strings.regexp:·gc.churn.G1_Eden_Space               thrpt    3      6754.113 ±   2631.464  MB/sec
Strings.regexp:·gc.churn.G1_Eden_Space.norm          thrpt    3     18656.407 ±   4263.512    B/op
Strings.regexp:·gc.count                             thrpt    3       150.000               counts
Strings.regexp:·gc.time                              thrpt    3       124.000                   ms

Strings.regexpFull                                   thrpt    3   3012970.853 ± 504540.390   ops/s
Strings.regexpFull:·gc.alloc.rate                    thrpt    3       521.652 ±     85.555  MB/sec
Strings.regexpFull:·gc.alloc.rate.norm               thrpt    3       200.000 ±      0.001    B/op
Strings.regexpFull:·gc.churn.G1_Eden_Space           thrpt    3       530.936 ±    555.269  MB/sec
Strings.regexpFull:·gc.churn.G1_Eden_Space.norm      thrpt    3       203.500 ±    180.451    B/op
Strings.regexpFull:·gc.count                         thrpt    3        29.000               counts
Strings.regexpFull:·gc.time                          thrpt    3        44.000                   ms

Strings.table                                        thrpt    3  18801601.921 ± 852611.165   ops/s
Strings.table:·gc.alloc.rate                         thrpt    3        ≈ 10⁻⁴               MB/sec
Strings.table:·gc.alloc.rate.norm                    thrpt    3        ≈ 10⁻⁵                 B/op
Strings.table:·gc.count                              thrpt    3           ≈ 0               counts

Process finished with exit code 0

Notice the "if statements" (Strings.table here) is about 18.8M ops per second vs 3M ops per seconds for a single regex and down to about 400k per second for the technique in this PR.
Also notable is the GC churn created by the two regex approaches, with virtually no GC from the IF statements, which should help the throughput of the JVM.

@sodonnel Thank you so much for benchmarking this! Following the results, I have changed the approach to make the checks with if-else statements using the ascii values.
@smengcl could you please verify if the changes are good to go now?

Thanks @Tejaskriya for the patch. Thanks @sodonnel and @adoroszlai for the reviews and suggestions.
Glad that we have a clean and performant solution here :)


Concealed characters cause cursor to give wide jumps

What steps will reproduce the problem?
1. set virtualedit=all
2. set conceallevel=2
3. set concealcursor=vin
4. syn region placeHolder
     \matchgroup=placeHolderMark start=+\$`+
     \matchgroup=placeHolderMark end=+`+ concealends
5. Paste: $`1`$`2`$`3`$`4`$`5`
6. When the cursor moves past the text, it'll give a wide jump.
7. This is annoying for completion plugins that make use of conceal feature
   when entering text.

What is the expected output? What do you see instead?

I expect concealed text doesn't make the cursor jump randomly.

What version of the product are you using? On what operating system?

Latest Vim built from sources under Ubuntu.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 12 Mar 2014 at 5:09

I think this is a duplicate of #260
closing therefore.


How are keys being selected for batching/export creation?

@gurayAlsac after the last bug fix we were able to succefully create a batch of files from uploaded keys, thanks.
We reset the entire DB to run another test round and were able to submit keys to "exposure" service but they they keep getting skipped for batching with no errors.
We have set the export config window to 2 months for testing purposes, index files gets created but no new batches even after deleting all old entries from DB.
Note : we tried invoking the exposure-batch creation jobs manually to test (no errors but no output)
A few hours later the job runs and files are created.
We noticed that the query for selecting the keys always shows t-3 hours from the current time (current time = the created_time) of the keys.
Can you please explain what we might be missing or is this something that needs to be checked in the batching query?

Hi @sherifkozman
This is an intentional embargo to ensure that keys are not released until they are held for 2 hours after their batch window closes.
See the MIN_WINDOW_AGE var on the export service.
So with the default value and the export period you have, any gaps from the last created export batch until now - 2h will have a batch created for it. https://github.com/google/exposure-notifications-server/blob/71f5ac30922182cb5ed98610753ddff6343c42cb/internal/export/batcher.go#L102
If you want to release keys even faster (for testing purposes only), there are other flags you can tweak to get this down to around a 5-10 minute turnaround.
I'll leave this open - let me know if this answers your question or if I can help with anything else.
/assign

@mikehelmick That explains it all thank you.
One more question related to keys and the requirement to sign them.
Documentation states :
"If the signing key is invalid, or if the key is not shared with Google and Apple, the Exposure Notification API will not invoke matching on the export."
If keys are not signed or signed with a key that is not shared during development and testing will this affect client's behaviour during testing ?
i.e : is it mandatory to share public keys with google even during development ?

During development you can take advantage of the debug mode to disable signature verification. Settings > Google > Covid-19 Exposure Notifications > Debug Mode > Enable diagnosis key file signature check

@gurayAlsac i assume you are referring to android settings here?

Right

FYI, Debug Mode documentation is now available at https://developers.google.com/android/exposure-notifications/partners/debug-mode

@gurayAlsac The link is a 404

Ah sorry. The link is currently available to certain allowlisted partners, but will be public in a week or so.

@gurayAlsac any updates about the above link being public ?

@sherifkozman reach out to your Google EN contact person. Also, be sure to be logged in with the allowlisted email address when you visit the link above.

@gurayAlsac any updates about the above link being public ?

It should be public now at https://developers.google.com/android/exposure-notifications/debug-mode
Feel free to create a new issue if its not accessible.


Added some advice to easily install lsp's

Might be useful for users.

This seems like an unnecessary layer of indirection to me, as you're using neovim, to call lua, to call shell commands. You could either use lua to directly call that file, or (better yet) call the shell commands directly as we recommend in the documentation. This idea is good though, and I think belongs in it's own plugin.

This seems like an unnecessary layer of indirection to me, as you're using neovim, to call lua, to call shell commands. You could either use lua to directly call that file, or (better yet) call the shell commands directly as we recommend in the documentation. This idea is good though, and I think belongs in it's own plugin.


Update create_constraints_by_type to include Snapshots

Previous (below) selectattr filter for resource_type excluded snapshots, which have a resource_type of snapshot.
| selectattr("resource_type", "equalto", "model")
After updating to an if instead the macro correctly picks up the snapshot resources.
if node.resource_type in ( ( "model, snapshot") )
Logs after change - these checks didn't occur before this change.
describe table analytics.dbt_lbondkennedy.check_cols
23:19:05  Opening a new connection, currently in state init
23:19:05  SQL status: SUCCESS 13 in 0.67 seconds
23:19:05  Lookup: SHOW UNIQUE KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:05  Using snowflake connection "master"
23:19:05  On master: /* {"app": "dbt", "dbt_version": "1.0.8", "profile_name": "user", "target_name": "default", "connection_name": "master"} */

   SHOW UNIQUE KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:05  SQL status: SUCCESS 0 in 0.12 seconds
23:19:05  Lookup: SHOW PRIMARY KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:05  Using snowflake connection "master"
23:19:05  On master: /* {"app": "dbt", "dbt_version": "1.0.8", "profile_name": "user", "target_name": "default", "connection_name": "master"} */

   SHOW PRIMARY KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:06  SQL status: SUCCESS 1 in 0.14 seconds
23:19:06  Found PK key: analytics.dbt_lbondkennedy.check_cols ['customer_key']
23:19:06  Skipping CHECK_COLS_CUSTOMER_KEY_PK because PK/UK already exists: analytics.dbt_lbondkennedy.check_cols ['customer_key']
23:19:06  Using snowflake connection "master"
23:19:06  On master: /* {"app": "dbt", "dbt_version": "1.0.8", "profile_name": "user", "target_name": "default", "connection_name": "master"} */

   describe table analytics.dbt_lbondkennedy.check_cols
23:19:06  SQL status: SUCCESS 13 in 0.13 seconds
23:19:06  Lookup: SHOW UNIQUE KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:06  Using snowflake connection "master"
23:19:06  On master: /* {"app": "dbt", "dbt_version": "1.0.8", "profile_name": "user", "target_name": "default", "connection_name": "master"} */

   SHOW UNIQUE KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:06  SQL status: SUCCESS 0 in 0.12 seconds
23:19:06  Lookup: SHOW PRIMARY KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols
23:19:06  Using snowflake connection "master"
23:19:06  On master: /* {"app": "dbt", "dbt_version": "1.0.8", "profile_name": "user", "target_name": "default", "connection_name": "master"} */

   SHOW PRIMARY KEYS IN TABLE analytics.dbt_lbondkennedy.check_cols

Thanks for the quick review and merge!

I believe this will need a new (e.g. 0.4.3 release) to pop up on package hub.


Does oidc-client-js support authorization code flow?

Not an issue, just a question.
thanks

No, as that flow is not suitable for browsers

In this case, the browser is electron desktop app which I think is Chromium.

So then you'd not use this library and instead this one:  https://github.com/openid/AppAuth-JS. You'd be using hybrid flow with PKCE.

ok, thx @brockallen


Removed ## Latest news from # What's new?

Docs Build status updates of commit 555b4b4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/TOC.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


PLAT-35655: Add ui/Slider and adopt in moonstone

Resolution

Adds ui/Slider component as a ground-up rewrite using ui/Touchable for drag support
Major refactor of moonstone/Slider, moonstone/IncrementSlider, and moonstone/VideoPlayer's MediaSlider to adopt the new base component
Rewrite moonstone/Slider and moonstone/IncrementSlider tests to validate the moonstone-specific behaviors

Enact-DCO-1.0-Signed-off-by: Ryan Duffy<EMAIL_ADDRESS>

Thanks for the great, detailed feedback. I've made a round of changes and addressed a couple of your comments below. The rest are forthcoming!

moonstone/Slider positioned to values between steps resulting in decimal point values while dragging. This doesn't seem to happen in IncrementSlider. This is possibly due to no default value assigned for step in Slider. Any specific reason to not have default step value?

I did that intentionally but I think that stepped changes are a better default.

moonstone/IncrementalSlider does not retain focus while dragging if mouse is poistioned away from the knob.

Not seeing the same behavior locally :/

moonstone/VideoPlayer's MediaSlider knob color is wrong: the knob color should be white.

Not seeing this locally either

Let's add a test for handle.adaptEvent.

Done!

moonstone/VideoPlayer's MediaSlider does not position correctly: It's positioned a bit lower than before. It needs to have a space between Media controls and the slider.

This appears the same to me between develop and this branch. I did a screen shot test as well as comparing dev tools positioning but please share some details if you're still seeing this.

moonstone/VideoPlayer tooltip with thumbnailSrc does not change sides when it passes middle point. Play time tooltip works okay.

Fixed!

moonstone/VideoPlayer throws error when spotlight changes from slider to media controls via 5-way

Fixed!

Should we create tests for ui/Slider components?

Perhaps but I'm not sure what would be a meaningful test. There would definitely be opportunity for UI tests to validate the drag behaviors. I'll think on this a bit more.

The duplicate event issue was due to the HOC refactoring. Glad you caught it! I had used ui/Slider instead of SliderBase so there were dual drag handlers in effect. After fixing that I discovered there was no good way to reuse ui/Slider.SliderDecorator because I needed to inject the moonstone slider hoc, SliderBehaviorDecorator between Changeable and PositionDecorator. Rather than duplicate a the HOCs from ui, I elected to use ui/Slider directly and add an extra Changeable on top of it all. It's not ideal but it's the simplest solution. We can revisit later if we want to tweak for performance.

LGTM

Good catch on IncrementSlider. I had a crufty HOC in place there causing multiple drag handlers to be in play and removing it did the trick. Also addressed your other feedback.


[HOLD for payment 2023-04-27] LHN edited message UI shows the whole multiline message for a few seconds

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Send Any multiline code block message to chat
Observe the LHN list of the chat
Now edit the same multiline code block message
Observe the LHN

Expected Result:
LHN should show only the first line of the message
Actual Result:
It shows the whole message for a few seconds in LH
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.1
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/232788678-3c35963a-41ad-4c68-a5c9-04aaafe16f8d.mp4
Expensify/Expensify Issue URL:
Issue reported by: @kerupuksambel
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1681820355045809
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b50c1ba8e6e2cc4f
Upwork Job ID:<PHONE_NUMBER>008215552
Last Price Increase: 2023-04-27

Triggered auto assignment to @sakluger (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Triggered auto assignment to @iwiznia (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Seems a regression from this PR

Hi, sorry but it seems that this issue is pretty similar with what found here, that was reported first in the Slack conversation. https://expensify.slack.com/archives/C049HHMV9SM/p1681809609978589

Should I close this then? It is already being handled in https://github.com/Expensify/App/issues/17212

Hi, sorry but it seems that this issue is pretty similar with what found here, that was reported first in the Slack conversation. expensify.slack.com/archives/C049HHMV9SM/p1681809609978589

Yes it seems we need to change the "Issue reported by" for this issue @kavimuru, though I'm not sure about the exact procedure and if there's something else to to change too.
@iwiznia I'd say let's wait until the original issue and the fix are QA'ed on staging and then we can close.

Thanks for handling this, I have update the issue body to mention @kerupuksambel as reported as they reported it first.
Confirmed that this is fixed in staging @sakluger could you please handle the $250 report bonus to @kerupuksambel for this and then we can close this

This is ready to pay  the reporting bonus of $250

I'm having a hell of a time creating a job manually in Upwork, it keeps returning errors. I'm going to apply the internal label to get the job created, then I'll fix everything from there.

Job added to Upwork: https://www.upwork.com/jobs/~01b50c1ba8e6e2cc4f

Triggered auto assignment to Contributor Plus for review of internal employee PR - @mollfpr (Internal)

@mollfpr, you can disregard, this issue is just for paying a reporting bonus and so I've unassigned you.

@kerupuksambel I've sent you an offer through upwork.

All paid 👍


Replace DynamoInserter logic in sierra_items_to_dynamo

What is this PR trying to achieve?
The DynamoInserter was removed in a previous change but is required to properly ingest item changes. This PR replaces the DynamoInserter and updates tests to ensure it cannot be removed by accident in the future.
Who is this change for?
🌾 🍑
Have the following been considered/are they needed?

[ ] Deployed new versions
[ ] Run terraform apply.

Resolves #1860.


Search results file abbreviations can be confusing when searching other folders

Mainly the search results don't make a necessary distinction between multi-root mode, and multi-folder searching. They need to show a results node for each folder searched, not for each root folder present.
Examples:

Single-root mode. Search with include=/foo/bar. The results show in a flat list.

Multi-root mode. Search with include=/foo/bar. The results show in a node called "bar". These two cases shouldn't be different.

Single-root mode. Search with include=./foo,./bar. The results show in a flat list, and the file path abbreviations are rooted from ./foo and ./bar, and all the results are combined in a flat list, so you can't tell them apart.

Same in multi-root mode. It gives a node for each folder which is correct.

Changing this so that the number of root result nodes is based solely on the number of folders searched.
One oddity is that the "other files" node still gets mixed into the flat list, when a single folder is searched. That's because I don't want to flip to showing two root nodes when a result in an open file is found - I want it to stay consistent throughout the search.


Remove CompileView attribute from derived Maven variants

Due to some weirdness with the kotlin multiplatform plugins, there is ambiguity between compileElements and
one of the multiplatform-created variants. The only way to avoid this ambiguity is to disable the
CompileView attribute schema compatibility rule.
This rule is required to allow us to select the derived maven api variant which declared the java-internal
compile view, while we are requesting the java-api compile view. To allow us to continue selecting this variant,
without the compatibility rule, we need to remove the attribute from the derived variant.
Fixes https://github.com/gradle/gradle/issues/22952

@bot-gradle test qfl

@bot-gradle test qfl

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.

Your PR is queued. See the queue page for details.

Pre-tested commit build failed.

OK, I've already triggered a build for you.


fix: onFinish promise is never rejected issue

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://refine.dev/docs/guides-concepts/contributing/#commit-convention

What is the current behavior?
The code has a bug where it fails to  reject a promise if there's an error during a mutation process. This prevents the promise from completing its intended behavior when something goes wrong.
To fix this, we need to ensure that errors during mutation properly trigger the rejection of the promise.
What is the new behavior?
We can By adding the 'reject(error)' inside the 'onError' callbacks, the promise will be rejected with the appropriate error, ensuring that the onFinish promise finishes correctly in case of errors.

fixes # (5667)

Please read our contribution guide, and do not remove checkboxes in the PR description. https://refine.dev/docs/guides-concepts/contributing/
Feel free to re-open your PR once you complete PR requirements.


Fixed error in anchor closing tag

@bartvermeersch : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; verified. The PR is ready to merge. Thanks @bartvermeersch.
Publishing in this repository is suspended until Tuesday, May 25. Merging will resume Tuesday, and we'll merge this approved pull request at that time. Thanks.


updated readme

made a few typo corrections and changed the community folder section

Looks good! only ask i have to change is the point values so that all four levels are used
user: 4-6
contributor: 7-8
Advocate: 9-10


Changing DAG.tasks from a list to a dict

This helps with the regression observed in master where DAG load times have increased significantly

Coverage increased (+0.03%) to 68.027% when pulling 72b027ccfb32bbb415b3a723fd6a89c3040d9204 on task-dict into 96891596f9c392a9a477e5e564ea08a84095386b on master.

Thanks @jlowin for doing most of this!
https://github.com/airbnb/airflow/pull/1368


KONFLUX-2032: Remove Environment API CRs

GitOps Service/Environment APIs are deprecated and can be removed.
Feature:
https://issues.redhat.com/browse/KONFLUX-2032

/hold
we need to wait with it a bit. making sure that other services don't relay on them anymore.


Attribution and Capping for OPRF approach

This PR correctly implements the new OPRF approach to attribution and per-user contribution capping.
Aggregation is left for another day.
This uses a bitwise saturating sum approach to perform the contribution capping, where the caller specifies how many bits to use.
All the logic is reflected in this Google sheet which implements the same oblivious algorithm: https://docs.google.com/spreadsheets/d/1-6cvFe7GbhdzuiaTuiZ9ojq36rA4AVMjBvTqvvpJaHw/edit?usp=sharing
While multiple users can be run in parallel (using a try_join_all for now), each user's circuit is rather deep, with each row of data depending on the preceding row. This can lead to very deep circuits for users with many rows of data.

I have not yet incorporated all of the excellent feedback here, but now that I finally eliminated all of the infra hangs, and I was able to extend my test case to support a FAR more complex scenario I thought I would update it.
Expect additional updates to incorporate all of the excellent feedback here.


several improvements to lib/os/cbprintf_nano.c

Make lib/os/cbprintf_nano.c closer to standard printf behavior while
keeping it small.
Cherry-picked PR #32460 from @pabigot otherwise unit tests won't mean anything.

I removed negative(). I initially left it there as this was the scheme the
original code used for some reason. A straight comparison against 0 might even
save one insn on some architectures.
Case ranges are supported by gcc (obviously) and llvm at least. If this turns
out to be a problem then reverting to the full enumeration should be trivial.

On Tue, 23 Feb 2021, Torsten Tejlmand Rasmussen wrote:

I simply prefer the latter as it's is guaranteed to work in all cases.

Fair enough. The case range is gone.


Consider using the same atomic ops as boost::shared_ptr` does.

https://github.com/boostorg/json/blob/5098730a87148228f65b2dcb40ecec7f15019c09/include/boost/json/storage_ptr.hpp#L108
boost::json::storage_ptr uses sequentially consistent atomic ops for the reference count. This is needlessly expensive on most non-x86 platforms, in particular arm and the like. boost::shared_ptr apparently implements more efficient reference counting (usually relaxed inc + acquire release dec). Considering that there's one storage_ptr per value, that's potentially quite a large number of incs and decs for a large json document. I would suggest that storage_ptr reference count operations match those of boost::shared_ptr.

If you want to submit a pull request, I'm more than happy to merge it. Or I can do it. To be honest though, I don't know much about atomic operations except how to write std::atomic<...> and use it in the simplest fashion.

we might want storage() to return storage_ptr const& again

we might want storage() to return storage_ptr const& again

That definitely saves some ref count ops.

If you want to submit a pull request, I'm more than happy to merge it. Or I can do it. To be honest though, I don't know much about atomic operations except how to write std::atomic<...> and use it in the simplest fashion.

I can look into it.

Getting atomic ops right beyond using sequential consistency is hard. Strongly suggest a review by more than one person if this route is taken (which it should be in order to make pool-based operations more competitive).

well, I think just copying  boost::shared_ptr is a no-lose proposition

@maximilianriemensberger  Looking at the design of storage_ptr, it would seem that boost::instrusive_ptr would be a better model.
https://www.boost.org/doc/libs/1_74_0/libs/smart_ptr/doc/html/smart_ptr.html#intrusive_ptr
https://github.com/boostorg/smart_ptr/blob/develop/include/boost/smart_ptr/detail/atomic_count.hpp
@pdimov - your view?

storage_ptr is already modeled after intrusive_ptr. It manages an object whose reference counts are in the object itself. Or did you mean something else?

I meant that the atomic modification of intrusive_ptr reference counts already has careful treatment in the smart_ptr library.
It's different for each compiler/platform because of differences in intrisics and differences in the natural atomic strength of operations on different processors.
e.g. Arm is a lot more fussy than x86 (which is basically bomb proof)

I totally agree that there should be many eyes looking any atomic ops things. #446 is what I think is sufficient. It is what libc++ uses for its shared_ptr implementation (just uglyfied and with intrinsics). I have yet to check the other std libs.
boost::smart_ptr does acq_rel incfrement and decrement instead of relaxed increment and acq_rel decrement. That made me scratch my head. But may @pdimov can shed some light onto this issue.
Anyway I think you should definitely only merge changes to the refcount here after careful review and consideration. Stealing from widely used and reviewed refcount implemenetations (stdlib/boost/...) seems like a good idea nevertheless.

I concur. The increment can be merely atomic because there is no dependency on the value after the increment.
On the other hand the decrement can result in the destruction of the object so it must be acquire (to get the previous value) and release (to communicate the new value to other threads).

boost::smart_ptr does acq_rel incfrement and decrement instead of relaxed increment and acq_rel decrement.

Does it? Where?

boost::smart_ptr does acq_rel incfrement and decrement instead of relaxed increment and acq_rel decrement.

Does it? Where?

I think I incorrectly tracked the implementation down to the atomic_count headers, which use acq_rel inc and acq_rel dec. Instead I should have looked at sp_counted_base_std_atomic instead. Sorry for the confusion.

IIRC the atomic_count headers conservatively use acq_rel because you could, technically, use a negative count and swap the meanings of increment and decrement in your code.

This is done, thanks!


Russian localization doesn't work on macOS 10.13

Itsycal doesn't localize properly when the preferred language in System Preferences > Language & Region is set to Russian on macOS 10.13. It works properly on macOS 10.12.

Upon further inspection, this bug affects any language for which an explicit localization is not provided. Currently Itsycal localizes its UI strings in English, French, German, Italian, Simplified Chinese, and Spanish.
Prior to 10.13, the macOS Foundation API (NSDateFormatter) would localize dates and times according to the user's locale as set in System Preferences. Whether or not the rest of the app was localized in that language didn't matter. Users in Russia or Japan, for instance, would get the calendar localized in their language even though Itsycal doesn't localize the rest of the app in Russian or Japanese.
In 10.13, macOS Foundation inexplicably no longer localizes dates and times unless it finds strings files for the current locale. As a temporary "fix" for this issue, I can provide empty strings files for Russian or Japanese to trick the system into thinking it is fully localized in that language. The real fix would be for macOS 10.13 to behave like all previous versions of macOS. I've filed a bug report with Apple.
For what it's worth, you can also see this behavior in the amazing Mac app Fantastical 2. This app isn't localized localized in Russian. On 10.12, it still draws its calendar in Russian. On 10.13, it doesn't.


namesfriend = friends[0]

First time I am trying to fbchat, and here i get error with
index out of bouce.
namesfriend = friends[0]

Perhaps you could try providing a bit more code? After all, you're not event showing any actual fbchat code ;)

I've updated the PyPI package, it should work now


[FEATURE] Support FasterViT

”FasterViT: Fast Vision Transformers with Hierarchical Attention“
https://github.com/NVlabs/FasterViT

The code is written based on timm and provides pretrained weights on ImageNet1k. But there are many layers customized in the code which are different from the implementation of timm. So I'm not sure if we need to make significant adjustments to these code.
It looks interesting, but it doesn't seem like the paper has been released.

yeah, noticed this one, it is timm oriented but as always, baked in square image size assumptions and put the downsample at the end of the blocks so needs a decent amount of attention to fix and remap :(
I really truly don't understand the obsession with putting downsample at the end of vit/hybrid blocks :(
Other thing is, I've never found gcvit (same authors) to be particularly easy to train or fine-tune (including reproducing the original results) compared to vit, swin, convnext (which I've successfully managed to reproduce and improve on originals). I wonder how this compares....  given the complexity of the model code, I found the throughput #s surprising as more code usually == more activations and slower speeds.

Hi， guys， is there any update on this issue?

Hi, I can take this one. I'll begin by moving the downsamples as mentioned here


Sync eng/common directory with azure-sdk-tools for PR 7951

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/7951  See eng/common workflow

/check-enforcer override


[GH-#203] Plain data transaction

closes #203

Yes.

@HristoHr @d-velev can you try to address this comment https://github.com/aeternity/elixir-research/pull/231#discussion_r169091824 now as the necessary changes have been merged?

Check all the requested changes @rdimitrovbg and me think are necessary to make the logic more generic and abstract. They are not outdated. This changes will make our lifes easier in the future of adding new custom Transactions and make the code more readable and understandable.

@rdimitrovbg @gspasov what is your roadmap to have this finished?

@gspasov @rdimitrovbg I'll close this for now and you can reopen once you are finished


ORGANIZER

organizer currently disabled. When enabled, the events are not editable!
can we use http://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#IS_ORGANIZER ?
Makes it sense to import/export organizer?

fixed with https://github.com/dschuermann/ical-import-export/pull/18


Dead stores should be removed

This pull request is focused on resolving occurrences of Sonar rule squid:S1854 - “ Dead stores should be removed ”. You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:S1854
Please let me know if you have any questions.
Ayman Abdelghany.

Closing. Cannot accept contributions without a signed ICLA. Please, check the CONTRIBUTING guide for more explanations and re-open this pull request, if you decide to sign it.


For review only - XD-3512: Initial GemFire binder

Description of GemFire binder is here:
https://docs.google.com/document/d/18gjwnh50CADCVyfnEh2h5cbgrIZm6n4UYQlaHGQW_QU/edit
This is not meant to be merged yet; creating a PR as a place for initial review.
Currently the nodes are hard coded to work with a locator at port 7777.
Some obvious TODOs:

Configuration
Partitioning
Topologies (client/server, PARTITION_REDUDANT, etc)

Some topics for reviewers:

Any methods of MessageChannelBinderSupport that should be overridden?
Suggestions for implementations of bindPubSubConsumer / bindPubSubProducer / bindRequestor / bindReplier

Review comments have been addressed and pushed; will continue working on this and will issue another PR when ready to merge.


Child logger from winston default logger

Please tell us about your environment:

winston version?

[ ] winston@2
[x] winston@3

node -v outputs: v12.13.0
Operating System?  MacOS
Language? ES5

What is the problem?
The following is not possible:
const mychildlog = winston.child({ label: 'somelabel' })

While the documentation gives the following 2 statements:

You can create child loggers from existing loggers to pass metadata overrides

See https://github.com/winstonjs/winston#creating-child-loggers
and

The default logger is accessible through the winston module directly. Any method that you could call on an instance of a logger is available on the default logger

See https://github.com/winstonjs/winston#using-the-default-logger
However, it is not possible to call child on winston. This is inconvenient.
My usecase is the following:
const getLogger = function(module) {
    const path = module.filename.split('/').slice(-2).join('/');

    return winston.child({
      label: path
    });
};

So that I can have the module filename in the logs.
The documentation says the following:
What do you expect to happen instead?
I expect the following to work:
const mychildlog = winston.child({ label: 'somelabel' })
mychildlog.info('hello')

I guess you are looking for a solution like this:
const logger = createLogger({
   defaultMeta: { mainLabel: 'default label' },
   level: 'info',
   format: combine(
      timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }),
      printf(({ message, timestamp, level, mainLabel, childLabel }) => {
         return `${timestamp} (${childLabel || mainLabel}) [${level}] -> ${message}`;
      })
   ),
   transports: [
      new transports.Console()
   ],
});

const childLogger = logger.child({ childLabel: 'child label' });

logger.info('the message');
childLogger.info('the child message');

Output
2021-12-17 17:46:07.781 (default label) [info] -> the message
2021-12-17 17:46:07.784 (child label) [info] -> the child message

This looks related to PR #1989, regarding the overwriting with the same variables.

@bobvanderlinden @wbt Per the issue author they wanted to be able to create a new child logger from the default logger instance that is exported. It appears that this was solved by #1603. As such I am closing this issue.
@DABH do you know if we've cut a release and published it to NPM, that has this feature in it? If you don't know off the top of your head, that's fine and I'll confirm later.

Yeah, we have done a release since then, so this must be included now


Support react v15

Huge thanks, please let me know if there's anything I can do for you.

Will do a version bump shortly.


Fix region exploring for Julich brain 2.4

I would say, just leave the PR, I can take a look at it. I think I can fix this issue.
More important is, if you can take a look at connectivity components, and see if there are any bugs

I would say, just leave the PR, I can take a look at it. I think I can fix this issue.
More important is, if you can take a look at connectivity components, and see if there are any bugs

I can look at both. I will fix this issue and I can already found a bug in the connectivity browser.

Now both versions of julich brain should work

Thanks.
I will add unit tests then merge


Uws native

Coverage decreased (-0.1%) to 96.811% when pulling 31239f69857d2a4a26eca40729cf46e67d2fe688 on uws-native into b24a0f6a9b3c142a74ce4c0603eaa5ae27ca68ba on master.

Coverage decreased (-0.1%) to 96.811% when pulling 31239f69857d2a4a26eca40729cf46e67d2fe688 on uws-native into b24a0f6a9b3c142a74ce4c0603eaa5ae27ca68ba on master.

Build file for mac is missing, package.sh is generating nothing on my machine as well.


SARAALERT-1205: Format dates in custom export consistently

Description
Jira Ticket: SARAALERT-1205
The timestamps for fields in exports are not consistently formatted. The PO team would like them to be consistent and the desired format is YYYY-MM-DD hh:mm:ss UTC.

[x] verify desired format with PO team
[x] update format of these dates and verify that all others are consistent as well

(Bugfix) How to Replicate
Perform a custom export, csv export, and comprehensive export and take a look at the timestamps.
(Bugfix) Solution
Remove the rfc2822 formatting for timestamps.
Testing
This fix was tested on the following browsers (submitter must check all those that apply):

[x] Chrome
[ ] Firefox
[ ] Safari
[ ] IE11

Please describe the tests needed to verify your changes. Provide instructions for reproducing these tests. List any relevant details for your test configuration.

Looks good to me. Only request is the following to the tests:
Please remove this check in the custom export tests here and instead add closed_at, updated_at, and created_at here.

done!

Looks good to me. Only request is the following to the tests:
Please remove this check in the custom export tests here and instead add closed_at, updated_at, and created_at here.

done!


Can I use other Microcontrollers other than which are specified by tensorflow?

Can other Microcontrollers can be used other than these mentioned below for tensorflow modules-
Arduino Nano 33 BLE Sense
SparkFun Edge
STM32F746 Discovery kit
Adafruit EdgeBadge
Adafruit TensorFlow Lite for Microcontrollers Kit
Adafruit Circuit Playground Bluefruit
Espressif ESP32-DevKitC
Espressif ESP-EYE
If yes can. Is there any documentation to follow?

@ms-ims
Can you please refer the link and see if it helps you.As per Tensorflow official documentation the TF modules supports the microcontrollers  as mentioned in the link. Thanks!

@ms-ims
Any update on this issue please. Thanks!

I looked the link but tensorflow library is very supportive to Arm microcontroller I suppose.
I trying to run hello world program of tensorflow on my RX series board of renesas. I'm finding it difficult to build on that.

Hi @ms-ims ! Have you checked these threads from Renseas? Link 1, 2 .Thanks!

Hi,
No I'm working on tensor flow now days.
On Tue, 4 Jan, 2022, 9:41 am mohantym, @.***> wrote:

Hi @ms-ims https://github.com/ms-ims ! Have you checked these threads
from Renseas? Link 1
https://www.renesas.com/us/en/document/apn/ra6t1-motor-failure-detection-example-tensorflow-lite-microcontroller-application-notes?language=en
, 2
https://www.renesas.com/eu/en/blogs/embedded-artificial-intelligence-inference-renesas-rzg2
.Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/38681#issuecomment-1004515806,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APBFADIQI6ICD2CLM5ENSW3UUJXQTANCNFSM4MLWWUSA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

@ms-ims ! Above threads suggested usage of Tensorflow Lite on Renesas RA6T1 Motor Starter Kit.  Is this issue good to close then?

 Above threads suggested usage of
Tensorflow Lite on Renesas RA6T1 Motor Starter Kit. Is this issue good to
close then?
—
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/38681#issuecomment-1004524013,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APBFADJCJSFAAAKAQX7H2BLUUJ2S5ANCNFSM4MLWWUSA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank you confirming the same! Closing this issue as it seems to be resolved from above comment.

I subscribed to this thinking that we might get a link to some instructions for a pair of general boards with ESP32 and ARM MCUs.
But the issue was closed because we got instructions for a particular board, the RA6T1 motor controller board. This doesn't really say how to make tensorflow work on anything other than their board. It doesn't even list the step they took to get tensorflow working on their board -- other than that they used yocto (and they didn't even explain why they did that either).
Should I open a new issue to learn more?


App Rating Suggestion..

Hi sir, can you add a feature to the app? it would be amazing if you add : Rate App option, or popup for rating at the app closing for example.
Let me know if it's possible.
Thank you,

on progress @vzmo777


NMEA data instead of brdc file

Can the NMEA data directly be passed from the GPS receiver to the program instead of brdc file

NMEA format doesn't contain satellite ephemeris data.

is there a way that i can extract the satellite ephemeris data using GPS receiver

can I get the ephemeris data using ublox instead of downloading it from the website?

You have to extract the ephemeris by yourself from UBX-RXM-SFRBX:
https://www.u-blox.com/en/technologies/gnss-raw-data

Okay thanks, I will convert the data from UBX-RXM-SFRBX to RINEX format and pass it to gpssim . will it work?

You can use RTKCONV from RTKLIB to generate RINEX navigation file from UBX-RXM-SFRBX.
https://github.com/tomojitakasu/RTKLIB

Is there a dll file of this program

okay, thank you for the information, and nice work on the code!

Should i keep on download the brdc file every time they upload on NASA website

You need the latest satellite ephemeris information. So technically, yes you will need to download the latest file unless and until you are using your own data.


core, schedule: use size as a factor of score

When calculate region/leader score, use size instead of count, in order to balance store size in final.
new shouldBalance logic:

introduce avgScore to make sure moving is not unnecessary. Cause in some case:
note that: avgScore is not equal to totalScore / count, since weight is not same for every store, move will cause the change of score for two involved store is not equal. So it should be totalSize / totalWeight.

sourceScore > targetScore > avgScore, if move, targetScore is still higher than avgScore, and then target store will be scheduled to move some region or leader to other stores with smaller score. But is is better to move some region or leader from source store to store with score lower than avgScore, so it is unnecessary
avgScore > sourceScore > targetScore, if move, sourceScore is still lower than avgScore, source store still need other stores to move region or leader to it for closing avgScore, so it is unnecessary.

avgScore is the score when stores in perfect balance state. Based on the weight, we can know the difference of size for current state to be in perfect balance state, and the minimum of them is the largest size of region to be moved. And the tolerantRatio provides a buffer to make the cluster stable, so that we don't need to schedule very frequently.

LGTM.

/run-all-tests


feat: Add logging level to python bindings

Changes

Added a new PyLevel enum to represent different logging levels (TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL). This allows users to specify the logging severity level when creating a new file logger.
Updated the Slogger.new_file_logger method to accept a level argument, enabling users to dynamically set the logging level from Python.
Registered the PyLevel class in the Python bindings, making it available for use within Python code.

Thanks!


Row max-height

Issue Type (delete the irrelevant ones)

[x] Enhancement Request
[x] Question

Specs
What version are you using?
v2.16.5
What browser?
-Google Chrome
Expected Behavior
What did you expect to happen?
i want to set the max height of a row, i tried to pass a class in row-style-class but it doesn't effect

hey @Franz0410, can you post your code of exactly what you tried and what you were trying to achieve? It'll help me investigate this better.

i resolve the issue

@Franz0410 bravo! great help


Build fails on macOS 15 with latest 1.32.1

It seems failed to build 1.32.1 with macOS 15: https://github.com/Homebrew/homebrew-core/pull/196023/files, any idea why?

it looks like the failure is trying to build curl's docs - which i dont think we want to do anyway
its not clear what changed if this was working previously
either way - i think we should ensure that it doesnt try to build the docs - relevant cmake lines are here https://github.com/curl/curl/blob/6b65422bccf61e837ab90fcb21eb0e48d527be99/CMakeLists.txt#L455-L466

FWIW, I was just able to build 1.32.1 locally on macOS 15.1.1. So it may be a toolchain issue. I'm not sure what homebrew CI uses for their toolchain.

FWIW, I was just able to build 1.32.1 locally on macOS 15.1.1. So it may be a toolchain issue. I'm not sure what homebrew CI uses for their toolchain.

How did you build it? Did you use brew install --build-from-srouce? I used Xcode toolchain and got the same error.

I just did bazel build //:envoy. I'm not familiar with how homebrew builds packages, or what environment it uses.


Add Yang, Yin, MIB and XQuery extensions

Hi,
I would like to add a few extensions:

Yang and Yin (XML representation of Yang) extensions, a modeling language for network equipment (https://tools.ietf.org/html/rfc7950#section-5.2)
MIB extension, the modeling language for SNMP (mainly) (https://en.wikipedia.org/wiki/Management_information_base)
XQuery extensions, an XML query language (http://docs.basex.org/wiki/XQuery_Extensions)

Iwan

This is part of v1.1.2 🎉

Thank you!


Pls, release new version (0.14.0)

@tgriesser Maybe it's time to release new version (previous version was releases 5 month ago)?

Not yet, there are couple of PRs still  in progress, for the next version.


[WIP] feat(pollux): update storage for static resources to be wrapped in an envelope

Description:
Summarize the changes you're submitting in a few sentences, including Jira ticket ATL-xxxx if applicable.
Link to any discussion, related issues and bug reports to give the context to help the reviewer understand the PR.
Alternatives Considered (optional):
Link to existing ADR (Architecture Decision Record), if any. If relevant, describe other approaches explored and the selected approach. Documenting why the methods were not selected will create a knowledge base for future reference, helping prevent others from revisiting less optimal ideas.
Checklist:

[ ] My PR follows the contribution guidelines of this project
[ ] My PR is free of third-party dependencies that don't comply with the Allowlist
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked the PR title to follow the conventional commit specification

@shotexa, good progress with schemas.
From the architectural point of view, the open-close principle would be better if all specifications for the schema CRUD operation were split into different endpoints, which would allow for better modularization.
What do I propose:

For a W3C specification, we use the W3C VerifiableCredentialSchema spec. I would use the path /cloud-agent/JSON/.....

for our VDR variation, I would use /cloud-agent/prism-vc-json-schema/... - pointing out that request/response is specific to our DID Linked resources specification

for AnonCreds we support two methods

HTTP AnonCreds Method could be /cloud-agent/anoncreds/schema/http/...
DID: Prism AnonCreds Method could be /cloud-agent/anoncreds/schema/prism/...

Having this segregation will make everything simple for usage and adoption. Business logic will be straightforward, and unit/e2e tests will be much simpler to write. The maintainability of this code will also be much better.
NOTE: The naming convention for the paths can be changed; the main idea is to segregate different specs for the different routes.
CC: @bvoiturier, @mineme0110

@yshyn-iohk Regarding the above comment, I think we are mixing different concepts here. From my point of view, the schema formats we support (JSON and AnonCreds) and their CRUD endpoints are orthogonal to the retrieval methods we want to support (direct http request to the schema or resolution through DID URL that contains a 'service' entry indicating the schema URL to fetch).
So, if deemed necessary, we could split schema CRUD operations into two sets of endpoints - one for JSON and one for AnonCreds - but I don't understand the reasoning behind having additional endpoints for a "VDR variation" or for "HTTP/PrismDID AnonCreds methods" 🤔

I'm suggesting to isolate the schema's APIs by type and by spec
w3c vc schema or the full name Verifiable Credentials JSON Schema - is a type
anoncreds schema is another type.
At the same time, there are a lot of specs for the CRUD operation: plain HTTP, did:prism, did:indy , etc
Having ALL type and all METHODS in under the same path will blow up sooner or later.

@bvoiturier, regarding but I don't understand the reasoning behind having additional endpoints for a "VDR variation" or for "HTTP/PrismDID AnonCreds methods
The current state of the ecosystem is highly deviated from a single standard.
Imagine that we need to support other VDR (Methods), for instance, cheqd or did:web.
We will get this requirement as soon as we start supporting the different DIDs, as it's a little bit odd to use DID did:web and not use did:web anon creds method.


Keyboard hides the message window

Submit feature requests to http://www.mattermost.org/feature-requests/. File non-security related bugs here in the following format:
Summary
Have anyone had the same experience? This problem only occurs on iOS devices. Reproduction methods are not clear, but often appear.  The keyboard hides the message window.
My friends using iPhone have a common experience. This problem also occurs in latest version. For solve it, restart Mattermost Mobile App or restart message.
Environment Information

Device Name: iPhone 11Pro, 11ProMax, 7, XR
OS Version: 13.3.1 (7 is 13.1)
Mattermost App Version: 1.28.0
Mattermost Server Version: 5.20.1

Steps to reproduce
I don't know.  :( Please check video files below.
Recorded Video #1
Recorded Video #2

@Gloriashield fix for this https://github.com/mattermost/mattermost-mobile/pull/3921

@enahum Thank you very much! If 1.29 will released, I will try it! Have a nice day!

I applied Patch(patches/react-native-keyboard-tracking-view+5.6.1.patch) to Mobile App version 1.29. Previous problem was confirmed to be solved. Thank you.
However, a new problem occurred.

Send a message.

I must pull up the screen.

Fortunately, it doesn't have to be restarted. Please watch attachment video file 🗡
Recorded Video #3
Best regards,
KIM

Hour third video is about the jira ticket I posted.
Note the following, before You receive the message, there is a user is typing... indicator above the text input area which animates up and down.
This animation behavior results in the post list changing its dimensions and conflicting with keeping the scroll position when new elements are added.
To confirm, please wait until the user is typing... disappears before sending the post.

@enahum , Thank you for your prompt reply.

My friend typed a message to me.
Wait for "user is typing ..." to disappear.
He pressed a Send Message button.
The screen was still frozen.
I tried several times but it was the same.

However, if I turned off "Enable User Typing Messages" function, no problem. (wow!) I think that this is very useful function to everyone. Please do not give up this function.
Have a nice day!
KIM


SAK-30433 insertSpinnerAfter was using override of an element that did not exist

Blocker issue because grades can no longer be released.
/CC: @bjones86 does this look okay?

Looks good, I should have removed this when I refactored it originally, thanks @ottenhoff.
Also, I think @ern's suggestion is correct; easier to read that way too.

Thanks for review. I just implemented the @ern suggestion and squashed/rebased

Great, thanks @ottenhoff!


Using pathlib

Using PATHLIB Module

Introducing Pathlib , Bug Some Func was not Re-Writed
parent d5008c1
commit bc3031e


Migrate to Atom Linter org

[x] Migrate Travis
[x] Update Travis links
[ ] Migrate AppVeyor
[ ] Update AppVeyor links
[x] Update repo links

AppVeyor is behind the times and only does individual accounts, if you want me to configure it to run on my account instead of yours I can do that, otherwise there isn't much of a reason to change it.

That's fine. I'll leave it on mine.

Once CI finishes this should be ready for publish. I'll merge then.


Release asset missing for 0.70.0

Hey there 👋,
https://github.com/microsoft/vscode-pull-request-github/releases/tag/v0.70.0 does not have a .vsix attached to it like all of the earlier releases. It could have been intended, but I figured I'd give it a shot (the release assets are really helpful 🙏)

@filiptronicek I appreciate the ping! Leaving out the .vsix was intended. We figure individual users can always download the .vsix from the VS Code extension marketplace if they want it.


Implement E-mail SAN annotation

Similar to Ingress integration in cert-manager:

Added cert-manager.io/email-sans annotation to configure spec.emailAddresses field for the Certificate to be generated.
Implement test case for all SANs

Duplicate of #29


Better "Messages maintainer:" string

Since the following string is special i suggest moving it to the top of the file as the first string so its easy to spot:
msgid "Messages maintainer: Bram Moolenaar<EMAIL_ADDRESS>
I suggest using something like this insted:
msgid "translator-credits"

And then add a comment telling the translator what should be written.
Other projects use:
#. TRANSLATORS: Replace this string with your names, one name per line.
msgid "translator-credits"
msgstr ""
"Name 1\n"
"Name 2\n"
"Name 3\n"

#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
msgid "translator-credits"
msgstr ""
"Name 1<EMAIL_ADDRESS>2017\n"
"Name 2<EMAIL_ADDRESS>2018\n"
"Name 3, 2018\n"

That way the comment is where the string is and dont need to be in the README files at https://github.com/vim/vim/tree/master/src/po
Then translate "Messages maintainer:" in another string.
String can be seen with ":messages" command.

i suggest moving it to the top of the file

*.po files are generated or updated by gettext tools.
Is it possible to emit such arbitrary msgid in arbitrary place?

I don't think there is a portable way to do this.
Moreover, this is clearly documented:
https://github.com/vim/vim/blob/a87b72cc316e065d66dcbcf7ec1cde330adef3a3/src/po/README.txt#L88-L91
So, closing.

Yes but it dont need to be documented in another file.
It would be smarter to add the comment where the string is (in the po file) so the translator can see it at the point of translation instead of have comments written in other files that the translator have to find.
Here are the strings from cs and ko translation:
msgid "Messages maintainer: Bram Moolenaar<EMAIL_ADDRESS>msgstr "Správce zpráv: Bram Moolenaar<EMAIL_ADDRESS>
msgid "Messages maintainer: Bram Moolenaar<EMAIL_ADDRESS>msgstr "메시지 관리자: Bram Moolenaar<EMAIL_ADDRESS>
I'm guessin Bram did not translate them.
If the po contained something like:
#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
msgid "translator-credits"

Then translators would not be able to make the mistake of keeping the name and email already there.

Hm, it looks like xgettext is able to do so.
With the following patch:
diff --git a/src/message.c b/src/message.c
index 4dac5ae04..bb2297813 100644
--- a/src/message.c
+++ b/src/message.c
@@ -982,7 +982,9 @@ ex_messages(exarg_T *eap)
     {
        s = mch_getenv((char_u *)"LANG");
        if (s != NULL && *s != NUL)
+           // Next Comment is extracted by xgettext and put in po file for translators
            msg_attr((char_u *)
+                   //  Translator: Please include your name and email address
                    _("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
                    HL_ATTR(HLF_T));
     }

after running make de in the po directory, the po file has this:
  #. Translator: Please include your name and email address
  #: message.c:988
  msgid "Messages maintainer: Bram Moolenaar<EMAIL_ADDRESS>  msgstr "Übersetzt von Christian Brabandt<EMAIL_ADDRESS>

Cool.
I would prefer more clear instructions for the translators so it becomes consistant and what about when having multiple names, should they be seperated by ", " or "\n" and will "\n work on Windows, etc.

How about using a comment based on the po/README.txt?
For example:
// This is a special message.
// You should include your name and E-mail address instead. (See src/po/README.txt)

I dont see the need to refer to README.txt "(See src/po/README.txt)" if we can just write the comment in the po file where it is needed and delete it from README.txt.


Refactor platform pipeline

Key objectives:

Ensure pipeline can be maintained & developed effectively
Docker, make, CI, coverage, developer documentation, pull requests, code review, logging, etc.
+modularity & -duplication e.g. ontology, validation
automated per-step QC

Ensure reproducibility - avoid API calls, use distributable files

Enable easy and transparent configuration of a new data type or data source or more evidence for a given data type or data source.

Easy addition of extra annotations
Easy addition of extra evidence

Easy manipulation of scoring  (e.g. config files, plugins)
-of evidence from a single data type / source
-of associations

Progress Tracking
Summary technical release notes will be issued as improvements are made based upon regular reviews with the Dev team.

Moving this epic to platform repository so that all related epics can be linked and tracked directly there across the team.


Resolve or remove TODO 3.0 in Configurations/unix-Makefile.tmpl

There is the following TODO:
      my $shared_def = join("", map { ' '.$target{shared_defflag}.$_ } @defs);
      # TODO(3.0): next line needs to become "less magic" (see PR #11950)
      $shared_def .= ' '.$target{shared_fipsflag} if (m/providers\/fips/ && defined $target{shared_fipsflag});

Came in with PR #11950.


MethodNotFound Exception from AsyncLock w/.NET 4.0/4.6

This is a doozie of a scenario I've gotten myself into. My coworker and I have spent all afternoon trying to figure out what might be causing this issue. But what it boils down to is the following exception from my unit test project that references a project that uses the AsyncEx library:
System.MissingMethodException
Method not found: 'Microsoft.Runtime.CompilerServices.TaskAwaiter`1<!0> Nito.AsyncEx.AwaitableDisposable`1.GetAwaiter()'.
   at Blah.Protocol.MessageWriter.<WriteMessage>d__8.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
   at Blah.Protocol.MessageWriter.WriteMessage(Message messageToWrite)
   at Blah.Tests.ProtocolTests.MessageWriterTests.<WriteMessage>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<<InvokeTestMethodAsync>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Xunit.Sdk.ExecutionTimer.<AggregateAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Xunit.Sdk.ExceptionAggregator.<RunAsync>d__9.MoveNext()

Here's the dependency tree for the projects
Blah.Tests (net46, .NET sdk proj)     <-- Notice net46
  | - Blah (net40, .NET sdk proj)      <-- Notice net40
  |    | - GitVersionTask/4.0.1-beta1-58
  |    | - Microsoft.Bcl.Async/1.0.168
  |    | - Microsoft.Bcl.Build/1.0.21
  |    | - Microsoft.Bcl/1.1.10
  |    | - Newtonsoft.Json/11.0.2
  |    | - Nito.AsyncEx/4.0.1
  | - Castle.Core/4.4.0
  | - Microsoft.Bcl.Async/1.0.168
  | - Microsoft.Bcl.Build/1.0.21
  | - Microsoft.Bcl/1.1.10
  | - Moq/4.12.0
  | - Newtonsoft.Json/11.0.2
  | - xunit.assert/2.1.0
  | - xunit.core/2.1.0
  | - xunit.extensibility.core/2.1.0
  | - xunit.extensibility.execution/2.1.0
  | - xunit/2.1.0

This was originally working when both Blah and Blah.Tests were using the old-school csproj format. Switching to the new .NET csproj format seems to have broken the behavior. However, I've gotten everything to work if I leave the Blah project as the old-school csproj format and migrate Blah.Tests to the new .NET csproj format.
This workaround or leaving both projects as old-school csproj format projects isn't ideal since maintaining the nuspec files is a lot more difficult than the built-in nuget packaging behavior of the .NET csproj format. Upgrading Blah to 4.6 is out of the question due to the need to integrate this package as far back as Win XP. Similarly changing the Blah.Tests project to be 4.0 is not ideal since xUnit isn't supported on 4.0, and because I worry we will assume that referencing Blah from a >=4.5 project is safe only to discover at a very inopportune runtime that it is not safe.
Thanks for your help! Let me know if you need any additional information!

I'm pretty sure the problem stems from Microsoft.Bcl.Async, which depends on Microsoft.Bcl.Build, which does some funky modifications to the csproj file that I don't understand. This kind of project file modification is probably done via ps scripts, which are not supported with PackageReference-style installs.
The best solution is to upgrade to Nito.AsyncEx v5, which no longer depends on those funky packages. Unfortunately, in v5 I had to drop support for net40, which is almost two decades old and which Microsoft stopped supporting over three years ago. Retargeting your project to net46 or newer is the best advice I can give.

Thanks for your feedback! Some thoughts:
You're definitely right that's it's somewhat of a losing battle to continue to support such an outdated platform when there's a much more up-to-date and functional solution staring me in the face. Unfortunately, without going into it too much, we are integrating into systems that may run on systems as old as XP. We can't realistically push our customers to update their systems, and since the systems we integrate may run of a wide range of versions, we can't isolate a certain subset of system integrations to be 4.0.
As for copying over the AsyncLock code, that might be a feasible solution. I'll give that a shot before I resign myself to maintaining the nuspec and old-school csproj files. I think I'd spend waaaay too much time tracking through targets files if I wanted to figure out what magic Bcl.Async was playing with the csproj files, so that option is probably off the table.
Thanks again for your feedback. I know you assigned this issue to yourself, but if you want to just close it as wontfix, that's fine by me -- though I'm not going to close it myself on the off chance you do plan to figure it out 😅

Closing as "won't fix". Sorry, and good luck!


ObjC: Check whether adding a new RPC to .proto file is non-breaking for client stub implementations (client-side)

Similar to Python and C# issues (#6264 and #6263)
For ObjC this might not be an issue, but it would be worth checking.

Understood the problem; it's not an issue in ObjC.


Atom Is Really Slow At Refocusing.

When refocusing atom it takes about 1 - 2 seconds to capture the cursor.
Video Examle
I have a really high spec system so that is not the problem (i7 4790k, 16gb RAM, GTX 1080, Generic Sandisk SSD)

Thanks for taking the time to contribute!
We noticed that this is a duplicate of #9544. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


problems about "guide" photo & img_size

Hi taki0112! Thanks for your work. And when implementing your project, there are two problems confusing me.
One is that what is "guide" photo working for? Does it complete a single photo style transfer work?
The other one is that how to produce a image with different width and height, I search for it in your source code and find the img_size has only one parameter like 256, and it is used in both G and D. And the samples produced in the training time are all 256*256 pixels. Will the output be with different width and height as the same as my test photo? Maybe I can try this by myself firstly, but I am still a bit of  confusing.
Thanks for solving my problems.

guide
guide is what you can do after training is over.

So input is image corresponding to content and image corresponding to style
Look at the end of the readme for the resulting image.

img_size
If the problem is height and weight of training data, I have fixed the code.

example)
python main.py --img_h 256 --img_w 512

Got that! Thanks again!


Allow version and commit to be configured with individually

Codecov Report

Merging #466 into master will increase coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #466      +/-   ##
==========================================
+ Coverage   67.51%   67.59%   +0.07%
==========================================
  Files          74       74
  Lines        3408     3419      +11
==========================================
+ Hits         2301     2311      +10
- Misses        836      837       +1
  Partials      271      271

Impacted Files
Coverage Δ

pkg/reconciler/build/build.go
74.38% <0.00%> (+1.65%)
: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 eaf78e9...a5df011. Read the comment docs.


Status of ORSeq datatype

Hi Carlos!
We are experimenting around the topic of real-time collaborative editors, and I remarked that I only saw existing solutions based upon operation-CRDTs. I came across your amazing articles about delta-state CRDTs (notably Efficient Synchronization of State-Based CRDTs), and I was wondering whether or not it could be a good candidate to implement a real-time collaborative editor. By looking more closely in the various articles, I don't have the impression that you define somewhere a delta-based sequence CRDT. However, in this repository the ORSeq CRDT seems to be the one I have been looking for.
Could you tell me if it's only a prototype or a "stable" implementation. Additionally, do you have some write up about how it works besides the code? Also, if you have already tried something in the same vein, I would be very glad to have your input on the subject 😄
Cheers!

Sorry, for the 2-year delay, better late than never.
I made some initial code towards an editable sequence, but it was incorrect and not easy to fix, so it was stopped.
I might come back to this in the future, but nowadays the state of the art is probably in projects like https://automerge.org
Regards,

Hi @CBaquero and thanks for the answer! Thanks for pointing out automerge even though it's not clear in their doc if they use operation-based or state-based CRDTs 😄
I hope that you'll find the time to have a second try at this because I really think that a state-based sequence could really ease the development of collaborative editors.
Cheers!

Hi i'm from the future, currently binging on CRDT academia.
I think Automerge is directly based on Klepmanns  "A Conflict-Free Replicated JSON Datatype".
The current (2024) state of the art is "Extending JSON CRDTs with Move Operations" by Kleppmann.
Bit sad to see @CBaquero not continue the research because that paper was exceptionally good, and lots of the ideas are missing in Kleppmanns series. Notably automerge keeps a full history with tombstones which seems to work fine for its intended use case but would be pretty bad in a generic database.
A more direct follow up would be "DSON: JSON CRDT Using Delta-Mutations For Document Stores" from Rinberg et all.  code is right here: https://github.com/crdt-ibm-research/json-delta-crdt .

Thanks a lot very nice to see that there have been a lot of progress on this topic! Will check this out!


[QUESTION] why longhorn restrict install in the specific namespace

Question
I have a  issue to deploy Longhorn  not in the namespace 'longhorn-system', why can only in the specific namespace ? is there a consideration we don‘t know?

There are some scripts/tools that are currently hard-coded to longhorn-system namespace. Moreover, while it is technically not restricted to longhorn-system namespace since users can install Helm release into another namespace, we haven't verify/test installing Longhorn in a different namespace yet. Therefore, we cannot recommend user installing Longhorn outside of the longhorn-system namespace.
Btw, why would you want to install Longhorn in a namespace different than longhorn-system?

There are some scripts/tools that are currently hard-coded to longhorn-system namespace. Moreover, while it is technically not restricted to longhorn-system namespace since users can install Helm release into another namespace, we haven't verify/test installing Longhorn in a different namespace yet. Therefore, we cannot recommend user installing Longhorn outside of the longhorn-system namespace.
Btw, why would you want to install Longhorn in a namespace different than longhorn-system?

We accidentally installed the longhorn in other namesapce, and wonder why in the longhorn-system


Make overview of missing functionality RIBASIM7 after TKI155

I think @SnippenE has a good overview of this somewhere.


Django unboxing error with PGC, segfault without PGC

Trying to run Django's test suite on its latest commit 91acfc3514280370535f1dd6bebee57760bac7b9 with Pyjion 1.0.0, with runtests.py patched to enable pyjion at the top.
First attempt:
$ ./runtests.py admin_changelist
Testing against Django installed in '/.../django/django'
Traceback (most recent call last):
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 544, in configure
    formatters[name] = self.configure_formatter(
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 656, in configure_formatter
    result = self.configure_custom(config)
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 469, in configure_custom
    c = config.pop('()')
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 334, in pop
    value = dict.pop(self, key, default)
pyjion.PyjionUnboxingError: Pyjion PGC expected bool, but 'django.utils.log.ServerFormatter' is a str. Try disabling PGC pyjion.config(pgc=False) to avoid hitting this error.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/.../django/tests/./runtests.py", line 661, in <module>
    failures = django_tests(
  File "/.../django/tests/./runtests.py", line 352, in django_tests
    test_labels, state = setup_run_tests(verbosity, start_at, start_after, test_labels)
  File "/.../django/tests/./runtests.py", line 282, in setup_run_tests
    test_modules, state = setup_collect_tests(start_at, start_after, test_labels=test_labels)
  File "/.../django/tests/./runtests.py", line 244, in setup_collect_tests
    django.setup()
  File "/.../django/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/.../django/django/utils/log.py", line 72, in configure_logging
    logging.config.dictConfig(DEFAULT_LOGGING)
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 810, in dictConfig
    dictConfigClass(config).configure()
  File "/.../3.10.0/lib/python3.10/logging/config.py", line 547, in configure
    raise ValueError('Unable to configure '
ValueError: Unable to configure formatter 'django.server'

After adding pyjion.config(pgc=False) as per the message:
$ USE_PYJION=1 ./runtests.py admin_changelist
Testing against Django installed in '/.../django/django'
Found 70 test(s).
Creating test database for alias 'default'...
Traceback (most recent call last):
  File "/.../django/tests/./runtests.py", line 662, in <module>
    failures = django_tests(
  File "/.../django/tests/./runtests.py", line 382, in django_tests
    failures = test_runner.run_tests(test_labels)
  File "/.../django/django/test/runner.py", line 927, in run_tests
    old_config = self.setup_databases(
  File "/.../django/django/test/runner.py", line 830, in setup_databases
    return _setup_databases(
  File "/.../django/django/test/utils.py", line 208, in setup_databases
    connection.creation.create_test_db(
  File "/.../django/django/db/backends/base/creation.py", line 74, in create_test_db
    call_command(
  File "/.../django/django/core/management/__init__.py", line 187, in call_command
    return command.execute(*args, **defaults)
  File "/.../django/django/core/management/base.py", line 407, in execute
    output = self.handle(*args, **options)
  File "/.../django/django/core/management/base.py", line 88, in wrapped
    res = handle_func(*args, **kwargs)
  File "/.../django/django/core/management/commands/migrate.py", line 277, in handle
    emit_post_migrate_signal(
  File "/.../django/django/core/management/sql.py", line 46, in emit_post_migrate_signal
    models.signals.post_migrate.send(
  File "/.../django/django/dispatch/dispatcher.py", line 170, in send
    return [
  File "/.../django/django/dispatch/dispatcher.py", line 171, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/.../django/django/contrib/auth/management/__init__.py", line 72, in create_permissions
    all_perms = set(Permission.objects.using(using).filter(
  File "/.../django/django/db/models/query.py", line 280, in __iter__
    self._fetch_all()
  File "/.../django/django/db/models/query.py", line 1358, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/.../django/django/db/models/query.py", line 140, in __iter__
    return compiler.results_iter(tuple_expected=True, chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/.../django/django/db/models/sql/compiler.py", line 1159, in results_iter
    results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
  File "/.../django/django/db/models/sql/compiler.py", line 1191, in execute_sql
    sql, params = self.as_sql()
  File "/.../django/django/db/models/sql/compiler.py", line 531, in as_sql
    extra_select, order_by, group_by = self.pre_sql_setup()
  File "/.../django/django/db/models/sql/compiler.py", line 60, in pre_sql_setup
    order_by = self.get_order_by()
  File "/.../django/django/db/models/sql/compiler.py", line 390, in get_order_by
    resolved = expr.resolve_expression(self.query, allow_joins=True, reuse=None)
  File "/.../django/django/db/models/expressions.py", line 248, in resolve_expression
    c.set_source_expressions([
  File "/.../django/django/db/models/expressions.py", line 182, in set_source_expressions
    assert not exprs
AssertionError
Fatal Python error: Segmentation fault

Current thread 0x0000000110e32e00 (most recent call first):
  Garbage-collecting
  <no Python frame>

Extension modules: pyjion._pyjion, pywatchman.bser, markupsafe._speedups, _scproxy (total: 4)
[1]    47147 segmentation fault  USE_PYJION=1 ./runtests.py admin_changelist

segfault sadface :(
Potentially an interesting broken function, it does nothing but assert:
def set_source_expressions(self, exprs):
    assert not exprs

The issue starts here somewhere, running debug mode I can see a negative reference count, which likely causes the segfault afterward.
Testing against Django installed in '/Users/anthonyshaw/projects/django/django'
Found 70 test(s).
Creating test database for alias 'default'...
/Users/anthonyshaw/CLionProjects/pyjion/src/pyjion/intrins.cpp:2048: _Py_NegativeRefcount: Assertion failed: object has negative ref count
Enable tracemalloc to get the memory block allocation traceback

object address  : 0x10afe5360
object refcount : -1
object type     : 0x107eb7440
object type name: list
object repr     : <refcnt -1 at 0x10afe5360>

Fatal Python error: _PyObject_AssertFailed: _PyObject_AssertFailed
Python runtime state: initialized

Current thread 0x0000000110e59600 (most recent call first):
  File "/Users/anthonyshaw/projects/django/django/db/migrations/state.py", line 762 in flatten_bases
  File "/Users/anthonyshaw/projects/django/django/db/migrations/state.py", line 772 in from_model
  File "/Users/anthonyshaw/projects/django/django/db/migrations/state.py", line 550 in __init__
  File "/Users/anthonyshaw/projects/django/django/db/migrations/state.py", line 505 in apps
  File "/Users/anthonyshaw/projects/django/django/utils/functional.py", line 48 in __get__
  File "/Users/anthonyshaw/projects/django/django/core/management/commands/migrate.py", line 211 in handle
  File "/Users/anthonyshaw/projects/django/django/core/management/base.py", line 88 in wrapped
  File "/Users/anthonyshaw/projects/django/django/core/management/base.py", line 407 in execute
  File "/Users/anthonyshaw/projects/django/django/core/management/__init__.py", line 187 in call_command
  File "/Users/anthonyshaw/projects/django/django/db/backends/base/creation.py", line 74 in create_test_db
  File "/Users/anthonyshaw/projects/django/django/test/utils.py", line 208 in setup_databases
  File "/Users/anthonyshaw/projects/django/django/test/runner.py", line 830 in setup_databases
  File "/Users/anthonyshaw/projects/django/django/test/runner.py", line 927 in run_tests
  File "/Users/anthonyshaw/projects/django/tests/runtests.py", line 377 in django_tests
  File "/Users/anthonyshaw/projects/django/tests/runtests.py", line 660 in <module>

Extension modules: markupsafe._speedups, _scproxy, pyjion._pyjion (total: 3)
Signal: SIGABRT (signal SIGABRT)
Signal: SIGABRT (signal SIGABRT)
Terminated due to signal 6

Process finished with exit code 6

I added debug=True to pyjion.config() and used -X dev, and I only see the same as my second traceback. Is there some other debug mode I should be activating? Or should I try with the latest main branch of pyjion?

Found it!! 🥳
A recursive function where the argument is a gc-collection, like a list, appears in the Django source code.
Doesn't look like I'd written a test for this before and it causes a bug which would start segfaults.
The list ends up being deallocated during the recursive call because something is decrefing the ref count too many times. Just need to figure out which opcode/behaviour!
def test_recursive_container():
    def f():
        def flatten(word):
            k = []
            for item in word:
                if isinstance(item, tuple):
                    k.extend(flatten(item))
                else:
                    k.append(item)
            return k
        return flatten(((1245, 4324), 31235, ((123454,), 31234)))

    assert f() == [1245, 4324, 31235, 123454, 31234]

👏👏👏 That's tricky!

That was actually a separate bug (which I've just fixed)
/Users/anthonyshaw/projects/cpython-3.10/python.exe /Users/anthonyshaw/projects/django/tests/runtests.py admin_changelist
Testing against Django installed in '/Users/anthonyshaw/projects/django/django'
Compiling failed <lambda> from <string> line 1

Found 70 test(s).
Creating test database for alias 'default'...
Compiling failed <lambda> from <string> line 1

Compiling failed <lambda> from <string> line 1

Compiling failed <lambda> from <string> line 1

Compiling failed <lambda> from <string> line 1

Traceback (most recent call last):
  File "/Users/anthonyshaw/projects/django/tests/runtests.py", line 660, in <module>
    failures = django_tests(
  File "/Users/anthonyshaw/projects/django/tests/runtests.py", line 377, in django_tests
    failures = test_runner.run_tests(test_labels)
  File "/Users/anthonyshaw/projects/django/django/test/runner.py", line 927, in run_tests
    old_config = self.setup_databases(
  File "/Users/anthonyshaw/projects/django/django/test/runner.py", line 830, in setup_databases
    return _setup_databases(
  File "/Users/anthonyshaw/projects/django/django/test/utils.py", line 208, in setup_databases
    connection.creation.create_test_db(
  File "/Users/anthonyshaw/projects/django/django/db/backends/base/creation.py", line 74, in create_test_db
    call_command(
  File "/Users/anthonyshaw/projects/django/django/core/management/__init__.py", line 187, in call_command
    return command.execute(*args, **defaults)
  File "/Users/anthonyshaw/projects/django/django/core/management/base.py", line 407, in execute
    output = self.handle(*args, **options)
  File "/Users/anthonyshaw/projects/django/django/core/management/base.py", line 88, in wrapped
    res = handle_func(*args, **kwargs)
  File "/Users/anthonyshaw/projects/django/django/core/management/commands/migrate.py", line 277, in handle
    emit_post_migrate_signal(
  File "/Users/anthonyshaw/projects/django/django/core/management/sql.py", line 46, in emit_post_migrate_signal
    models.signals.post_migrate.send(
  File "/Users/anthonyshaw/projects/django/django/dispatch/dispatcher.py", line 170, in send
    return [
  File "/Users/anthonyshaw/projects/django/django/dispatch/dispatcher.py", line 171, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/Users/anthonyshaw/projects/django/django/contrib/auth/management/__init__.py", line 72, in create_permissions
    all_perms = set(Permission.objects.using(using).filter(
  File "/Users/anthonyshaw/projects/django/django/db/models/query.py", line 280, in __iter__
    self._fetch_all()
  File "/Users/anthonyshaw/projects/django/django/db/models/query.py", line 1358, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/Users/anthonyshaw/projects/django/django/db/models/query.py", line 140, in __iter__
    return compiler.results_iter(tuple_expected=True, chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/Users/anthonyshaw/projects/django/django/db/models/sql/compiler.py", line 1159, in results_iter
    results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
  File "/Users/anthonyshaw/projects/django/django/db/models/sql/compiler.py", line 1191, in execute_sql
    sql, params = self.as_sql()
  File "/Users/anthonyshaw/projects/django/django/db/models/sql/compiler.py", line 531, in as_sql
    extra_select, order_by, group_by = self.pre_sql_setup()
  File "/Users/anthonyshaw/projects/django/django/db/models/sql/compiler.py", line 60, in pre_sql_setup
    order_by = self.get_order_by()
  File "/Users/anthonyshaw/projects/django/django/db/models/sql/compiler.py", line 390, in get_order_by
    resolved = expr.resolve_expression(self.query, allow_joins=True, reuse=None)
  File "/Users/anthonyshaw/projects/django/django/db/models/expressions.py", line 248, in resolve_expression
    c.set_source_expressions([
  File "/Users/anthonyshaw/projects/django/django/db/models/expressions.py", line 182, in set_source_expressions
    assert not exprs
AssertionError
Modules/gcmodule.c:454: visit_decref: Assertion "!_PyObject_IsFreed(op)" failed
Enable tracemalloc to get the memory block allocation traceback

object address  : 0x10a4b80b0
object refcount : 1
object type     : 0x109692460
object type name: dict
object repr     : Exception: EXC_BAD_ACCESS (code=1, address=0x58)

This seems to just coincidentally be the line where the GC runs. One of the dictionaries in the GC has an invalid reference count for one of its members (FWIW, this is a theme and the cause of 90% of the bugs)

@adamchainz #447 fixes this, I can run the whole Django test suite. Will ship in 1.1.1

@adamchainz please update to 1.1.1 and raise issues for any failing tests that shouldn't be there.
I initially ran the suites under level 0 (pyjion.config(level=0, pgc=False)), once that passes, you can try level 1 and 2 if you're feeling dangerous

Upgraded, got the tests passing.
I always feel dangerous.


Use entry.unguardedRecycle() instead of entry.recycle() in method MemoryRegionCache.freeEntry(...)

Motivation:
This is related to https://github.com/netty/netty/pull/13220, I think we should use entry.unguardedRecycle() instead of entry.recycle() in method MemoryRegionCache.freeEntry(...), to make the 'recycle' operation cheaper.
In current implementation, the entry is either recycled by the thread which created it, or by the thread which consumed the 'Mpsc' MemoryRegionCache.queue queue, if the two threads are not the same, then the two threads are mutually exclusive to recycle the entry.
Every thread gets the entry from the threadLocal, so there should be no concurrency/visible problem.
Modification:
Use entry.unguardedRecycle() instead of entry.recycle() in method MemoryRegionCache.freeEntry(...).
Result:
Make the 'recycle' operation cheaper.

Let me close this for now


[Mention The Feature]: Adding a Submit your Project Button

Is your feature request related to a problem? Please describe.
Currently, there is no way for users to submit and showcase their own machine learning projects on the platform. This limits user engagement and collaboration, as users cannot contribute their work or learn from others’ projects.
The platform should provide an option for users to submit their own projects. The feature will allow users to upload details about their projects, including title, description, technologies used, project link etc.
Describe the solution you'd like.
Add a "Submit Your Project" button on the Projects page.
Clicking the button should open a submission form (modal or dedicated page) where users can enter project details.
Upon submission, the project will be reflected back on the Project page .
Describe alternatives you've considered.
No response
Additional context.
No response
Show us the magic with screenshots
No response
Checklist

[X] I have checked the Existing Issues
[X] I have read the Contributing Guidelines
[X] I want to work on this issue. (optional)

for now it is not required.
so i am closing this issue
please understand.


fix(tsi): close series id iterator after merging

This use-after-free bug may lead to segfault. The iterators that have
reference to the underlying index files were closed too early while
the bitmaps were still used afterwards. If a compaction occurs
concurrently and removes the index files, it would result in accessing
unmap'd memory address.

@ayang64 PTAL

@danxmoran can you review this PR ?


Remove support for WASIp2 pre-releases

I think we should at this point remove the two host API implementations targeting WASIp2 pre-releases. I'm not aware of a use case for them anymore, and they served their purpose in validating the system for abstracting over different API implementations.
@guybedford and @elliottt any concerns on your end?

This would be great.