Segmented VTT - absolute or relative timestamps?

WebVTT segments are not syncing properly with live streams because they are not accounting for the segmentStartTime. The first cue in each segment starts at 00:00:00.000 so the segmentStartTime needs to be used to offset each segment properly.

I would not expect the first cue in each segment to start at 0.  What packager are you using?

#481 has more discussion. It seems that it's unclear whether VTT timestamps are supposed to be absolute of relative.

We treat them as absolute because that's how timestamps work in all other kinds of media segments.

Are you able to share any details on the encoder vendor or packager software you're using?

I'm working on getting you details and a test stream I can share.

@joeyparrish I emailed you a test stream.

Is there any update on this? The stream I emailed @joeyparrish is will expire on Sept. 7 so if there is an opportunity to discuss this issue before then, it would be useful.

Actually, no, that won't work after all.  As I'm looking more closely at the numbers, the map in the WebVTT files don't match up to the DASH presentation timeline at all.
For example, the segment at time 144323839, timescale 1000 contains a map that says it should be offset to<PHONE_NUMBER>.  Comparing numbers across segments, I see that 1k in the DASH timescale seems to equal 90k in the MPEG2 timescale used by whatever generated the VTT.
I'm increasingly convinced now that these timestamps are something the encoder needs to fix.  They are taking something meant for HLS and just serving it as DASH, which doesn't make sense.  Have you reached out to them for support?

We've talked to the stream provider and received the following response:

The unexpected "X-TIMESTAMP-MAP" attribute in webvtt files will be removed. This will also address the timescale issue since the timescales are tied to those tags.

Other players, EX: Exoplayer are working with the relative timestamps so changing the stream will break playback elsewhere. The suggestion from them is to put fix #481 behind a configuration flag to maintain backwards compatibility with other players.

I note that DASH-IF IOP v3.3, section 6.4.5 forbids the use of plaintext text segments, as quoted below.

Only one file for the full period is permitted, practically limiting this use case to non-live content.
Such external files are assumed do have a timeline aligned with the Period, so that TTML time 3 00:00:00.000 corresponds to the start of the Period.

Therefore the use of such content is dubious at best. You should be using ISOBMFF encapsulation for text streams.

Thanks, Sander.  It appears that we only have one demo asset that violates this part of IOP v3.3, and it's one we created for testing: http://storage.googleapis.com/shaka-demo-assets/tos-pto-webvtt/dash.mpd
shakaAssets.testAssets.filter(function(a) {
  return a.features.includes(shakaAssets.Feature.SEGMENTED_TEXT) &&
      !a.features.includes(shakaAssets.Feature.EMBEDDED_TEXT);
});

Since that's our own home-made test asset, we can change it to align with whatever we determine is the best practice for this non-IOP-compliant situation.
Does anyone have examples of public test content that features segmented text not embedded in ISO-BMFF?  I'd like to do a survey of what's out there before we make any changes.
If you can provide a test stream, please do.  If you can't, please just state whether your segments' cue times are relative to the period or to the segment.  Also, please state what encoder/packager you use.

@baconz, I see you on the ExoPlayer thread.  Can you weigh in on this?

We built our VTT packager to conform with Shaka's period-relative timestamps. We can change them since it seems like everybody is switching to segment-relative timestamps.

Okay.  There were literally zero responses to my attempted survey on the mailing list.  We will change to segment-relative timestamps in v2.1.0.  PRs are welcome, or we'll get to it ourselves, eventually.

@joeyparrish Any chance of adding a legacy flag to soften the transition for us? I can try to put up the PR, but probably won't get to it this week.

Sure, that could work.  If we introduce a setting for this, we could even put it into v2.0.x (default to current behavior, warn about impending deprecation when used).  Then in v2.1.0 we could just remove the setting.

This looks good. I will try to get a PR in for your review.

Related to this issue, if we have the following in the mpd:
<SegmentTemplate timescale="10000000" presentationTimeOffset="1796832000000000" media="$RepresentationID$/Segment-$Time$.vtt">
  <SegmentTimeline>
    <S t="1796832000000000" d="20000000" r="1049" />
  </SegmentTimeline>
</SegmentTemplate>

what would be the expected result? Video and audio times are calculated correctly but text cues are all generated starting at -1796832000000000. I'm looking at the DASH spec but I'm still unsure how the startTimes are supposed to be calculated.

Specification-wise, media samples exist on a separate timeline from the period, with presentationTimeOffset being the alignment factor. In other words, the period 00:00:00 is mapped to 179683200 seconds in the media sample timeline. So to display a piece of text at the start of the period, it would need to have the timestamp of 179683200 seconds, which is 49912:00:00.

@sandersaares Thank you for pointing me in the right direction, I had not read that.
In that section (DASH-IF IOP 6.4.5) it says:

Such external files are assumed do have a timeline aligned with the Period, so that TTML time 00:00:00.000 corresponds to the start of the Period. The presentation time offset is expected to be not presented, and if present, expected to be ignored by the DASH client.

The same applies to side-loaded WebVTT files. In that case, the @mimeType is text/vtt. If segmented subtitles are needed, such as for live sources, ISOBMFF-packaged TTML or WebVTT segments are expected be used to provide proper timing.

According to this it looks like Shaka should be ignoring the presentationTimeOffset if its present. And if I am reading it correctly this is actually independent of the issue of relative timestamps.
@joeyparrish does this look correct to you? I can open an separate issue for this and likely provided a PR.


Repo sync for protected CLA branch

The pull request is created from master637351814862222856 to master to fix git push error for protected CLA branch

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


Suggestions

Hello, thanks for this great mod 😊
To my suggestions:
Items with a counter of one, should not receive the item count number. It's really senseless.
On my example screenshot, the sword has this behaviour already - but other items (it should count for every item) should get that as well.
Second - items you have only in your hotbar (not exceeding her number within the inventory) should also not receiving the item count number. Rockets, flesh and signs are the example here.
Third - specific position for each number lenght (1,10,100,1000).
This way I could always setup the number in front top. Right now the number is with every lenght step a bit moving.
First and second is really important for me, and would turn the mod much greater as it is already - thanks.

The 'show item-count' option MORE_THAN_ONE covers this.
This is kind-of covered by MORE_THAN_STACK,
but I could add an additional option for when you have two stacks of the same item in your hotbar.
I'll look into setting up an anchor system

Thanks for the fast answer.
Looks much better now, great.
Would be great if you could add that - from my second suggestion.
I'm looking forward to it 🥰

Alright, from version 1.2.0 onwards these changes are added:
2. 'show item-count' now has the option MORE_THAN_HOTBAR
3. you can now specify horizontal anchor positions under 'Configure offset'
Curseforge release will be updated soon-ish.

Thank you so much 🥳


Update to serde 0.8

Serde v0.8.0 was just released

Resolved in 8a773379a159535c2bc14cf6fdf687bfcceee68d

Published 0.3.0


Better support for PHP

I created better support for PHP. This fixes #46.
Unfortunately, I wasn't able to link use statements. This could maybe be done with some external API, so if I find (or create) it, I will create another PR.
Changes in this PR related to PHP:

Support for parsing PHP extensions (link ext-* dependency to documentation) in compsoer.json
Support for linking name and bin fields in compsoer.json
Support for linking PHP's include and require

Other changes:

Allow multiple spaces between key and colon in JSON
Merge similar code in JSON parser

You're fast.
Now you're so involved that I'm hoping any day you'll tackle some of the annoying double-parsing bugs I see sometimes.

Now I don't know if I merge this or if I should test it first. I think I'll test it because I also have to publish a new version.

I tested this but you should also test this to be sure.

This is really good, wow.
About the use thing, can't we assume stuff from the project directory? I have no experience with PHP, but from this file, for example, it seems we could just assume the use declarations refer to paths under the repository's src/. Is that a pattern?

We can always check to see if there's that path somewhere in the repository -- even if not under src, for example, and apply the link if yes, otherwise no. False positives are not a problem if they are rare, the goal is to facilitate navigation, not to be an infallible code parser.

About the use thing, can't we assume stuff from the project directory? I have no experience with PHP, but from this file, for example, it seems we could just assume the use declarations refer to paths under the repository's src/. Is that a pattern?

Package are mostly using PSR-4 or PSR-0.
It's not always from src/. They are from the directory (or multiple directories) that is specified under psr-4 or psr-0 key in composer.json. Examples of this are here (with directory) and here (without directory).
Is it possible to get those values from composer.json and use them when parsing PHP files? Then, it could just join them with namespaces and get correct path.
But for third-party namespaces, this is not possible because they are not stored in repository. For this, it would need to use external API which would do this.

I think it's a pain to parse composer.json for every file, but it's possible.
For most languages Module Linker is already fetching the full repository structure (I mean a list of files) from the GitHub API and doing some kind of search.
For example, if there is a line use Foo\Bar; and a file at files/source/Foo/Bar.php we can do some suffix matching and use that.

I think it's a pain to parse composer.json for every file, but it's possible.

What if parsed composer.json is cached for some time?

Ok, I'm fine with that. But don't try to be fancy for now. Or maybe use a caching library with timeouts already implemented like https://www.npmjs.com/package/soft-cache? (I'm not sure that's a wise choice, didn't look carefully enough.)


sync: unlock of unlocked mutex

The problem arises when I use the store method. I was simply using the load and store methods.  it works well at first, but as the amount of data in the map gets larger, the probability of an error becomes higher.
func (m *MapOf[K, V]) waitForResize() {
    m.resizeMu.Lock()
    for m.resizeInProgress() {
        m.resizeCond.Wait()
    }
    m.resizeMu.Unlock()
}

located in the waitForResize process, i found xsync.MapOf unlocks its resizeCond.L when the state of the L has been -1 m.

You're likely copying the map via value (xsync.MapOf[int, int]) instead of pointer (*xsync.MapOf[int, int]) somewhere in your code. Map/MapOf has to be created with one of the New*Map* functions and then stored as a pointer. Could you check that?

Your insights are spot on. Thanks a lot. It was indeed my mistake to use pointers and objects incorrectly in the code.


remove roleType while make UserOnlyStore

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Thanks for finding this issue, I've filed an issue to track https://github.com/aspnet/Identity/issues/1480

I suggest that the other branch of the if expression also needs a similar fix. By removing roleType parameter and replacing UserStore<,,,> with UserOnlyStore<,,>.

Ah yeah, good point, missing a test for that branch

Fixed in dev (2.1) via https://github.com/aspnet/Identity/pull/1481, we will consider porting the fix to a 2.0.x patch if there's demand


Updating to take advantage of ActiveSupport

@paulghaddad Sorry, forgot to title this PR as "Iteration 1"

Nice work. I'd recommend making the changes, but don't think this needs a resubmission.

@zsyed1 Thanks Zamir!  A few things here I wasn't aware of (e.g. squish, symbolize_keys) - so will definitely make changes locally.

@jeffrade Nice work, Jeff! As Zamir said, no need to resubmit.


Refactor/Simplify beaver methods

Description
beaver.py had repetitive patterns that were no necessary after this PR #48
This PR simplify the code and closes #50
Affected Dependencies
None
How has this been tested?
This is a refactor task therefore already defined tests should be run without problems.
Checklist

[x] I have followed the Contribution Guidelines and Code of Conduct
[x] I have commented my code following the OpenMined Styleguide
[ ] I have labeled this PR with the relevant Type labels
[ ] My changes are covered by tests

@gmuraru , @LaRiffle , could you review it?


Cache nonce, retry on nonce errors

WARNING: no specific tests yet. Normal tests are technically covering the code, but best to test specific situations.


Standardizes CFlags configuration.

Solves https://github.com/maliput/maliput_malidrive/pull/221#issuecomment-1156614058
Signed-off-by: Franco Cipollone<EMAIL_ADDRESS>

Just review 7ea8269

build farm is passing: https://build.ros2.org/job/Fpr__maliput_malidrive__ubuntu_focal_amd64/5/
I am re-targeting https://github.com/maliput/maliput_malidrive/pull/221 now.


OAuth2::AccessToken#get breaks field name on query.

cli = OAuth2::Client.new(nil, nil, site: 'https://httpbin.org')
token = OAuth2::AccessToken.new(cli, '0');
params = {"foo[bar][1]" => "val"}

# bad
p token.get("get", params: params).parsed["args"].keys # => ["foo[bar][]"]

# I found a solution
# via: https://github.com/lostisland/faraday/blob/88de44ebe3c40f9050553ce7c0018990b92c2f38/lib/faraday/connection.rb#L135
p token.get("get"){|req| req.params.update(params)}.parsed["args"].keys # => ["foo[bar][1]"]

Looks like a bug.  If you have bandwidth a failing spec would be great.

I am not good at English but I tried it. #433
ah ... I am still suffering.
Should I also test OAuth2::Client#request ?


Swap keyFn and Template on Repeat directive?

The keyFn in the repeat directive is optional but comes before the template param. This results in requiring code to handle it being optional.
Wouldn't it make sense to swap the template and keyFn param to remove the extra code?
https://github.com/Polymer/lit-html/blob/881c25a2ead3fce155d115999202905fc66ac6dd/src/directives/repeat.ts#L90-L99
could become,
export const repeat = directive(
     <T>(items: Iterable<T>,
         template: ItemTemplate<T>,
         keyFn?: KeyFn<T>): DirectiveFn => {

Personally, I think it's easier to read if the data and options are up front, and the template - which might be long - comes last. In plain HTML the equivalent would be all configuration in attributes of a <template> element.

hmmm you have a good point there. Up to you guys, was just seeing if we could clean that up a bit before the API lands stable but either way is fine.


Exception when deploying war file

I have a grails 2.4.4 app that builds into a war.  This project runs fine locally, and I've successfully used the tutum/tomcat container to get it running as well.  When trying the tutum/buildstep container, the instructions for building the container seem to work, although I get some warnings (all indications are that the grails version is properly detected).
-----> Executing ./grailsw -plain-output -Divy.default.ivy.user.dir=/cache war --non-interactive
Mar 2, 2015 4:42:40 PM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule
WARNING: Module [groovy-all] - Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]

If that warning is a problem, I don't think it is impacting me (yet) because I can't get the container to run.
|Done creating WAR target/heroku-noodle-0.1.war
-----> No server directory found. Adding jetty-runner 8.1.10.v20130312 automatically.

But when running I get an exception
2015-03-02 16:44:56.201:INFO:omjr.Runner:Runner
java.lang.NumberFormatException: For input string: "target/heroku-noodle-0.1.war"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:481)
	at java.lang.Integer.parseInt(Integer.java:514)
	at org.mortbay.jetty.runner.Runner.configure(Runner.java:195)
	at org.mortbay.jetty.runner.Runner.main(Runner.java:632)
Usage: java [-DDEBUG] [-Djetty.home=dir] -jar jetty-runner.jar [--help|--version] [ server opts] [[ context opts] context ...]

I've set grails.application.container=jetty in my system.properties file.
My Procfile looks like so..
web: java $JAVA_OPTS -jar server/jetty-runner.jar --port $PORT target/*.war

Looks like $PORT isn't resolving to the value passed in with -p.  for example:
docker run -p 8080:8080 kastork/heroku-noodle  or
docker run -p 8080 kastork/heroku-noodle
Discovered this by changing to the webapp-runner instead of jetty.  It reported
Exception in thread "main" com.beust.jcommander.ParameterException: "--port": couldn't convert "target/heroku-noodle-0.1.war" to an integer

I think you can just define the environment variable -e PORT=8080 when launching the build step and it should work just fine. Can you confirm?

yes thanks


Font size is unchangeable?

Is your feature request related to a problem? Please describe.
The font is rather small in CodeBrowser and there is no obvious means to make the font larger. I like to use size 16 font (for Liberation Mono).
Describe the solution you'd like
An obvious place to make the editor's font larger. Possibly a File > Preferences window that lets you customize the UI?
Describe alternatives you've considered
Searched the help file, tried to locate the settings.

It's located in Edit > Tools Options > Listing Display
https://i.imgur.com/uEyI6Zb.png

Thanks! My other recommendation would be to make this easily found by searching for "font" or "font size" in the help document.

It seems this only affects font in Listing window, is it able to change all the font in the whole Ghidra program, including all the windows, settings, menu bar.
The default font in Ghidra is so weird, seems aged, totally different from the font in my system.
Platform: Manjaro+KDE

This worked for me on Manjaro + KDE:
Edit /opt/ghidra/support/launch.properties and change the line:
VMARGS_LINUX=-Dsun.java2d.uiScale=1
to
VMARGS_LINUX=-Dsun.java2d.uiScale=2

This worked for me on Manjaro + KDE:
Edit /opt/ghidra/support/launch.properties and change the line:
VMARGS_LINUX=-Dsun.java2d.uiScale=1
to
VMARGS_LINUX=-Dsun.java2d.uiScale=2

That works, but you can't set it to eg 1.5, so for me the choices are too small or too big.

That works, but you can't set it to eg 1.5, so for me the choices are too small or too big.

Another option, albeit crude, is to use the global font override in the properties file:
VMARGS=-Dfont.size.override=
You can make this whatever you wish, but it affects all widgets and often does not look attractive.

On Edit > Tools Options, I added a filter 'font' to see all fields related with font features. then select them and i can manually set the size and font family.
I need to change it over multiple fields because each of them applys on diferent windows of Ghidra.

Fonts can now be changed via the theme system.   This is not done in the Code Browser (greed dragon) tool, but instead in the Front End (primary window) tool via Edit -> Theme -> Configure
From there you can change the font size globally with the toolbar buttons at the top of the window.  You can also change the size and type of individual fonts as desired.


Sorting Documents

Is it possible to add the capability to sort the documents list? By title? By last modified date? By creation date? Thanks for your consideration.

I'll consider it for a future release.
I'm thinking that this setting should be on a per Tag basis.

Mmmm per tag or global.

This has been implemented and will be in the upcoming 3.1 release. Look for a build in TestFlight soon to validate the enhancement.

Thanks, I will look into it! :-)


v1.5.1 core v12 merge

integrating IcedEagle modifications post testing

@IcedEagle pushing it to official release into v1.5.1 :) congratz & thanks !


[Bug] Commands fail on Windows due to single quotes

Bug Description
Various build and formatting commands fail on Windows (using git-bash) due to single quotes
Expected Behaviour
Code that compiles and builds on macOS does the same on Windows
Current Behaviour
npm run format and npm run test fails.
For example, the error message for npm run format:
[error] No files matching the pattern were found: "'**/*.ts'".
Steps to Reproduce

Clone this repo
Run npm run format

Additional Information
Escaping commands to double quotes in package.json seems to fix the issues on Windows.

@boyuanx thanks for raising the bug! ...and congratulations on being the first to try this on Windows 🎉
question: were you running the Terminal, PowerShell or WLS?

Working on fix, testing verifying  on

Windows Powershell 5.1.22000
Windows Terminal 1.11,341.0
MacOszsh 5.8 (x86_64-apple-darwin20.1.0)


[DUOS-2208][risk=no] Wrap all nih related user updates in a single transaction

Addresses
https://broadworkbench.atlassian.net/browse/DUOS-2208
Changes

Wrap all updates related to era commons/nih account information in a single transaction
Add logging and some additional validation for visibility
Minor renaming/refactoring for clarity
Add a constraint to ensure unique user id/property key for user properties

Have you read CONTRIBUTING.md lately? If not, do that first.

Label PR with a Jira ticket number and include a link to the ticket
Label PR with a security risk modifier [no, low, medium, high]
PR describes scope of changes
Get a minimum of one thumbs worth of review, preferably two if enough team members are available
Get PO sign-off for all non-trivial UI or workflow changes
Verify all tests go green
Test this change deployed correctly and works on dev environment after deployment

FYI @otchet-broad @connorlbark - I did make a few more changes and implemented some feedback. PTAL and let me know if you have any further feedback, thank you!


Restrict redundant STDEXEC_UNREACHABLE calls to NVHPC

A developer of nvc++ pointed out to me that the bugs which necessitated the STDEXEC_UNREACHABLE()s in the first place was fixed a few releases ago. In other words, we shouldn't need any STDEXEC_UNREACHABLE() at all.
Could you try removing them all?

/ok to test


I cannot retrieve my new website

Describe the bug
I want to load my site to finish working on it but when it tries to load it noting happens.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-b5uuse
Validations

[X] Please make your project public or accessible by URL. This will allow anyone trying to help you to easily reproduce the issue and provide assistance.

Steps to reproduce
ask to load site = nothing
Expected behavior
I want my site to load
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 131
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 139382428,
  "usedJSHeapSize": 123971108,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = Qualityking
Chat ID = 7d61d71769c8

Additional context
No response

Thanks


Add ability to "claim" systick timer IRQ

One claim per core. This way libraries can co-exist (or not) deterministically with other code which may also need the timer.
We should also consider whether this should be hw_claim level or irq_ API level or both?

this is already covered by the singleton nature of the exception handler


Adding Azure.Identity 1.10.3

@soninaren isn't this the version which jumps a dependencies major version? Have we decided that is okay? If not, can we use 1.10.2?


⚠ Bofrost.be has degraded performance

In 934894b, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1428 ms

Resolved: Bofrost.be performance has improved in 016d523.


How to change TIMER_TASK_INTERVAL?

I saw that in ParticleSystem class, TIMER_TASK_INTERVAL is set to 33 but it seems that particles are a little bit laggy. Changing it to a smaller number like 10 seems to solve te problem.
My question is: How to change it to 10 so it will work on my project?

I implemented this library as module and changed TIMER_TASK_INTERVAL to 10 and it works very smooth now!

well, 33 is designed to run at a reasonable FPS (given that there are
estandar views and not an OpenGL engine)
Note that 33ms means 30 FPS, 10ms means 100 FPS. I don't think you would
notice the difference from 60 FPS given how Android render views.
I don't think adding a parameter would be a good idea. If your particles
take more than 10ms in calculating the position it would be a lot worse,
since the timer tasks would be either dropped or blocked (I don't remember
the algorithm right now)
You can check the code out and import it into your project as a library.
You can also upload it to jfrog artifactory if you don't want the code in
your project.
Maybe a handler running iterations as fast as they could would have been a
better implementation. I might consider it.
Cheers.
On Mon, 26 Nov 2018 at 20:41 Moisoni Ionut<EMAIL_ADDRESS>wrote:

I saw that in ParticleSystem class, TIMER_TASK_INTERVAL is set to 33 but
it seems that particles are a little bit laggy. Changing it to a smaller
number like 10 seems to solve te problem.
My question is: How to change it to 10 so it will work on my project?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/plattysoft/Leonids/issues/102, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABo0cQCbcflXuAM-PcylOCQj7X5yEp5Jks5uzFIOgaJpZM4Yzyne
.


CompressedImageData

Im just gonna link to the forum thread because I have no idea what is going on

Hi, I have marked this project as deprecated and will close all open issues. Thanks for taking the time to report this.


Feature/typescript

Configured linting tools for improved code quality.
Added new dependencies including tsup and TypeScript.
Added TypeScript typings for the Figma response.
Typed our custom methods.
Migrated tests to Jest.
Implemented mocks for Figma response tests to ensure reliability.

Si puedes, aprovecha y métele los espacios al readme, que me da el ToC :joy:
Así ya con este lo dejamos bien :)
(https://github.com/Runroom/design-tokens/pull/19/files)


Support For t3-app Next js 14 with app router

Greeting, I am using t3-app with next js 14 and app router. i've setup the trpc-openapi for OpenAPI but can't get the adapters working and is not clarified in the docs.

confirmed. same issue

Forked and Added support for Next.js 14.
https://github.com/Vercjames/tRPC-Swagger

I made https://www.npmjs.com/package/next-trpc-openapi

I don't know why i am getting this error.
i am using t3-app with next js 14 and app router.

@sutarrohit pretty sure that error happens because you're using tRPC v11. Either downgrade back to v10 (recommended if you really need the library) or you can do something like this (where you define your router):
const appRouter = router({
  test: testRouter,
  auth: authRouter,
});

const procedures = appRouter._def.procedures;
Object.keys(procedures).forEach((key) => {
  const def = (procedures[key as keyof typeof procedures] as unknown as AnyProcedure)?._def;
  // @ts-expect-error: internal API
  if (def?.meta?.openapi) {
    switch (def.type) {
      case "query":
        // @ts-expect-error: unstable support for tRPC v11
        def.query = true;
        break;
      case "mutation":
        // @ts-expect-error: unstable support for tRPC v11
        def.mutation = true;
        break;
      case "subscription":
        // @ts-expect-error: unstable support for tRPC v11
        def.subscription = true;
        break;
    }
  }
});

export { appRouter };

This is something I've been doing and it seems to work but it is in no way stable and I would not recommend running it in production.

@Pridestalkerr thanks definitely check for your solution


Error use  angularjs 1.2.7

I have the following error using version 1.2.7 of angularjs. your help please
"RangeError: Maximum call stack size exceeded
at https://rawgit.com/CautemocSg/ng-ip-address/master/ngIpAddress.min.js:1:990
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:175:46
at Array.forEach ()
at q (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:7:274)
at c.$setViewValue (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:175:16)
at https://rawgit.com/CautemocSg/ng-ip-address/master/ngIpAddress.min.js:1:1543
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:175:46
at Array.forEach ()
at q (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:7:274)
at c.$setViewValue (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js:175:16)"

Sorry for the late response, but that should be fixed as of the latest release, version 1.1.13.


[Tables] Don't raise an exception when deleting a table/entity that does not exist

Architects would like the delete method to swallow the 404 that occurs if the table/entity trying to be deleted is not found.

fix deleteEntity method to not throw a 404: entity not found
fix deleteTable method to not throw a 404: table not found

We will relegate this behavior to a deleteIfExists method instead of making it the default one for delete operations.


[$500] Desktop - "Check for update" never actually shows option to update the Desktop app

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

Version Number: 1.4.86-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Access the New Expensify Beta app
Sign into a valid account
Go to "New Expensify app" in the header > Check for Update > Wait for Update

Expected Result:
User expects the Desktop app to update and receive a message stating that the update is ready
Actual Result:
The user never receives an Update ready message and to update the user needs to access the build link from web
Workaround:
Unknown
Platforms:

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

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/4bdaef03-c9de-4440-9c56-dad0ba5b0e7f
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~012dcff6435623d64e
Upwork Job ID:<PHONE_NUMBER>977228837
Last Price Increase: 2024-06-21

Issue OwnerCurrent Issue Owner: @dukenv0307

@neil-marcellini  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

@neil-marcellini sorry for the confusion
Reproducible in production?: Unable to check

We decided not to let this be a blocker given that it's unclear if the problem exists on production or not. We're hoping that an external contributor will be able to investigate and figure out the problem. I'm going to bump the price up now given that it's not super easy to reproduce/test this one.

Proposal
Please re-state the problem that we are trying to solve in this issue.
On the Mac OS desktop app updates from the top menu check for update not working.
What is the root cause of that problem?
In the file desktop/main.ts#L142-L153, we only check if there is a update available but not process anything with the download.
autoUpdater
        .checkForUpdates()

What changes do you think we should make in order to solve the problem?
In the promise chain add function call electronUpdater.init();
What alternative solutions did you explore? (Optional)
Write a separate function to download the update and call autoUpdater.quitAndInstall();
see the (offical document)[https://www.electronjs.org/docs/latest/tutorial/updates]

Proposal
Please re-state the problem that we are trying to solve in this issue.
The user never receives an Update ready message.
What is the root cause of that problem?
When the update is downloaded, we're already attempting to send the push notification to the user here
But this is fragile because the user might not have notifications enabled, or they might have notifications enabled but only allows notification in Notification Center, not allowing to show as Alert. So the user will never see it and assuming it's not working.
What changes do you think we should make in order to solve the problem?

We should show a system dialog letting user know the update is downloaded. The user can choose to update or just dismiss the modal. This will not cause inconvenience to the user because they just saw the Update Available dialog a few moment earlier so it's natural to see a dialog prompting to update the app.

To enable the behavior, we can update this to
dialog.showMessageBox(browserWindow, {
    type: 'info',
    message: 'Update available',
    detail: 'A new version of this app is available!',
    buttons: ['Update later', 'Update now'],
}).then((data) => {
    if (data.response !== 1) {
        return;
    }
    quitAndInstallWithUpdate();
})

We can also only do this if the update is manually triggered, so it will not show such dialog if the user did not actively request for it. Or we can do the dialog only if Notification permission is not granted/not available by using this check
What alternative solutions did you explore? (Optional)
Update here to directly call
AppUpdate.triggerUpdateAvailable();

(the action that will be done if the notification is clicked, so we skip the notification part and directly show that modal)

Proposal updated

I'm experiencing this issue, if anyone needs me to do something.

Gentle bump @neil-marcellini on assignment 🙇

I like @nkdengineer's alternative solution.
After calling autoUpdater.checkForUpdates(), If an update is available it will be downloaded automatically. We already have the logic to handle the event UPDATE_DOWNLOADED so we don't need the additional logic. That why I chose @nkdengineer's proposal.
Besides, we can use the following modal instead of building the new one (his alternative solution)

@dukenv0307 @nkdengineer Ok, that could work, but I would like to know for sure that it will. I'm not really satisfied with the root cause explanation. Why are automatic updates not working, and why do we never show the notification that an update is available from an auto update or a manual check? I feel like I'm not simply missing the notification, it seems that the new version is never actually downloaded.
Maybe the first step is adding or identifying some logging we could use to determine the root cause better. Maybe there's also a way we can simulate/test this more easily?

Proposal
Please re-state the problem that we are trying to solve in this issue.
Unable to update Desktop App
What is the root cause of that problem?
Missing zip package. This is a regression from https://github.com/Expensify/App/pull/43505 where the electron build target was limited to dmg. From the electron-builder docs: Squirrel.Mac auto update mechanism requires both dmg and zip to be enabled, even when only dmg is used. Disabling zip will break auto update in dmg packages.
What changes do you think we should make in order to solve the problem?
Change build target from dmg to default (which includes both dmg and zip for Squirrel.Mac)
https://github.com/Expensify/App/blob/4622e19c1da5137bc7b227f5b65bf3d83f96a909/config/electronBuilder.config.js#L50
What alternative solutions did you explore? (Optional)
None

Adding to ^
The RCA can be confirmed if you run the Desktop App from terminal you will run into the following error:
18:38:52.578 › (node:66896) UnhandledPromiseRejectionWarning: Error: ZIP file not provided: [
  {
    "url": "https://expensify-cash.s3.amazonaws.com/NewExpensify.dmg",
    "info": {
      "url": "NewExpensify.dmg",
      "sha512": "F64al4FRXTgvZo1GT8GQA2e5oBE101fmSQ724KpLpzg2ZmcyIltQIEDWSO3SoF8+6MI3czuiKEN60c2+fT/2CQ==",
      "size": 195651696
    }
  }
]

The solution will take effect only after a new version is published (with zip format included) i.e. you can't test this locally

@nkdengineer The new version is not being downloaded. In the terminal an error is logged when you click on Check for updates and in the activity monitor the received bytes does not increase significantly (the package size is more than 100mb)
https://github.com/Expensify/App/assets/16493223/96c17200-69ea-41fb-8e76-edb424ba5818

Thanks so much @s77rt! I'm happy with your proposal and RCA. Hired.

Tested and was able to update the app 🎉

Me too!  It'd been a while too, thanks for the help @s77rt (and @dukenv0307 and @neil-marcellini )

@dukenv0307 https://github.com/Expensify/App/pull/43505 is the PR that introduced the bug (comment)

@dukenv0307 The PR couldn't be tested earlier. We had to wait for a new release. Only newer releases contain both the dmg and zip files.

Contributor: @s77rt due $500 via NewDot
Contributor+: @dukenv0307  paid $500 via Upwork
@dukenv0307 can you providing reasoning why we wouldn't want a test case for this?

If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again. N/A

$500 approved for @s77rt

Hey, this is still not fixed. My desktop app is on v9.0.11-1 and staging web is v9.0.11-3. When I click check for updates it gives me the dialogue saying that one will be available soon. After restarting the app I have the option to update. That brought me up to v9.0.11-2. I hit check for updates again, and get the update available dialogue.

Then I get the notification. I think it's way too easy to miss, as was suggested before. Clicking update does nothing from the modal triggered by the notification, and from the top menu.

@s77rt and others, any ideas how to debug and fix. Please post new proposals focusing on the root cause. Maybe we need to re-work this system entirely?

@neil-marcellini

Then I get the notification. I think it's way too easy to miss, as was suggested before

Adding to this, if the App is not focused, you shouldn't get any notification and it should update in the background. This seems broken too.

Clicking update does nothing from the modal triggered by the notification, and from the top menu

Did you happen that you clicked Check for updates as soon as the app starts? It looks that on startup we already start downloading available update and if you click Check for updates you will start another download process. Most likely those two download processes conflict and one deletes the file of the other, thus if you click on Update nothing will happen.
Interesting PRs to check:

https://github.com/Expensify/App/pull/40253
PRs that updated electron-updater

I will investigate this more later

Proposal
Please re-state the problem that we are trying to solve in this issue.
Clicking "Check for update" right after opening the App causes the update to fail.
What is the root cause of that problem?
Calling autoUpdater.checkForUpdates() n times, initiates n conflicting downloads. The bug is upstream electron-updater.
In our case autoUpdater.checkForUpdates() is called on startup and on user click (menu item).
What changes do you think we should make in order to solve the problem?
Make autoUpdater.checkForUpdates() initiate 1 download at most. Further calls shall return the existing download promise.
I have raised a PR https://github.com/electron-userland/electron-builder/pull/8378.
What alternative solutions did you explore? (Optional)
None

Waiting on next electron-updater release

Awesome thanks so much @s77rt. I think this is the PR for the next release

[ ] https://github.com/electron-userland/electron-builder/pull/8377.

What's the thinking here with this going in #newdot-quality?

electron-updater release is published. Raised a PR https://github.com/Expensify/App/pull/46596 for the update

What's the thinking here with this going in #newdot-quality?

It's create an unreliable experience

Checklist provided above ^ For the second bug there is no offending PR as the bug was upstream

@s77rt we'd still want a regression test for this though, right? I feel like this bug has occurred multiple times already, if it were to happen again, it'd be best to catch it during testing vs waiting for someone tor report.

@mallenexpensify I would say this requires a regression test but it's not clear if the QA can perform the test. The QA team tests on staging and if they are on staging they can't update the app (they are already on the latest).

Thanks @s77rt , can you propose the steps and I'll create the TestRail case update? If QA can't test, they can comment on the issue and close if needed.

@mallenexpensify
Regression Test Proposal
Prerequires: Desktop App that can be updated (i.e. current version is not the latest)

Open Desktop App
From menu bar click on New Expensify > Check for updates
Verify a modal is displayed titled "Update available"
Click on "Sounds good"
From menu bar verify that New Expensify > Check for updates is disabled
Wait while the update is downloaded (this could take a while)
Verify you get a desktop notification that the update is ready
Click on the notification
Verify that the App is updated (go to New Expensify > Check for updates and verify no update is available)

Thanks @s77rt , TestRail GH created.
https://github.com/Expensify/Expensify/issues/420213


[docs] do slots in styleOverrides always support callbacks?

Related page
https://mui.com/material-ui/customization/theme-components/#theme-style-overrides
Kind of issue
Missing information
Issue description
https://mui.com/material-ui/customization/theme-components/#theme-style-overrides is not saying anything about the support for callbacks on a slot in styleOverrides.
https://mui.com/material-ui/customization/theme-components/#the-sx-syntax-experimental not only introduced me to the experimental sx syntax (great one!), but also introduced me to using callbacks inside of slots in styleOverrides.
my use-case would be something like this:
const finalTheme = createTheme({
  components: {
    MuiChip: {
      styleOverrides: {
        icon: ({ theme }) => ({
          color: theme.vars.palette.primary.main
        })
      },
    },
  },
});

If this is possible, I would suggest https://mui.com/material-ui/customization/theme-components/#theme-style-overrides to tell about it! The same applies to the usage of variants, if you can utilise callbacks containing a theme in its style key, than I would suggest the docs to at least mention it briefly. Generically speaking; any place where this is possible might need a brief extra sentence that callbacks are supported.
Context
Here is the example I saw using the callbacks:
const finalTheme = createTheme({
  components: {
    MuiChip: {
      styleOverrides: {
        icon: ({ theme }) =>
          theme.unstable_sx({
            mr: 0.5,
            ml: '-2px',
          }),
      },
    },
  },
});

Search keywords: styleOverrides, callback

At the moment, it's possible but the reason we don't document it because it might be removed in the future. It's recommended to use variants instead so that the theme is static.
const finalTheme = createTheme({
  components: {
    MuiChip: {
      styleOverrides: {
        icon: {
          variants: [...]
        },
      },
    },
  },
});


Timezone doesn't effect most commands

Set a timezone
Use remind
The time is not formatted into your timezone

print screen

http://i.oddball.tf/Bem9w.png
Current time:
http://i.oddball.tf/DCd15.png

It's just because it's not added there yet.
Only place it's added at is when you use .repeat  (daily repeaters)
It still needs to be added to a few places, like
[ ] Text placeholders
[ ] Reminders
[ ] Logs


tagTag doesnt work with explicitly declared target type

@ import shapeless.tag._
import shapeless.tag._
@ trait NameTag; type Name = String @@ NameTag
defined trait NameTag
defined type Name
@ val name1 = tag[NameTag]("ben")
name1: String @@ NameTag = "ben"
@ val name2: Name = tag[NameTag]("ben")
Compilation Failed
Main.scala:321: type mismatch;
 found   : String("ben")
 required: shapeless.tag.Tagged[cmd4.NameTag] with String
val name2: Name = tag[NameTag]("ben")
                               ^

It seems to be a side-effect of type inference from the target (ie the val) flowing back to the expression assigned to it. Scalac is simplistically setting the type T in Tagger#apply to be the "target" type of the val, eg Name. gitter context.
Reordering the tag operation, to collect the value first and the tag type second, seems a nice solution:
import shapeless.tag
import shapeless.tag.@@
object tag2 {
    def apply[T](t: T) = new TaggedValue[T](t)
    class TaggedValue[T](t: T) {
      def @@[U]: T @@ U = tag[U].apply[T](t)
    }
  }

def name: Name = tag2("ben").@@[NameTag]

I like the symmetry of using @@ here myself.
Ive trialed this pattern in my own codebase with success, and wonder if it would be welcomed pushed up to shapeless proper? I'd propose offering the new form, retaining but deprecating the existing tag operation.

JFYI this is also known as https://issues.scala-lang.org/browse/SI-8740

Thanks @fthomas ... looks like there's nothing we can do about it here. I've pinged Jason to see if there's any chance of his fix going in for 2.12.0-M4. I'll leave this open to track the status of the upstream ticket.

FYI: SI-8740 is now https://github.com/scala/bug/issues/8740

That's an issue with type inference in the compiler and at this point we can't change the encoding of @@ because it would change erasure and cause binary incompatibility.


Soroban CLI Error: Missing Result in Successful Response

I'm encountering an error while deploying a Soroban contract using the Soroban CLI. Here's the command I'm using:
soroban contract deploy
--wasm target/wasm32-unknown-unknown/release/hello_soroban.wasm
--source alice
--network futurenet
error: Missing result in successful response

What version?

soroban --version
soroban 0.9.1 (b5e8586344ab52c0a1b8988b44b0c4e516a473ce)
soroban-env 0.0.17 (400d806387140553e4e685d232deb3a807ec0e36)
soroban-env interface version<PHONE_NUMBER>1
stellar-xdr 0.0.17 (0f16673441898162c9996da6117be2280ef8fd84)
xdr next (e372df9f677961aac04c5a4cc80a3667f310b29f)

even in latest one

Latest being 20.0.0-rc1?
Also is the account funded?
The newest cli has 'config identity fund' command

i have used 20.0.0-rc1 , 20.0.0-rc2  and yes account is funded

and now i updated the cli to new version - 20.0.0-rc4 so i am not gitting this error

But now i am getting new error - [error, Error(WasmVm, InvalidInput)], data:["contract pre-release number for current protocol does not match host", 51, 57]
Caused by:
HostError: Error(WasmVm, InvalidInput)
Event log (newest first):
   0: [Diagnostic Event] topics:[error, Error(WasmVm, InvalidInput)], data:["contract pre-release number for current protocol does not match host", 51, 57]

Need to recompile your contract.
Also for future reference you can add --vv after soroban, e.g. soroban --vv, to get very verbose logging.

Closing this since there has been no further discussion in awhile. Please recompile your contract and reopen if you're still experiencing this issue.


Using ES6 with grunt-contrib-watch; arrow functions break grunt

Not completely sure whether this is a grunt-contrib-watch issue or a grunt issue so i'm submitting the issue in both places, but here's my setup and what's happening:
Setup
Gruntfile.js
module.exports = function(grunt) {
    var request = require('./request.js')
 ,  config = {
            pkg: grunt.file.readJSON('package.json')
            , watch: {
                  files: ['./request.js']
                , tasks: ['req']
                , options: {
                    spawn: false
                }
            }
        };

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.initConfig(config);

    grunt.registerTask('req', function() {
        console.log('\n\n\n\n\n');
        request();
        console.log('\n\n\n\n\n');
    });

    grunt.registerTask('default', ['watch']);
};

Request.js
'use strict';
var http = require('http');
module.exports = ()=> {
    console.log('requesting...');
};

To reproduce issue:

On the command line run grunt --verbose --debug
Then add a space or something to request.js and hit save.

Result:
Grunt will the grunt watch task, the grunt-watch task will run request.js, it will break.
Initializing
Command-line options: --verbose, --debug=1

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.
Loading "Gruntfile.js" tasks...ERROR
>> /Users/the_future/Google Drive/Sites/lol/request.js:4
>> module.exports = ()=> {
>>                   ^
>> SyntaxError: Unexpected token )
>>     at exports.runInThisContext (vm.js:73:16)
>>     at Module._compile (module.js:443:25)
>>     at Object.Module._extensions..js (module.js:478:10)
>>     at Module.load (module.js:355:32)
>>     at Function.Module._load (module.js:310:12)
>>     at Module.require (module.js:365:17)
>>     at require (module.js:384:17)
>>     at Object.module.exports (/Users/the_future/Google Drive/Sites/lol/Gruntfile.js:4:19)
>>     at loadTask (/Users/the_future/Google Drive/Sites/lol/node_modules/grunt/lib/grunt/task.js:325:10)
>>     at Task.task.init (/Users/the_future/Google Drive/Sites/lol/node_modules/grunt/lib/grunt/task.js:437:5)

No tasks specified, running default tasks.
Running tasks: default
Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.

^ Grunt fails.
BUT
Now, change request.js to the following.
'use strict';
var http = require('http');
module.exports = function () {
    console.log('requesting...');
};

Run grunt --verbose --debug
Add a space or something to request.js and save.

It's fine. No es6, no error.
BUT
NOW- without stopping grunt- change request.js back to:
'use strict';
const http = require('http');

module.exports = ()=> {
    console.log('requesting...');
};

Result:
IT WORKS FINE.
The first time you run grunt, it doesn't respect es6 (arrow functions at least). But if you run grunt without any es6 at first, THEN ADD ES6 CODE grunt works as expected.
Hence, i'm not sure if this is an issue with grunt or grunt-contrib-watch.

This is a node issue, not a grunt or grunt-contrib-watch issue.  Your version of node doesn't support arrow functions.
request.js is only parsed once when you start grunt.  That's why changing it while grunt is running doesn't cause an error.  To prove this, change the message being logged within request.js while grunt is running.  You'll see the new message does not get logged.

I was using the latest version of node at the time... so I don't think that's the case.

Was this ever resolved, as I'm hitting the same issue? My version of node.js is v6.9.5, and arrows support has been available since v6.4.0 (according to https://node.green/)


artisan command names with dash are parsed improperly

Laravel Version: 7.13.0 (same in 6.18.31)
PHP Version: 7.4.8
Database Driver & Version -:

Description:
Artisan commands with dash in name are also executed when calling with only first part of name (before dash).
Steps To Reproduce:
php artsian auth:clear calls auth:clear-resets (php artsian auth:clear === php artsian auth:clear-resets)
php artisan dump calls dump-server (php artisan dump === php artisan dump-server)

This wouldn't be a Laravel issue. Would be a Symfony Console thing.


configuration files do not work on windows

Configuration files are not loaded properly and are also deleted afterwards.
log.txt

Having the file deleted might be related to the jUnit cleanup routine.

The issue was that the code that was used to clean up old jUnit XML files was also removing all xml files, including any configuration xml files that might have been stored locally. This has been fixed.


Extend package search by searching keywords

Merge after #1569
Fixes #1194
This is how this affects results for example:

One downside with this is that it's not obvious how "SwifterSwift" earned its position - there's no mention of test in the displayed result. It'll only be somewhat obvious on click-through that the result is "on topic".
On the other hand "ViewInspector", which has unit testing in its description gets pushed further down, because its score (probably driven mainly by stars) is lower.
Not sure how big a problem that is. I don't think displaying all keywords in the results is a solution. When we showed them at first it looked really busy. Maybe should show matching keywords in the result to make the matching clearer.

I think this is an important feature and will be essential for high-quality search, but I agree we need to think about the display in some way. Let me play with some options for this early next week.

Deploying as 2.58.2


If "showOnlyFailingTestsInReports" then only copy needed recorded screenshots

:pushpin: References

Issue: https://github.com/Karumi/Shot/issues/195

:tophat: What is the goal?
Copy only those recorded screenshots that are needed
How is it being implemented?
Provide a description of the implementation
How can it be tested?

test with/without showOnlyFailingTestsInReports
see resulting folder size

@tobiasKaminsky before looking at the code could you please check what's going on with the CI? I think there has to be related to the code formatting. You can use this gradle task in order to format scala code automatically in this project: ./gradlew scalaFmtAll.

As mentioned here (https://github.com/Karumi/Shot/issues/195#issuecomment-787743671) I cannot test it as it requires Android Studio 4.3.

Hi @tobiasKaminsky! I've updated your branch simplifying a little bit more the usage of the failing screenshots and also removing the reference images of the screenshots that didn't fail. This is how the folder would be if the showOnlyFailingScreenshots is disabled:

This is how it looks like with the flag enabled:

Thanks for your contribution 😃


Implement gshared branch predictor

I have implemented and model-tested this version. The required files in black-parrot should be updated (at least for hello_world it works).
I am still running the evaluation traces for the parameter evaluation and add the results as soon as this has been finalized.

Since it takes a long time to run the (huge) traces with the more complex software model, i add the result that is already done:

This design has been tested and can be pushed through the backend flow too.

backend flow complete ✅


Support ephemeral volumes with containerDisk

Is your feature request related to a problem? Please describe:
I'm trying to run some VMs with quay.io/containerdisks/ubuntu containerDisk image. It starts fine, but the root partition is only 2GB (I assume that's the size of ubuntu qcow2 image?), and I can't really install any more packages.
I can create another image with CDI, but that's way less convenient than simply using a container image.
I see there's an option to have the ephemeral volumes with COW, which can solve it - all writes will go on local disk and I'll have more space. But it only supports PVC's currently.
Describe the solution you'd like:
Support ephemeral storage with containerDisk images (read from containerDisk, write to emptyDir)
Describe alternatives you've considered:
Is there a way to resize the root containerDisk partition on start?

@dimm0 The image inside the containerdisk is the size of the raw/qcow image you created and put it in the container image. Nothing prevents you from making a larger image, but I strongly encourage you to use qcow2 format since container images don't support sparse files.
Generally, I would say that containerdisk are limited, so IMO creating another image with CDI is the right way to achieve what you want. You can create a golden image and then VMs from that image.
You can also use PVC + ephemeral storage to achieve what you want. But if you still want to use container disks, then the first option is the only way I see.

Got it, thanks


Web Certificate Management

We are integrating our Solution with the toolkit and now we need to use our own custom certificates to secure all the communication. A self-signed certificate is being generated, by the API Gateway since we didn't add one, for all HTTPS/WSS communication in MPS/RPS, but we are having issues to provide our certificates to the toolkit. My question is: Is there a proper way to configure it in the Azure, API Gateway or even in the application (MPS) ?

For configuring Kong, you can mount a ./certs volume into the container with your private key and certificate and then add two ENV variables that point to those files that are mounted in. For example:
kong:
    image: kong:2.3
    environment:
      - KONG_SSL_CERT=/ssl/cert.crt
      - KONG_SSL_CERT_KEY=/ssl/key.pem
    volumes:
      - ./kong.yaml:/home/kong/kong.yml
      - ./certs:/ssl

Sorry for the delayed response, doing this suggestion didn't work, but it led us to find that doing it using secrets and mounting a  volume in kubernetes worked well, so thank you for your response. Our next issue is with the certificates added in the domain section in the sample ui.
Basically in the toolkit versions 2.5, 2.6 and 2.7 some verifications are being done while we try to add a certificate generated by us that didn't happen in others versions (2.1 ~ 2.4). We received two different errors with two different certificates, the first one was "FQDN not associated with provisioning certificate: domainSuffix" with a certificate generated using openssl and the other one was basically saying that the password was wrong or the certificate was invalid, but the password was correct and the certificate was already used in some other provisions tests.

Regarding "FQDN not associated with provisioning certificate: domainSuffix" – There was a fix to this issue in v2.6 release. Typically you would see this when “Common Name” on the Provisioning Certificate does not match with “Domain Name” on the Domain profile (in RPS). Could you please try the latest release i.e., v2.7 and see if the issue still persists?
Regarding “password was wrong or the certificate was invalid” – Since you've already tried/tested the provisioning certificate already, could you please send me/attach the logs of RPS? That’ll help us figure out the exact root cause

We tested RPS in 2.7, 2.6 and 2.5 versions and still got the FQDN error. The certificate common name match the Domain Name in the Domain profile field.
About the RPS logs, we are gathering it and will provide ASAP.

We tested again using a new deploy(v 2.7) and below are our findings:

The same tls certificate used for kong, we used to create a domain profile and provision a machine, worked sucessfully, but this cert doesn't have the extensions(Oids) recommended and it was generated using openssl (just for testing purpose).
We tried to create the domain profile using another tls certificate, but this one was generated with C# (that's the way we are using in our application) with all the extensions and Oids recommended to provision a machine. We couldn't create the domain profile, the sample ui returns the following error "Unable to decrypt provisioning certificate. Please check that the password is correct, and that the certificate is a valid certificate.: provisioningCertPassword".
Even changing the extensions from the C# generated cert to become identical to the other one, the sample ui still threw the error above.
Another weird behavior is that the user is allowed to add a invalid certificate when editing a domain profile. The steps are down below:

We created the domain profile using our openssl generated tls cert.
Edited the domain profile.
uploaded the C# generated tls cert.
Changed the domain suffix accordingly.
Save

So, that being said, our question is, what are the validations done in the tls certificate object while a domain profile is created? we need to generate using C#, because that's how is built our application.

Hello there,
As described by Lorenzi, only certificates generated by our app without a private key are accepted by the Toolkit when creating a new Domain. However, when uploading a certificate with a private key and issued by a trust CA, the Domain is created successfully.
Could you please help us to figure out why this certificate with a private key is not being accepted by the toolkit?
The leafCert.pfx file attached is a test certificate generated with a private key and not accepted by the toolkit.

The leafCert1.pfx file attached is a test certificate generated without a private key and was accepted by the toolkit.
leafCerts.zip
The password for both test certificates is "fit123".

Thank you for attaching the pfx. Will take a look at the pfx and get back to you.

I noticed that RPS was throwing "Error: Unparsed DER bytes remain after ASN.1 parsing" exception when decoding leafCert.pfx file. We use node-forge for decoding/decrypting PFX and seems like there was a change with respect to how they decrypt PFX from version 1.3. Found some information about the change here https://github.com/digitalbazaar/forge/issues/975
I have a potential fix available here https://github.com/open-amt-cloud-toolkit/rps/tree/fix_domaincert_issue. Wanted your help with validation to make sure this fix is working.
To test this fix, you will need to

Pull code from fix_domaincert_issue branch under rps repository
Build a new RPS image
Deploy RPS container (don't have to redeploy any other containers)
Check if you are able to create a domain profile (using PFX that contains the private key)

Just a note, I tested creating a domain profile with leafCert.pfx you've attached and looks like it worked.

Oh, great!! I'll ask the team to execute these steps and I inform you as soon as I get the answer.
Thanks, Ganesh!

@bsilva7 should I close this issue? I think we resolved the ACM activation/Provisioning certificates issues the last time we spoke.

Closing this issue due to no response from author.  If there is new information, please feel free to re-open the issue and provide the updated information.


[Monitor] Default date of reference route seems wrong

Could here be something wrong with the default date setting of the reference?
When first setting the reference route (type OSM relation), I noticed that the changes I made that very day were shown as differences. I had not set the date myself but I used the default, because it said "default today". I did not actually check the date on the screen.
I then changed to a gpx reference, no problem there. Then I wanted to change back to osm, and I noticed the date said dec 8 2022, which is not today (dec 12, 2022)
I have no problem setting the date myself, but if the page says "default today" I expect the default to be today!

@pelderson thanks for reporting this problem
When adding a new route, the reference day that is already filled in by default is the current day. The user can change this day to document the moment that a gpx trace has been recorded.  When the reference type "osm" is selected, a day in the past can be selected to that all changes since that day become visible in the analysis.
With reference type "osm" and leaving the current day that was already filled in, the timestamp of the reference is midnight of that day. So the first analysis will show all changes made since midnight as differences. To be more precise, the reference timestamp is midnight in UTC time (during winter 01:00h where we live).
Once a reference day has been selected, this day is kept in the route definition, also when changing the reference type from "osm" to "gpx" and back, unless the user explicitely changes the day when updating the route definition.
In release 4.0.33, the "default today" was removed from the day label as it is indeed misleading: the "default today" only applies when first adding the route.


Disable formatting temporarily

Thanks a lot for your great work! I really like the formatter and use it frequently. I have a question regarding the functionalities:
Is there a possibility to disable formatting just like the EmmyLua-Annotation diagnostic?
Especially when it comes to automatic line breaks, such a thing would be really useful at certain points.

Thank you for liking my work, in fact the tool contains code style checking, code formatting and code spelling check. it is not just a formatter.
It's a good idea to disable formatting with comments. but it need a lot of work, please wait patiently.

feature complete.
support disable format by
---@format disable-next or ---@format disable


Upload status

Is there anyway to get the upload status. We need to find out if the blob is uploaded successfully,

java.lang.OutOfMemoryError
at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:156)
at java.io.BufferedInputStream.read(BufferedInputStream.java:288)
at com.microsoft.azure.storage.core.Utility.writeToOutputStream(Utility.java:1218)
at com.microsoft.azure.storage.core.Utility.writeToOutputStream(Utility.java:1130)
at com.microsoft.azure.storage.blob.BlobOutputStream.write(BlobOutputStream.java:525)
at com.microsoft.azure.storage.blob.CloudBlockBlob.upload(CloudBlockBlob.java:583)
at com.microsoft.azure.storage.blob.CloudBlob.uploadFromFile(CloudBlob.java:1837)
at com.microsoft.azure.storage.blob.CloudBlob.uploadFromFile(CloudBlob.java:1809)
at com.datatang.client.framework.storage.AzureStorage.uploadFile(AzureStorage.java:135)
at com.datatang.client.framework.upload.service.UploadBinder$2.run(UploadBinder.java:110)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

@tscung Closing as this has been open 2 years now. Feel free to reopen if needed, or open a new issue with additional questions.


Upgrading from 2.10.4 to 2.11.0 causes 502 for API endpoints

Checklist

Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?

Yes

Are you sure you're not using someone else's docker image?

Yes

Have you searched for similar issues (both open and closed)?

Yes

Describe the bug

When I run docker compose pull, then docker compose up -d on my NPM instance and then go to the login page and try to login, it responds with a 502 error. The login page loads and all proxy hosts seem to be online, it's just the API endpoints.
I viewed the logs using docker compose logs and it stops at:
[1/19/2024] [5:15:29 AM] [Global   ] › ℹ  info      Using Sqlite: /data/database.sqlite
[1/19/2024] [5:15:29 AM] [Migrate  ] › ℹ  info      Current database version: none

I tried booting up a brand new instance of 2.11.0 and it works fine.
Nginx Proxy Manager Version

Upgrading from 2.10.4 to 2.11.0
To Reproduce
Steps to reproduce the behavior:

Have an existing NPM instance on 2.10.4 with some proxy hosts
Attempt to upgrade it to 2.11.0
See 502 Bad Gateway error on login screen

Expected behavior

I expected to be able to login and for the app to load properly.
Screenshots

Operating System

Ubuntu 22 LTS 64-bit
Additional context

i have the same issue. Can't access to Web
Proxmox -> Debian 12 (LXC) -> docker 24.0.7

I forgot to add, I'm using a Proxmox VM as well.

Same here, but not on Proxmox. I'm on Ubuntu Server using the recommended docker-compose.yml in the docs.

Same for me after upgrading on portainer/docker using the recommended yaml with minimal settings.

hi,
i have the Same Problem. Update to 2.11.0 an can Not login. I think we Need a Version 2.11.1 😂

Same here

same here, downgrade to 2.10.4 fixes the problem

thx, downgrade to 2.10.4 fixes the problem

same here, downgrade to 2.10.4 fixes the problem

That's what I've done for now, but I would like to see a solution or fix for this still.

[1/19/2024] [5:15:29 AM] [Global   ] › ℹ  info      Using Sqlite: /data/database.sqlite
[1/19/2024] [5:15:29 AM] [Migrate  ] › ℹ  info      Current database version: none

When this appear and you wait around 3-4 min it will show the error why it cannot proceed. I would advise to wait.

Rolled back.  Running in LXC container using https://tteck.github.io/Proxmox/ . Upgrading to 2.11.0 produces "bad gateway". Only solution thus far: roll back to recent snapshot or backup prior to upgrade.

Using mariadb the migration of the database hangs.

Thanks
using docker compose

Same problem here.. how do you downgrade tho ?

In my case: i changed 'latest' to '2.10.4' in my docker compose file. Restarted the thing.
version: '3' services:   app:     image: 'jc21/nginx-proxy-manager:2.10.4'     restart: unless-stopped     ports:       - 80:80       - 40000:81       - 443:443     volumes:       - data:/data       - letsencrypt:/etc/letsencrypt volumes:   data:   letsencrypt:

same here: ttek Proxmox Script

When logging in through NPM GUI, error 502 occurred.
After checking fallback_error.log, http://<IP_ADDRESS>:3000 connection refused occurred.
I eventually discovered that the backend server wasn't running, but there was nothing I could do.
It was best to change the image version from latest to 2.10.4.

Same problem here.. how do you downgrade tho ?

In my case, restore from snapshot I took in Proxmox before upgrading.  I never upgrade - anything - w/o at least a snapshot or full backup. That saved me this time, as it has dozens of times previously.

I have same issue.
But is only when i configured somes host and restart the container.

I'm a bit unsure if I should try the upgrade after reading all the bad experiences above...
When I run the following compose without from scratch NPM starts without any issues on my Synology NAS with latest DSM version and (Synology) Docker:
version: "3.8"
services:
  nginx-proxy-manager:
    container_name: nginx-proxy-manager-test
    ports:
      - 20443:443
      - 20080:80
      - 20081:81
    environment:
      - TZ=Europe/Amsterdam
    volumes:
      - /volume1/docker/npm-test/data:/data
      - /volume1/docker/npm-test/le:/etc/letsencrypt
    restart: on-failure:2
    image: jc21/nginx-proxy-manager:2.11.0
networks: {}

I can even go to : 20081 and login with the auto-created admin account.
I might test my luck this weekend with an upgrade...

Same issue.

I'm getting insanely frustrated with how consistently this project breaks between updates, I've had to recreate my proxy setup on several occasions because of breakages between versions. I'm getting really fed up, this is probably the 4th time in about a year of using this I've had to downgrade to solve a bug.

Some problem here on unraid platform.

same here, Proxmox. Downgrade did work. Using SQLite.

same

Same here, its bad.

same here

The same problem here. I have also tried a new installation. The initial login works, but when you log out and try to log in again, all you get is "Bad Gateway".

I posted a bug fix for implementation in #3475

Closing this issue in favor of #3475 where I'll be continuing the discussion.


Added net47 to Certes

Included net47 in Certes.csproj TargetFrameworks as well as in the relevant package reference conditions. I also had to update the System.ValueTuple version to 4.4.0. This should address Issue #18 (Certes fails to load on .Net Framework v4.7).

It looks like net47 does not actually need to reference ValueTuple, so I removed that target framework from the ValueTuple condition and reverted the version number back to the previous value.
The main difference between the net45 and net47 target frameworks, to the best of my understanding, is in how Visual Studio handles nested dependencies. If Certes uses the net45 framework then all of the Certes dependencies have to be built using the net45 framework, which can cause conflicts when the libraries that include Certes also require other net47-only libraries that include the same dependencies as Certes.
Example dependency map:
MyLibrary (net47)
-> Certes (net45)
-> -> System.Net.Http (net45)
-> Library2 (net47)
-> -> System.Net.Http (net47)

Sweet! Thank you.


Background Animation using Lottie possible?

Is there a way to use this lib as a background animation? how would I have to structure the File so that it displays buttons or my text on top of the lottie?

im not sure if i understand but css should probably do this?

Oh, I didn't get a notification of your answer. sorry for that. worked it out eventually, thank you for the response tho!


Container Cloud Extension Errors After Closing and Re-Opening Lens

Lens 4.0.3
Mirantis Container Cloud 2.0.1 extension
Built the extension using:
docker run -t --rm -v "${PWD}:/data" -w /data alpine sh -c 'apk add --no-cache npm && npm pack @mirantis/lens-extension-cc'

When I install the extension, it is fine but after closing and opening Lens back up, it doesn't show the container cloud extension.  If I disable/enable the extension, it is fine and works again.  Console logs:
localhost-1608070585843.log
Looking at the console logs, I was confused because the file definitely existed when I checked and then I was watching the file to see is anything happened when I disabled/enabled the extension but it looks like when Lens starts, it does something with the directories/symlinks as they disappear which is probably why it is happening.  asciinema of it happening while Lens is loading:

Let me know if I need to file this against Lens.

Thanks, Matt. Yes, this is a Lens issue in 4.0.3 discovered earlier today. It will require a Lens issue, if one doesn't already exist. It's not an issue with this extension.


Create a Colab/notebook example

I'm trying to get the connector working in a Colab notebook. I've got this far, but cannot figure out how to bind the connector package in order to make use of the dgraph calls (apologies in advance, pyspark noob here).
I'll happily share this notebook source once this is sorted out.
Colab Notebook:
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://archive.apache.org/dist/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz
!tar xzf spark-3.3.2-bin-hadoop3.tgz
!pip install -q findspark

#new frame
import os
import findspark

os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.3.2-bin-hadoop3"
findspark.init()

#new frame
import pyspark.sql
from pyspark.sql import SparkSession
from pyspark.sql import DataFrame

conf = pyspark.SparkConf()
conf.set("spark.jars.packages", "uk.co.gresearch.spark:spark-dgraph-connector_2.12:0.9.0-3.3")
conf.set("spark.ui.port", "4050")

spark = SparkSession.builder\
        .master("local")\
        .appName("Colab")\
        .config(conf=conf)\
        .getOrCreate()

endpoint = "localhost:9080"
df = spark.read.dgraph.nodes(endpoint)

Error:
AttributeError: 'DataFrameReader' object has no attribute 'dgraph'

It seems like there's some magic needed to get the package jars into the spark context, but I'm outta ideas.

@EnricoMi Hopefully the issue I'm having is a no-brainer for you. As I said, I'm happy to share the final notebook with everyone here and/or on the Dgraph repo.

At no point in your code you are importing the connector:
from gresearch.spark.dgraph.connector import *

Can you provide the full error, there should be some cause for this RuntimeException. Are you sure the DGraph server is reachable from the spark driver and worker nodes? Can you see someone connecting to DGraph in the DGraph log?

Also, I can curl port 6080 which is the zero's http state endpoint and it's working as expected.

Is there some error log before those exceptions? Do you get logging at all? It looks like you are using the Python API?
Try to fetch the following URLs:
http://TARGET:8080/state
https://TARGET:8080/state

Note that when your target host and port given to spark.read.nodes is "TARGET:9080", then use TARGET:8080 above (port - 1000).

You could also add
spark.sparkContext.setLogLevel("INFO")

and watch out for a log line like
INFO DefaultSource: retrieved cluster state from localhost:9080 with 3717 bytes in 0.002s

This number<PHONE_NUMBER>5930680484 does not fit into a Long, so this can be interpreted as largest possible number. This number is used to partition the data as an upper limit of nodes. Being the largest possible number, there is no upper limit any more. I think, the partitioning has to be modified to work without such an upper limit.

Right, but this maxNodes is part of the license restriction  and pertains to the node count (zeros and alphas) in the cluster, not the number of graph nodes. Also, it's been present and set at that large uint64 for many releases (including v20), how was this working previously I wonder?
Here's a snippet of the state from a v20.11.0 cluster:
  "license":{
    "user":"",
    "maxNodes":"18446744073709551615",
    "expiryTs":"1683045659",
    "enabled":true
  }

A little more detail, I found this large integer in one of your tests...

The error says it is failing on
"maxUID":"18446055125930680484"
not
"maxNodes":"18446744073709551615"
The license is not used by the connector, but the maxUID is. It is used to partition the space of existing UIDs. Given this large number, partitioning is not possible any more.
I have created #216, which treats maxUID that are larger than a long as infinity, which is ignored. This should make the connector work again, but partitioning will be poor. It will work for small graphs.
In a separate but more extensive PR, I will try to make UID partitioning work for that case.

Ah, good on you, thanks. I didn't realize that maxUID had gotten that large.
I retried on a different cluster (one that I'm managing on my own network) and got beyond this maxUID error. However new issues arise.
<snip>
endpoint = "<IP_ADDRESS>:9080"
df = spark.read.dgraph.nodes(endpoint)
print("count", df.count())

Fails with:
23/04/07 14:05:26 WARN ManagedChannelImpl: [Channel<25>: (alpha:9080)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=Unable to resolve host alpha, cause=java.lang.RuntimeException: java.net.UnknownHostException: alpha: nodename nor servname provided, or not known
at io.dgraph.dgraph4j.shaded.io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:223)
at io.dgraph.dgraph4j.shaded.io.grpc.internal.DnsNameResolver.doResolve(DnsNameResolver.java:282)
at io.dgraph.dgraph4j.shaded.io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.net.UnknownHostException: alpha: nodename nor servname provided, or not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)

Seems like you (or maybe the default in dgraph4j) are relying on hostname alpha.  I'm running a cluster on another machine. I added line <IP_ADDRESS> alpha to my /etc/hosts and it gets beyond that. Did I overlook a configuration option for setting zero and alpha(s) addresses?
Dealing now with a Query failed because the result is too large issue, but I see that you have documented ways to deal with that which I am now exploring.

I didn't realize that maxUID had gotten that large.

What kind of cluster was that, the Dgraph cloud service? That is a pretty unlikely maxUID.

The alpha nodes connect to the zero nodes and send their hostname:port, which is handed to the client and used to connect to the alphas. So the client has to be able to resolve the alpha's hostnames.
Alternatively, you start the alpha nodes with --my IP:PORT, which is sent to the zero nodes and thus used by the clients.

@matthewmcneely what kind of cluster did you use to reach that large maxUID?

@EnricoMi Yeah, that's odd. It was a fresh cluster onto which I loaded the 1M movie dataset. Can't understand how the uid level got so high. Weird. Anyway, that's not your issue. Feel free to close this ticket.

Well, it is an issue if this is common to happen. The connector as it is now would not be able to read from such a dgraph cluster.
If I could reproduce this, that would be very helpful.

@EnricoMi I didn't write down the steps, but to the best of my memory, I launched a new EC2 instance and followed these instructions: https://dgraph.io/tour/moredata/1/
I'm nearly 100% certain that it was a clean instance .

Thanks for the input.


allow sending standalone remarketing tags EPD-489

@tsholmes @WesleyDRobinson
This is the client side parity PR of https://github.com/segment-integrations/integration-google-adwords/pull/9 see context there!

Current coverage is 100% (diff: 100%)

Merging #13 into master will not change coverage

@@           master   #13   diff @@
===================================
  Files           1     1
  Lines          29    34     +5
  Methods         0     0
  Messages        0     0
  Branches        0     0
===================================
+ Hits           29    34     +5
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update 2bba5f6...1a3dfc7

🏅 lgtm


Video offset, text-align: center;

When you change text-align to start, it fits normally
Not exactly sure why the layout suddenly changed - does it in chrome/edge/firefox

Heya,
I'll have a look at this. I recently updated the base image, so I wonder if it's something to do with this.
Worst case, I'll create a variable for it so it can be changed at will.

yes it does. i use onclick but i tried all of them with the same result

Reopening as I need to investigate.

Looks like this was caused by https://github.com/modem7/docker-rickroll/pull/39 - have reverted the changes and will push out a new build.

Reverted changed, new build is now live.
Confirmed working. Thanks for the report!


Helpers for combining Actions with Stdlib

Examples:
act/iterator
pub fn flat_map(
  iterator: Iterator(Action(a, x)),
  f: fn(action: Action(a, x)) -> Action(a, Iterator(b))
) -> Iterator(Action(a, b))

pub fn filter_map(
  iterator: Iterator(Action(a, x)),
  keeping_with f: fn(Action(a, x)) -> Action(a, Result(b, c)),
) -> Iterator(Action(a, b))

act/list
pub fn flat_map(
  lst: List(Action(a, x)),
  f: fn(action: Action(a, x)) -> Action(a, List(b))
) -> List(Action(a, b))

Etc...

I'm happy to accept PRs for the list/flat_map one, however I would like it to be inside of the act module, possibly also with a better name to help out those who are not as familiar with FP jargon.

On second thought I'm not sure how useful these functions would actually be to the average user. I think the way to go is to roll them yourself when needed in your projects.
I am more willing to add functions that are vital to a variety of projects. Highly specific functions that may only be useful in a few specific places won't add much value to the package. I'm trying to keep the package simple so newcomers to Gleam and FP in general won't be too overwhelmed by what's available.

👌 no problem


CascadeFrom base on a non Lookup field

I have an Data row Partner and he hold a Contacts collection.
When i try to filter the Contacts lookup by the PartnerId all the records gets to the client but non are showing in the UI.
----------------------- Partners ---------------------------
public sealed class PartnersRow : Row, IIdRow, INameRow
{
[DisplayName("Id"), Identity]
public Int32? Id
{
get { return Fields.Id[this]; }
set { Fields.Id[this] = value; }
}
   [DisplayName("Accounting Contact"), ForeignKey("[dbo].[PartnerContacts]", "Id"), LeftJoin("jAccContact"), TextualField("AccContactFirstName")]

    [LookupEditor(typeof(Scripts.PartnerContactsLookup), CascadeFrom = "Id", CascadeField = "PartnerId")]
    public Int32? AccContactId
    {
        get { return Fields.AccContactId[this]; }
        set { Fields.AccContactId[this] = value; }
    }

}
----------------------- PartnerContacts ---------------------------
public sealed class PartnerContactsRow : Row, IIdRow, INameRow
{
    [DisplayName("Id"), Identity]
    public Int32? Id
    {
        get { return Fields.Id[this]; }
        set { Fields.Id[this] = value; }
    }

    [DisplayName("Partner"), NotNull, ForeignKey("[dbo].[Partners]", "Id"), LeftJoin("jPartner"), LookupInclude]
    public Int32? PartnerId
    {
        get { return Fields.PartnerId[this]; }
        set { Fields.PartnerId[this] = value; }
    }

}
Am i missing something?

After reading carefully in the documentation i found out the cascading work perfectly when i put the lookup script attribute above the the entity row class. But when i create a custom lookup base on the the entity row the cascading wont work as the include property wont pass to the client.
This behavior is normal? or am i missing something?

So add that missing field to your custom lookup.

Thank you. I added the missing field in the select query at the PrepareQuery method.


Earning

earning.jsx
https://demo.activeitzone.com/ecommerce/earning-points

hi, pls i'd like to work on earning

Great, it is assigned to you.

@estherbabe  how far have you gone with the issue?

Good morning Kelvin,
I am currently working on it, that's the earning page but there's no place
to put the route
On Wed, Nov 9, 2022, 11:53 Kelvin Moses @.***> wrote:

@estherbabe https://github.com/estherbabe how far have you gone with
the issue?
—
Reply to this email directly, view it on GitHub
https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1308568645,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASOQEOUAI4RHFYOQXA43RUDWHN7DXANCNFSM6AAAAAARLZ2DWQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Please check the master route
On Thu, Nov 10, 2022 at 8:18 AM Nwachukwu Esther @.***>
wrote:

Good morning Kelvin,
I am currently working on it, that's the earning page but there's no place
to put the route
On Wed, Nov 9, 2022, 11:53 Kelvin Moses @.***> wrote:

@estherbabe https://github.com/estherbabe how far have you gone with
the issue?
—
Reply to this email directly, view it on GitHub
<
https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1308568645
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ASOQEOUAI4RHFYOQXA43RUDWHN7DXANCNFSM6AAAAAARLZ2DWQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1309869279,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVASJ7WANHJTGUVFJRA3F63WHSOVDANCNFSM6AAAAAARLZ2DWQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Thanks, I'll check it out.
On Thu, Nov 10, 2022, 08:19 Deborah Uzuegbu @.***>
wrote:

Please check the master route
On Thu, Nov 10, 2022 at 8:18 AM Nwachukwu Esther @.***>
wrote:

Good morning Kelvin,
I am currently working on it, that's the earning page but there's no
place
to put the route
On Wed, Nov 9, 2022, 11:53 Kelvin Moses @.***> wrote:

@estherbabe https://github.com/estherbabe how far have you gone with
the issue?
—
Reply to this email directly, view it on GitHub
<

https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1308568645

,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ASOQEOUAI4RHFYOQXA43RUDWHN7DXANCNFSM6AAAAAARLZ2DWQ

.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
<
https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1309869279
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AVASJ7WANHJTGUVFJRA3F63WHSOVDANCNFSM6AAAAAARLZ2DWQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/africommerce/africommerce-saas/issues/37#issuecomment-1309870130,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASOQEOQCCE2K3GDJGY4IOOTWHSOZFANCNFSM6AAAAAARLZ2DWQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

@estherbabe  did you later work on this issue?


Consensus threading and queues

This PR is built upon the changeset which @corecode did for persistence.
The first purpose of this changeset is to switch the pbft-core.go and each of the respective plugins to operate on a single thread.  This eliminates the need to acquire and drop locks in the code, and eliminates several conditions which existed in the code.
The second purpose is to enable message queueing for consensus so that other message types (in particular state transfer peer messages) are not blocked because the handler is waiting to deliver messages to consensus as this blocking can create deadlocks.  This is accomplished through the standard go fan in pattern, where each handler creates a buffered channel, and these buffered channels fan into a single buffered channel, which is then sent to consensus for processing.  The message fan is currently only employed for consensus requests.  In the future, the same fan code/structure can be utilized for the queueing of queries and potentially peer messages.
With this changeset, (admittedly before rebasing onto Simon's latest), using the classic pbft plugin, my local vagrant environment was able to process 10k requests, being delivered as rapidly as they could be accepted to a single peer, by 20 threads (at 500 requests each).  This processing did not trigger a view change, and all requests were processed successfully.  This is an improvement over last sprint, where deadlocks were often seen beyond about 2k requests.  @bcbrock you might be interested to try your stress tests again against this changset.  I will re-run my local stress test against this PR, assuming it passes the CI tests and will post the results here.
Some code review from @corecode @tuand27613 @kchristidis or others would be appreciated if cycles allow.
Signed-off-by: Jason Yellick<EMAIL_ADDRESS>

@jyellick - Thanks, I'll try it Thursday afternoon or Friday.

@bcbrock Just retested with the 10k request flood.  The current branch still passes it.

@jyellick - In this case: 4 peers, PBFT classic, 10K back-to-back TX sent to peer 0 - it seems to work most of the time. At least Issue #1091 seems to be gone. It's hard to characterize/repeat the non-working attempts. Other scenarios definitely fail.
My 2 cents would be to go ahead and merge assuming the reviewers agree that the architecture is good, then we can start to tackle the next set of issues.

@jyellick There's a merge conflict on this PR. Assume this is because of the requirements on @corecode's PR which also have conflicts.

Closing, because this was rebased into #1325


Several updates

Improve testcases adding extra fields
Increase COIN_DENOM_MAXSIZE in order to solve IBC tokens issue
Remove zxlib source files and configure it as submodule
Add some verifications when the device is locked and verify return error codes
Update to latest Zemu version
Support for NanoS+ is included but that was already merge in develop branch

Cosmos v2.34.6 is now available in Ledger Live manager.
@Terminal-Geek feel free to install it on your Nano X and provide us any feedback

Cosmos v2.34.6 is now available in Ledger Live manager.
@Terminal-Geek feel free to install it on your Nano X and provide us any feedback

Great, everything works fine for me now. Thanks a lot!


New Relic (Logging / Monitoring)

New Relic (https://newrelic.com/signup) has a free tier that provides 100 GB/month of free data ingest for user account. This can be used for logging or monitoring purposes.

This just has been added :)


FIx update-dist workflow

The update-dist workflow is currently failing and has been since the upgrade to @actions/core 1.4.0 (not sure if the update is related)
remote: Permission to stripethree/gpr-janitor.git denied to github-actions[bot].

Resolved


How to access nonunique indexes for tables in code generation?

I use this library extensively to generate an orm that is somewhat customized. I wonder if there is a way to access and output all the index names of a table when I write a custom template for code generation.
Accessing indexes masters especially when index hints must be provided. (https://dev.mysql.com/doc/refman/8.0/en/index-hints.html).
I find there are primary keys, foreign keys, and constraints in gen/drivers/Table. It seems nonunique indexes are missed.
For now, I may choose to implement a TemplateDataPlugin, which accesses all indexes and writes them to ExtraInfo in TemplateData. Is it a good practice? Or may I use such feature in the future?
Thanks a lot!

Up till now, retrieving index information was not a priority so it was not included.
It would of course be a welcome addition, so if you can send in a PR for this (even if just for MySQL), I would appreciate it.

Fixed in #237


NIFI-5761 ReplaceText processor can stop processing data if it evalua…

…tes invalid expressions
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@gardellajuanpablo Please ignore my ask on the similar type of fix for Kafka processors. I found a link to NIFI-5592.


Rebalance unit test and integration test time for github action

Try to rebalance the test to reduce the overall time for CI jobs.

Codecov Report

Merging #11230 (87df39c) into master (030d9c0) will not change coverage.
Report is 1 commits behind head on master.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11230   +/-   ##
=======================================
  Coverage    0.11%    0.11%
=======================================
  Files        2227     2227
  Lines      119633   119633
  Branches    18105    18105
=======================================
  Hits          137      137
  Misses     119476   119476
  Partials       20       20

Flag
Coverage Δ

integration1temurin11
0.00% <ø> (ø)

integration1temurin17
0.00% <ø> (ø)

integration1temurin20
0.00% <ø> (ø)

integration2temurin11
0.00% <ø> (ø)

integration2temurin17
0.00% <ø> (?)

integration2temurin20
0.00% <ø> (?)

integration3temurin17
0.00% <ø> (?)

integration3temurin20
0.00% <ø> (?)

unittests1temurin11
0.00% <ø> (ø)

unittests1temurin17
0.00% <ø> (ø)

unittests1temurin20
?

unittests2temurin11
0.11% <ø> (-0.01%)
:arrow_down:

unittests2temurin17
0.11% <ø> (-0.01%)
:arrow_down:

unittests2temurin20
0.11% <ø> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Current setup seems pretty balanced on the runtime for unit test and integration tests runtime.
https://github.com/apache/pinot/actions/runs/5730948007/job/15530794730?pr=11230

Another run: https://github.com/apache/pinot/actions/runs/5730948007?pr=11230
Better balanced than before.


Bootstrap 4 - New Branch

Let try this one

Merged, thanks! Will work on getting this out into a release.

Great - let me know if I can help.