Buildbot tracker

TODO:
For benchmark harness (High Priority)

[ ] Buildbot should extract data using the data extraction scripts after the synthesis step.
[ ] Run task should upload required data files to Areesh.
[ ] First order support for F1 instances.

[x] Logs should be kept in a proper text file, log.txt, instead of in the JSON job info dictionary. As a consequence, running commands could "stream" to the log, letting us see in-progress output before the command is done executing.
[ ] Job page should extract all log lines that have the word "warning". These usually seem to indicate when a particular pragma is being ignored.

DONE:

[x] The job page should not have the full file listing and log. (These get way too big in normal runs.) Link to separate pages to view these.

[x] Buildbot should detect if there is a Makefile and run make.

[x] Finish fixing the Dockerfile to work with opam2 so it can actually run on Gorgonzola again. (@sampsyo is working on this.)

[x] Merge the workproc branch described in https://github.com/cucapra/seashell-gorgonzola/issues/1 to fix reliability issues.

[x] Make the buildbot actually run things on the Zynq board. (@sa2257 is working on this.)

[x] Add a no-Seashell mode to just HLSify and execute plain C programs.

[x] Add an option to just run the Vivado hardware resource estimation instead of doing the full synthesis flow.

[x] Add the ability to change the status of a job. This is really useful for debugging, when you want to take an old job and "rewind" it to an earlier stage that failed before. (It's currently possible to do this by hand by editing the JSON job data file, but then you have to give the server a kick somehow to pick up the new status.)

[x] Generate job name based on the cpp or fuse file in the provided archive.
[x] Change the format for "started" to "%MM/%DD, %TIME". Also the time currently given is 3 hours late.
[x] Add color labels for job states to quickly figure the status of recent jobs.

And here's a pie-in-the-sky idea:

[ ] Get the buildbot running on an Amazon F1 instance, which includes Xilinx SDSoC for free. This would get us access to a somewhat bigger FPGA and make the setup accessible to other people.

[ ] Fix Areesh file copy bug
[ ] Submit jobs with multiple hardware functions
[ ] Consistently create an HLS error that seems to terminate the synthesis in some jobs
[ ] Decide where to include library files/ why it throws a bug only in seac generated files
[ ] Run parallel hls jobs
[ ] Figure out licensing
[ ] Extract data out and see a synopsis in buildbot interface
[ ] Prioritize jobs

[ ] Option to change clock frequency. Currently running for fastest clock, but gcd is failing timing. Need to check whether a lower clock will help.
[ ] Access to Areesh is failing. Check!!

Some quick context on the new additions from @rachitnigam:

Generate job name based on the cpp or fuse file in the provided archive.

This is trickier than it sounds because the job name is assigned before we extract the archive.

Also the time currently given is 3 hours late.

Time zones are hard. :)

Change job view to hide most build files under a fold and only focus on rpt files and archive files

This is the same idea as the second item in the previous chunk. These should be on separate pages, like jobs/<ID>/log.txt and jobs/<ID>/files/, linked from the main job description page.

Added: Buildbot should detect if the archive contains a Makefile and run make to generate <kernel> file. This is help in the case of machsuite since it needs to compile several .cpp files to .o and link them to generate the host function. The call to make can set an environment variable that Makefiles can use to generate the .o files.

Regarding the Makefile. I don't see why that shouldn't be used to compile software sources for host. But using make for hardware functions might make Buildbot oblivious to hardware functions in a job. For one, this might make extraction harder.
The underlying issues seem to be,

Buildbot assumes functions other than main are hw
Buildbot assumes hardware function name to be same as file name (so that hw_basename can be used throughout)
Uncertain what happens when multiple functions are in hw.cpp, this works in theory (SDSoC handles it), but Buildbot might not support it. (Running a test to confirm)
At least the hardware function compilation cannot access common header files or local header files through .cpp or .h. Main function can access these, I assume software compilations should also be fine.

The workaround was,

name host as main and that was the only sw

name hw function the same as file name

no header files used in hw function compile

But these (3) seem to be too restrictive to run some MachSuite apps (fft/sort) and (1/2) are too restrictive to run MachSuite as is.

Yeah, I understand the issue you mentioned. It seems that sds does in fact handle simple header includes for the hardware function. For example stencil_3d includes a header file to define types.
A different way of doing this would be having some sort of configuration sent to buildbot that specifies all the software dependencies for the host and have buildbot manually run those commands for us.
The way machsuite seems to be setup seems to make this model of separate compilation and linking necessary so (1) and (3) need to be fixed. (2) doesn’t seem to be a massive issue.

Buildbot can run multiple hardware functions with separate cpp for each function job
Buildbot can run with all functions in the same file job
Buildbot seems to synthesize (check sds_mmultadd.rpt) function calls within hardware function, but doesn't generate an estimate job

In light of this, it might just be enough to use a Makefile to provide software dependencies. We can go with 2 for now. 1 and 3 have to be addressed, 1 shouldn't break the current flow.

I'm not sure I understand when (3) breaks. The stencil_3d example compiles fine with a header file included in the C++ file.

I'm not sure I understand when (3) breaks. The stencil_3d example compiles fine with a header file included in the C++ file.

Can you post a relevant job? (Unless it's too hard, I can run it again)

Added @sa2257's issue: #146

Added "Job page should extract all log lines that have the word "warning". These usually seem to indicate when a particular pragma is being ignored."

Added "Run task should upload required data files to Areesh."

Added: First order support for Amazon F1 instances.
It occurred to me that we don't need to completely port the buildbot infrastructure to Amazon instances in order to use larger boards. We can do this incrementally:

We can run synthesis on gorgonzola and set the hardware target to the board on the Amazon instance. Then, we can change the fpga_executing stage to upload it on the instance and run it there.
Next, we can change the onxilinx script to instead send our data to the instance and run synthesis on F1 and wait for results. Note that this composes nicely with 1.

True! FWIW, I bet that running the synthesis step (i.e., running sds++) on an F1 instance will actually be pretty straightforward—if the whole thing is running there, it should be just as "easy" as changing the hardware target. (No onxilinx.sh script required.)
It's probably not worth a checkmark here because it's longer-term, but if/when we all get access to Intel's vLab infrastructure, I'd be really interested to see how hard it would be to generate code for their HLS tool too.

Oh, I've already gotten access from Intel.

Awesome. The first stumbling block I noticed is that their documentation is all about OpenCL-based synthesis, not "C with pragmas" as input. So that could be kind of annoying to generate.


k8s: ignore service updates if they are the same

To prevent doing useless operations at the BPF LB map, if a k8s service
received is the same as the one stored in golang map, the update should
be ignored as Cilium has the necessary state already in memory.
Related: #5425
Signed-off-by: André Martins<EMAIL_ADDRESS>

This change is

test-me-please

test-me-please

test-me-please

@aanm yes, and invalid cases as well. I don't think the simplicity of a function should dictate whether tests are written for it. Tests provide evidence that the code works as intended, and are a form of documentation about how the code works.

test-me-please

test-me-please

test-me-please

test-me-please


Avahi probe now removes advertised HTTP service once the probe’s done.

I noticed that there was a second HTTP service being advertised on port 4321 and narrowed it down to the avahi probe ad not being removed.
(I’m assuming that there is no other purpose for keeping the avahi probe’s service ad running once the probe is complete.)

Great catch. This is around for like ever (0.5 * ever, to be precise).
It should probably use service type _node-mdns._tcp or something instead of http to make it more obvious. But that's a different story.
Will merge this later today.

Published in v2.2.7.


WL-4735 Password strength checks now consider all character types.

Also config for password strength entropy levels.

Changes made.


allow ones to override Record.hashCode

Currently, all Cells of a Record are used to calculate hashCode of the Record. In some cases, we want not to take into account some of Cells that are used in a Record when calculating the Record.hashCode.
For example, there is a Processor for TermsExtractor has two cells, the term cell and score cell. Even though a term is same but its score can be different between multiple runs. In this case, the Record that was deleted by an operator at the previous run cannot be deleted by the ReplayProcessor at the next run because of different hashCode.

I implemented this feature as following example;
class SimpleDictionaryAttributeFactory(settings: Map[String, String]) extends DictionaryAttributeFactory(settings) {
  override def getInstance: DictionaryAttribute = {

    /**
     * User defined cell hashcode function
     */
    def ignoreThisCell(d: Any): Int = {
      0
    }

    val list = Seq[CellAttribute](
      CellAttribute("cell01", CellType.StringType, true, true),
      new SimpleCellAttribute("cell02", CellType.IntType, false, true, ignoreThisCell),
      CellAttribute("cell03", CellType.DoubleType, false, true, ignoreThisCell),
      CellAttribute("cell02_check", CellType.StringType, false, false, ignoreThisCell),
      CellAttribute("cell04", CellType.FloatType, false, true, ignoreThisCell)
      )
    new DictionaryAttribute("simple", list)
  }
}

I added the new parameter in CellAttribute which is a hashcode function (Any) => Int.
If you'd like to ignore a cell value in ReplayProcessor, then you set a function that returns static value such like zero.
If this implementation accepted, I will push the new branch.

Basically, I like the idea as it is very simple, if I understand correctly what you mean. However, the Cell that its ignore flag is turned on can still contribute the hashCode of the Record that the Cell participates in? For example, when a Record.hashCode is being calculated and its current value is 0x0000 and the next Cell.hashCode that is marked as ignored returns 0x0000, and if XOR is used in Record.hashCode to mix in, the value turns to 0xFFFF.
Nonetheless, ignored Cells always return same constant and same hashCodes are produced in the Records. Thinking of it, the hashCode of the ignored Cell can be any constant. I think the proposed way works.
I may be wrong. Can you push the branch so that I can see and try? Thanks!

Anyway, I push the branch " add_user_own_hashcode".
Please check it and report your comment. Thanks.

I added a test case and merged. Thanks!

Hi Yamamoto-san,
After I applied this change, I cannot see "MOD" flag is turned on in Replay field...

I fix this bug in bugfix_MOD_label_of_replay branch.
Could you check this branch.
Thanks.

I still see the problem even I use the branch you mentioned. I can see ADD flag is turned on but I cannot see MOD flag in the Replay field.
BTW, I applied this before trying your branch:
https://github.com/NLP4L/framework/commit/e65a9b4d442a53f58317f1353c1db149bcff3c81
What I've tried on the branch you mentioned was that I applied above patch to bugfix_MOD_label_of_replay and Run SimpleProcessor which is defined in examples/simple.conf.
Can you test the branch with examples/simple.conf?

I confirm this problem, however I successfully see MOD and ADD label after replay examples/simple.conf job.
These are my processure.
(1) Create a job using examples/simple.conf
(2) Run onne. Getting the #1 result
(3) Run again. Getting the #2 result.
(4) Delete the record of cell01 is 19 on #2
(5) Modify the record of cell01 is 18 to 18--
(6) Add a  record of cell01 is aaaaa
(7) Run again. Getting the #3 result.

Thank you very much for showing me details all you've done to confirm the problem with a nice screen capture! I realized that the record I modified was the second record which has "var1" in cell01, and it was merged with the first record which has the same value in cell01 by MergeProcessor. That's why I couldn't see any records that have MOD flag in Run 2.
When I make a change on another unique record, I can see the record has MOD flag.
I'll merge the branch soon!


Questions about the unsupported PlanNodes in CodeGen

Hi! I am trying to run presto + velox with CodeGen turned on, and found that most SQL execution will get stuck. This might be caused by the fact that codegen analysis/compilation for some of the plan node types (e.g., LimitNode) are not yet supported (CodegenASTAnalysis.h, CompiledExpressionAnalysis.h, CodegenCompiledExpressionTransform.h) and exceptions "Unknown node type" will be thrown when velox tries code generation on plans with such nodes. Correct me if I am wrong.
If my observation is expected and my analysis is correct, may I ask if there is immediate plan that the support for the rest of plan nodes will be added in velox or this is something low-priority?

@markjin1990 At this moment we are not actively developing codegen functionality. I'm curious about the motivation for using codegen. Have you have tried non-codegen path already and are you seeing inefficiencies you are hoping to "fix" using codegen?
CC: @laithsakka

@markjin1990 At this moment we are not actively developing codegen functionality. I'm curious about the motivation for using codegen. Have you have tried non-codegen path already and are you seeing inefficiencies you are hoping to "fix" using codegen?
CC: @laithsakka

Thank you Marsh for answering the question! At this moment, I p. My long-term plan is to explore opportunities

Thank you @mbasmanova for answering the question. I am simply playing with the existing codegen in velox and found out that the code compilation time could take >5s in tests like CodegenBenchmarks.cpp. That's why I was trying to run prestocpp+velox with codegen turned on to see if the long compilation time also occurs when handling real SQLs. I was hoping to figure out whether the long runtime compilation time is expected and whether there is an opportunity to reduce that.

Hi @markjin1990,
The work at codegen is suspended for now and hence its not tracked that its still working
with all the changes that are happening in VELOX. since its not being updated nor tracked.
Back to your questions, the codegen for velox was build and meant for Large queries that runs for minutes,
and hours.  In that case the 5s overhead during query compilation wont matter.
It was not meat for interactive queries.


Cache downloaded Mesh/Texture to Local Storage

@ritchielozada I think this is done right? Unless you are using a different mechanism to get the data than PyriteLoader uses.

The PyriteLoader setup is done.  I'm trying to setup a different cache to support full dump of the mesh as it is shown on the screen to support local/no-network setup.

It is a cloud streaming mesh renderer :) I don't think working with no network is super high-pri.

yeah :) -- it's primarily for my debugging efforts and the ability to regenerate the mesh in unity coords.

Using PyriteLoader implementation.


slugify auto fill just work for title

I created a products table with title field and slug
{"slugify": {"origin": "title"}}
and it works perfect
but I created another table " groups "
and a field "name"
and slug:
{"slugify": {"origin": "name"}}
its not work and not auto fill slug field when I add new group

Hello @mohammad6006, does it still happening?
I need to test that.

@mohammad6006: Please ensure that you have published the latest assets and that your cache is cleared.

Hello @akazorg  I am also facing the same problem. Please can you explain more about slugify

Closed due to missing response.

Hello Mark =) i have this issue too, but i see where is the problem in slugify.js at line 43:
this.input = this.settings.input  || $(this.element).closest('form').find('input[name="title"]');

@tokkerbaz: Are you running the latest version of Voyager and have you republished the assets?

@marktopper yes =)) but only works with title

// ping @akazorg

Ok guys, tonight I'll take care of it. (L)

This was fixed with #767. @marktopper you can close this issue.


music.163.com not scrobbling

music.163.com not scrobbing
Expected Behavior

scrobbing music when music playing
Current Behavior

Possible Solution

web server changed
Steps to Reproduce (for bugs)

Context

Steps for resolving the issue

[ ] Reauthenticate on Last.fm

[ ] Try to use unpacked extension from latest master

[ ] Check other issues for duplicates

Environment

Version used:
Browser Name and version:

This is already fixed.

im sorry, my chrome still have the problem

thanks


Not working!

Suddenly it stopped working. It updates fine, headers are fine, Hyprland loads it, hyprpm lists it as enabled, but it doesn't work for some reason, neither shrink nor flash. No errors, everything seems OK, except it doesn't work. All I did was reboot and now this. I'm on Arch, btw. Any suggestions?

After the last Hyprland update I tried building the plagin again and this the output.
❯ hyprpm add https://github.com/pyt0xic/hyprfocus
✔ adding a new plugin repository from https://github.com/pyt0xic/hyprfocus
MAKE SURE that you trust the authors. DO NOT install random plugins without verifying the code and author.
Are you sure? [Y/n]
→ Cloning https://github.com/pyt0xic/hyprfocus
✔ cloned
✔ found hyprpm manifest
✔ parsed manifest, found 1 plugins:
→ hyprfocus by VortexCoyote, OakleyCord, vaxerski, DRAGONTOS, pyt0xic version
✔ Hyprland headers OK
→ Building hyprfocus
✖ Plugin hyprfocus failed to build.
This likely means that the plugin is either outdated, not yet available for your version, or broken.
If you are on -git, update first
Try re-running with -v to see more verbose output.
✔ all plugins built
✔ installed repository
✔ you can now enable the plugin(s) with hyprpm enable
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  5 / 5  Done!

PR from @bighu630 fixes this.


Corrected a typo in functional documentation.

Corrected a typo in functional documentation.

Corrected a typo in functional documentation.


thanos-compact exited 408 Request Time-out

/bin/thanos --version
thanos, version 0.17.2 (branch: HEAD, revision: 37e6ef61566c7c70793ba6d128f00c4c66cb2402)
  build user:       root@92283ccb0bc0
  build date:       20201208-10:00:57
  go version:       go1.15
  platform:         linux/amd64

/usr/local/bin/prometheus --version
prometheus, version 2.19.1 (branch: HEAD, revision: eba3fdcbf0d378b66600281903e3aab515732b39)
  build user:       root@62700b3d0ef9
  build date:       20200618-16:35:26
  go version:       go1.14.4

Component: Thanos Compact
Object Storage Provider: OpenIO
What happened:
Our compact component suddenly shutting down when it got 408 Request Time-out error code. Related log attached below. What we would like to know that what is the cause of this error? and why it kill the thanos-compact service? Does the error was critical so the compactor should be terminated?
What you expected to happen:
thanos-compact not shutting down.
How to reproduce it (as minimally and precisely as possible):
This is our thanos compact flag
/bin/thanos compact \
        --data-dir=/var/lib/prometheus-compact/ \
        --objstore.config-file=/etc/prometheus/bucket.yml \
        --wait \
        --wait-interval=5m \
        --retention.resolution-raw=90d \
        --retention.resolution-5m=180d \
        --retention.resolution-1h=400d \
        --log.level=info

Full logs to relevant components:
Logs

Mar  5 03:21:16 temng01thanos01 thanos: level=error ts=2021-03-04T20:21:16.546888255Z caller=compact.go:434 msg="retriable error" err="syncing metas: incomplete view: meta.json file exists: 01EVDGQTW64A7QDNX4KG2975RF/meta.json: stat s3 object: 408 Request Time-out"
Mar  5 03:21:16 temng01thanos01 thanos: level=warn ts=2021-03-04T20:21:16.546967953Z caller=intrumentation.go:54 msg="changing probe status" status=not-ready reason=null
Mar  5 03:21:16 temng01thanos01 thanos: level=info ts=2021-03-04T20:21:16.546986005Z caller=http.go:65 service=http/server component=compact msg="internal server is shutting down" err=null
Mar  5 03:21:17 temng01thanos01 thanos: level=info ts=2021-03-04T20:21:17.047181015Z caller=http.go:84 service=http/server component=compact msg="internal server is shutdown gracefully" err=null
Mar  5 03:21:17 temng01thanos01 thanos: level=info ts=2021-03-04T20:21:17.047299537Z caller=intrumentation.go:66 msg="changing probe status" status=not-healthy reason=null
Mar  5 03:21:17 temng01thanos01 thanos: level=info ts=2021-03-04T20:21:17.047379923Z caller=main.go:160 msg=exiting2

Anything else we need to know:
Currently we're applying workaround in the systemd file for Restart=on-failure to avoid this issue. We're still monitoring it.
Environment:

OS (e.g. from /etc/os-release): CentOS Linux release 7.8.2003 (Core)
Kernel (e.g. uname -a): Linux temng01thanos01 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

The newest RC version is able to calculate checksums of files so that in such a case Thanos Compactor wouldn't have to redownload all files & it wouldn't cause any issues. Also, we are working on adding retries to objstore clients. Does this help? :hugs:

Thanks for reporting. It looks like server side timeout? Wonder what could be the reason, is there any server specific issue? I would check on your Object Storage documentation why 408 error occurs.
@GiedriusS It's meta sync operation, so checksums won't help I think?

hi @GiedriusS  and @bwplotka thank you for your insights.
It seems that the issue is purely due to network connection time out, either because of intermittent network connection or failing dns resolution. But either way, what I would like to know is the compactor behavior or response on this incident.
Why it shutting down the service by its own? Is there any flag that i missing in order to avoid this behavior?

hi @bwplotka any update you can share more?

hi @bwplotka any more insights that you can share?

hi @bwplotka,
i would like to follow up on this ticket whenever you're available..
thank you!

hi @bwplotka  any more insights that you can share?


Upgrade typescript-eslint and prettier plugin dependencies

What is the purpose of this pull request?
Updates the dependencies of eslint-config-vtex to their latest versions. Also updates a few dev dependencies on this repo just to shave off a bit of the technical debt.
What problem is this solving?
The latest version of major 4 of typescript-eslint doesn't play well with eslint 8 and the latest version of typescript.
How should this be manually tested?
I just ran yarn test and it seemed to be ok, although it only run the tests on eslint-plugin-vtex. I don't know how else to test this other than to verify the version is ok after publishing it to NPM and testing locally on a package.
I'm up for suggestions.
Screenshots or example usage
Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Requires change to documentation, which has been updated accordingly.

fyi I didn't actually release the packages on NPM yet, I only pushed the publish commit (a671e98) to test locally using verdaccio


Fix SAC-N walker2d configs

Replace 'hopper' with 'walker2d' in SAC-N walker2d configs.
Current SAC-N walker2d medium and medium-replay configs use hopper environment unexpectedly (likely copy-paste error). Corrected configs run as expected.

Hi! Thanks for the catch! Indeed, it is a copy-paste error from our last configs refactoring.

Thanks for the great repo!


Add how to embed database with react-native app example.

It would be nice to see an example on how to add embedable database with react-native app.
@amasad any idea?

We use RocksDB. I don't know the details. Maybe @sahrens does.

Ok. Cool. I figured rocksdb is the solution here. Thanks for the help.
@sahrens  Can you give some more details about how to use rocksdb with react-native.

What do you want to do exactly?  The AsyncStorage module is built into ReactNative already and should be fine for most key-value storage applications. If you want SQL, RocksDB won't help and you'll need to write a separate module (ideally following the WebSQL spec).  If you hit perf issues with AsyncStorage let me know and we'll be a RocksDB module up and running.

I want to embed data into the app.We want the app to run completely offline. Data is really small but changes based on user activity. I want the changes to persist.
With AsyncStorage, i guess everytime the app starts i have to load the data into the asynstorage from a text file i guess? Is there a better way to do it?

@sahrens
Only more question: Asyncstorage docs says it global. Does it mean my app data is accessible to other apps also?

One option is to use Couchbase Lite. It can expose local CouchDB compatible REST interface that can be consumed via XHR or fetch API

No, it's global within your app, i.e. all JS modules in your app will share it. iOS prevents apps from seeing each other's data so you don't have to worry about that.
You don't have to worry about loading anything from a text file, AsyncStorage handles everything for you, just like LocalStorage does on the web. Just do AsyncStorage.getItem('myKey', function(value) { ... });, etc. check out AsyncStorageExample.js

On Apr 1, 2015, at 10:33 AM, Chirag<EMAIL_ADDRESS>wrote:
@sahrens
Only more question: Asyncstorage docs says it global. Does it mean my app data is accessible to other apps also?
—
Reply to this email directly or view it on GitHub.

@sahrens Thanks for info.
I guess i have to load from file once though. When the user opens the app for first time. Asyncstorage will be empty that time. Subsequent loads can be from asyncstorage.
Thanks for all the help on this.

MySql Database was created for previously build web application on server, now i want to create android app in react native need to fetch data from that database, so what exactly i need to do can anyone please help me out there>?
Thanks in advanced.


Privacy policy invalid URL on eu.circles.futo.org server

Steps to reproduce

Sign Up
Select "eu.circles.futo.org" server
Tap on Privacy Policy link

Additional info
It appears that the URL for privacy policy is invalid, only for "eu.circles.futo.org" server. By clicking the privacy link, I'm getting re-directed to https://circles.futo.org/privacy/service.html while the URL for "circles.futo.org" server is https://circles.futo.org/privacy/service/index.html and works correctly.
Screen recording
https://github.com/futo-org/circles-android/assets/25794786/6605a250-e319-4562-aa87-c84584fca67b
Application version
v1.0.30
App Store name
Google Play Store
Phone model
Samsung S23+
Operating system version
Android 14
Homeserver
No response
Contact info
No response

Fixed. Thanks


build: setup prettier in repository

Sets up prettier in the repo. See individual commits.

Can someone help me with approve-api command?


The request for google maps license info returns the string "OK" instead of the license info text

I'm submitting a ...  (check one with "x")
[ ] question
[x] any problem or bug report
[ ] feature request
The plugin version:  (check one with "x")
[ ] 2.0-beta3 (github)
[x] 2.0 (npm)
If you choose 'problem or bug report', please select OS:  (check one with "x")
[x] Android
[x] iOS
Current behavior:
The request for google maps license info returns the string "OK" instead of the license info text.
Expected behavior:
The request for google maps license info should return the license info text.
Steps to reproduce:
Run the following JavaScript inside the application:
plugin.google.maps.environment.getLicenseInfo(function(text){console.log(text);});
Screen capture or video record:

Related code, data or error log (please format your code or data):
plugin.google.maps.environment.getLicenseInfo(
  function(text){
    console.log("Response text:", text);
  }
)

For Android is no longer required. For iOS is still required.

My apologies. I incorrectly reported this as broken in iOS, it is in fact working in iOS.


Create manipulator gamepad

-Add in all manual functions to manipulator gamepad

I'm merged this functionality into #55. Closing.


use status colors for transactions

you're right. let's address this in the next release when transaction history will be in. sorry for this distraction.


Allow entity types to be pre-defined

Is your feature request related to a problem? Please describe.
I'm building a new Custom Type but it is frustrating that it can only be instantiated from within the entity decorator. The Type I'm building has a dependency on a rather complex object. Put it simple, it wouldn't be feasable to construct such dependency on the decorator.
For example, given a Type like this:
import { Type } from '@mikro-orm/core';

export class MyCustomType extends Type<MyObject, string> {
   public constructor(manager: Manager) {
      // ...
   }

   // ...
}

It could happen that Manager has certain complexity to construct so, the following would simply be impractical:
import { Entity, Property } from '@mikro-orm/core';
import { v4 } from 'uuid';

@Entity()
export class MyEntity {
   @Property({ type: new MyCustomType(/* complex construction code */) })
   myObject: MyObject;
}

Describe the solution you'd like
I think adding a new key to the MikroORM.init() function to add custom types shouldn't be that difficult. Admitedly, I haven't taken a look at the code yet but seeing that the decorator also takes an string suggests to me that there might be some sort of resolution of types later on so, my proposal would be something like this:
const manager = /* complex construction code */;
const myCustomType = new MyCustomType(manager);

MikroORM.init({
   customTypes: {
      my_custom_type: myCustomType
   },
   // ...
});

With this code and given the beforementioned ability to resolve types on run time, the entity would then be like:
import { Entity, Property } from '@mikro-orm/core';
import { v4 } from 'uuid';

@Entity()
export class MyEntity {
   @Property({ type: 'my_custom_type' })
   myObject: MyObject;
}

Describe alternatives you've considered
The simplest solution to this problem would be to abstract the complex construction into a module and import it on any required file. However, this is not always posible as, in my case, I'm constructing the manager with a container.
Additional context
In addition to this problem, sometimes some data needs to be asynchronously retreived (for example, an object loaded from a different DB, API, etc). I've noticed that there isn't a single mention of Types returning promises. Is it possible? If not, I can raise another issue for this matter plus I don't think it would be that difficult to achieve since the core should run in an asynchronous context anyway.

Generally speaking, types should be stateless and you should not instantiate them, rather pass the class as in @Property({ type: MyCustomType }) which will then use a singleton instance.
Anyway, you can already handle this via custom driver (extending the one that you want to use), there is this method that picks mapped type implementations based on the property metadata:
https://github.com/mikro-orm/mikro-orm/blob/master/packages/core/src/platforms/Platform.ts#L224
You could also try to monkey patch it instead of extending the driver. We can try to expose this via configuration.

I've noticed that there isn't a single mention of Types returning promises. Is it possible? If not, I can raise another issue for this matter plus I don't think it would be that difficult to achieve since the core should run in an asynchronous context anyway.

I don't plan to support async custom types, this would require making many methods async, including things like em.create/assign/map, pretty much everything would need to be async. Huge breaking change, and probably also huge performance penalty (as we would need to await every single hydration of every single property - we use mapped types internally for all props). Mapped types need to be fast, this feels like you want to use a wrong tool for the problem you are trying to solve (which you haven't really described btw). If you need async, use hooks/event subscribers. Event subscribers can be even created via some DI containers and registered dynamically, if you need to work with some dependencies, that seems to be the right tool for the job.

@B4nan oh! thanks for the advice!
I've been playing with the Driver/Platform and it seems to work great.
The reason why I need all this is because I have an entity that stores an Stripe object with all the associated data. The thing is that every time I need to manipulate this entity, I need to load the Stripe object from the API so I though on making it more transparent by allowing it to "store" the object to the database by storing its id and seamingly retrieving it when the entity is loaded thus making the work with those entities more transparent.
This is also the reason why I need the custom Type to accept an instance created from the DIC.
I understand what you said about awaiting for the promises to complete, it makes sense. I still think there are some use cases for this but I guess they are a bit of an edge case if nobody else really needs it.
I'll definitely take a look at the subscribers but, otherwise, I'll see if I can work with Promises as parameter types.
Anyway, thanks for your help!


feat(docs): Aws Resource Guide

Description
Adds a section on how to contribute collecting AWS Resources
To-Dos

[x] Format with yarn format
[x] Lint with yarn lint
[x] Build successfully with yarn build

Code of Conduct
By submitting this pull request, I agree to follow the code of conduct.

@TheCatLady

I will also push some edits to your new doc, but here are some comments FYI

Please do! I have no idea what I'm doing 😆

Please do! I have no idea what I'm doing 😆

No worries, I can take over from here :)

Thanks! Merged the page to get the link. Please create a separate PR for any outstanding items.


Develop branch

Hi Garrett,
Would be a good idea to have a develop (or more, see git flow) branch(es), so the master branch will be always clean and stable.
-Mauro

Hi Mauro,
I'm actually considering the master branch as the dev branch currently.  Let's use the releases as the tested stable versions; https://github.com/grimmdude/MidiWriterJS/releases  I will create a new release with our latest changes.
I'll make a note in the README so people viewing the repo understand this.
-Garrett

Nice, no matter how =) just tell us how to help you and this library! Great work Garrett!
-Mauro


Add the following Ebooks websites

PDFdrive PDF Drive is your search engine for PDF files. No annoying ads, no download limits
Mobilism Forum large collection of ebooks
Memory of the world A new website containing a lot of books

PDFdrive, Memory of the world is already added to https://github.com/Igglybuff/awesome-piracy#ebooks.


Conversion bug attempting to convert 1.21.3 world

Chunker Version
1.4.0-main-86becbf
Input World Version
1.21.3
Output World Version
N/A
Platform / Operating System
win32-x64-10.0.22631
Issue Description
Error Displayed: The backend process was killed unexpectedly.
Crashed before I could even select the desired world version into which to convert

If you're able to provide the following so we can look further into the issue:

Can you send a copy of your main.log from %APPDATA%/chunker-electron/logs, you'll want to put that path into Explorer / Run dialog (Windows Key + R)
The world if possible or a world that produces the same error, you can also email it to<EMAIL_ADDRESS>

I looked through your logs and seeing this:
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: no awt in system library path: C:\Users\XXXX\AppData\Local\Temp\XXXX\resources\chunker-cli\runtime\bin [in thread "Task Processor 0"]
	at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
	at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.base/java.lang.System.loadLibrary(Unknown Source)
	at java.desktop/java.awt.image.ColorModel$1.run(Unknown Source)
	at java.desktop/java.awt.image.ColorModel$1.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.desktop/java.awt.image.ColorModel.loadLibraries(Unknown Source)
	at java.desktop/java.awt.image.ColorModel.<clinit>(Unknown Source)
	at java.desktop/java.awt.image.BufferedImage.<clinit>(Unknown Source)
	... 9 more

It seems like maybe Chunker didn't extract properly when you ran the exe, have you tried closing & reopening it? Alternatively you can try the windows .zip version from the releases page.
I unfortunately otherwise can't see anything obvious, have you tried other worlds?

Closing and reopening did allow me to extract correctly. Thank you.
On Wed, Nov 20, 2024 at 10:38 AM Myles @.***> wrote:

I looked through your logs and seeing this:
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: no awt in system library path: C:\Users\XXXX\AppData\Local\Temp\XXXX\resources\chunker-cli\runtime\bin [in thread "Task Processor 0"]
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
at java.base/java.lang.System.loadLibrary(Unknown Source)
at java.desktop/java.awt.image.ColorModel$1.run(Unknown Source)
at java.desktop/java.awt.image.ColorModel$1.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/java.awt.image.ColorModel.loadLibraries(Unknown Source)
at java.desktop/java.awt.image.ColorModel.(Unknown Source)
at java.desktop/java.awt.image.BufferedImage.(Unknown Source)
... 9 more
It seems like maybe Chunker didn't extract properly when you ran the exe,
have you tried closing & reopening it? Alternatively you can try the
windows .zip version from the releases page.
I unfortunately otherwise can't see anything obvious, have you tried other
worlds?
—
Reply to this email directly, view it on GitHub
https://github.com/HiveGamesOSS/Chunker/issues/138#issuecomment-2489070475,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3YRVKAJT2EDSOJSXQ2EDRD2BS3IPAVCNFSM6AAAAABSA2VEUWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBZGA3TANBXGU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Very short queries

Sending a query of length 0-1 (seems to depend on the libgen instance if 2 is enough- it is for the baked-in instance), errors out with
  File "/home/leonid/.local/lib/python3.9/site-packages/libgen_api/libgen_search.py", line 19, in search_title_filtered
    results = search_request.aggregate_request_data()
  File "/home/leonid/.local/lib/python3.9/site-packages/libgen_api/search_request.py", line 61, in aggregate_request_data
    information_table = soup.find_all("table")[2]
IndexError: list index out of range

Because such queries result in this page:

(Yes, the page contradicts itself. Even better, it does so in different ways depending on the instance).
In this case, the API should probably fail faster, and with a more helpful message.

Libgen won't let you query for less than 3 characters, this varies by source.


DownloadRawMessage method

Hi,
I am using the library to download old messages and archive them. So I use message.DownloadRawMessage() and get a string. However the string always seems to be converted into UTF-8. So when I use File.WriteAllText(Filename, string), all ISO8859 coded emails will get smashed up.
Any idea about workaround?

Actually I analysed the code and found that you use SendAndReceive from ImapBase-Class - which uses as default the "Encoding.UTF8" - however I am not exactly sure if some information may be lost when encoded from any codepage to UTF8. At least it looks like this for me. I am simple not able to get the very original datastream from my server out of the string returned by DownloadRawMessage. I propose to "overload" the method with a DownloadyRawByteMessage which should return a byte-Array. So message could be save without converting any data.


script works in terminal not as startup

I made a very simple script to open firefox as soon as I create a workspace.
#!/bin/bash

function handle {
 if [[ ${1:0:20}  == "createworkspace>>web" ]]; then
     firefox
 fi
}

socat - UNIX-CONNECT:/tmp/hypr/$(echo $HYPRLAND_INSTANCE_SIGNATURE)/.socket2.sock | while read  line; do handle $line; done

When I run it in the terminal, everything works fine. When I attach it to my config file in an exec command (exec=/home/eugenio/.config/hypr/hyprland_firefox.sh), it does not work. When I look if the pid that Hyprland set is active, I cannot seem to find it. Any ideas? Could it be something related to environment variables or to path? But what?
Thank you!

exec-once=sleep 2 && /home/eugenio/.config/hypr/hyprland_firefox.sh

Alas, it is not working. Not even if I put a delay of 20 seconds rather than 2.

oh wait, iirc, the HIS is not passed to execs. That might be an issue. Check if echo $HYPRLAND_INSTANCE_SIGNATURE returns the sig.

Mmmm not sure how I should check. If I check in a shell, then I get the value. The log does not say anything about it.

exec-once=echo $HYPRLAND_INSTANCE_SIGNATURE > ~/myfile.txt
?

Sorry, it has been a long week...
Anyway, the file has the proper value of HIS. So this rules out the script not working because of the environmental variable, right?

yeah. Huh, odd. Can you try to pipe the script itself into a file? See if it outputs any errors

That I had already tried with no luck. An empty file.
Now I tried a slightly modified script:
#!/bin/bash

function handle {
 if [[ ${1:0:20}  == "createworkspace>>web" ]]; then
     echo "2"
     firefox
 else
     echo "1"
 fi
}

socat - UNIX-CONNECT:/tmp/hypr/$(echo $HYPRLAND_INSTANCE_SIGNATURE)/.socket2.sock | while read  line;do handle $line; done

What I got - and I tried several times - was a log file with 22 1s. Always the same number.

That I had already tried with no luck. An empty file.
Now I tried a slightly modified script:
#!/bin/bash

function handle {
 if [[ ${1:0:20}  == "createworkspace>>web" ]]; then
     echo "2"
     firefox
 else
     echo "1"
 fi
}

socat - UNIX-CONNECT:/tmp/hypr/$(echo $HYPRLAND_INSTANCE_SIGNATURE)/.socket2.sock | while read  line;do handle $line; done

What I got - and I tried several times - was a log file with 22 1s. Always the same number.

What I got - and I tried several times - was a log file with 22 1s. Always the same number.

maybe try logging the actual provided value instead of a useless 1?  Again, if I start the script from the terminal everything works fine, if I set it as a startup script then it interrupts after opening hyprpaper and waybar (now I have 26 lines rather than 22 in the log file because I have two monitors).

I solved the issue. Socat was stopping because, apparently, it has a timeout of 0.5 seconds. So it was sufficient to add the option "-t 1000" to the socat command in the script to keep it working.


⚠ Thumbnails API Endpoint has degraded performance

In 655ce44, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1094 ms

Resolved: Thumbnails API Endpoint performance has improved in aa7aa1b after 7 minutes.


Can't use memberOf, is there an alternative way to check user by groups?

I have created a group by adding a file in bootstrap/ldif/group.ldif using
dn: cn=jenkins_admins,ou=groups,ou=developers,dc=domain,dc=com
changetype: add
cn: Jenkins Administrators
description: Staff members allowed to login to jenkins build system
member: uid=me,ou=users,ou=developers,dc=,dc=com
objectclass: groupOfNames
objectclass: top

I then run a query in phpLDAPadmin with this filter
(&(objectClass=posixAccount)(memberOf=cn=jenkins_admins,ou=groups,ou=developers,dc=domain,dc=com))

Showing no results.
I struggle getting the memberOf filter working, does anyone has some explanation to share?
Is there an alternative way to check user by groups?

You might need to change groupOfNames to groupOfUniqueNames.

I might add some more users in the futur in this group.
And that doesn't explain why the filter isn't working.

Solved, problem was that user has to be created before the group, otherwise user doesn't have the memberOf attribute


Moving to new user-notifications API of iOS 10+  due to conflict with  katzer/cordova-plugin-local-notification

Hi,
Please see a reference to an issue on the sister repository: https://github.com/katzer/cordova-plugin-local-notifications/issues/1311
on one of the last comments, there is a confirmation:

I can confirm that the 0.9.0-beta.1 (katzer/cordova-plugin-local-notifications) running with<EMAIL_ADDRESS>still conflict

Then, the owner, Katzer, explains the reason:

The blocker reason is because iOS supports 2 APIs for now. The deprecated API and the new user-notifications API since iOS 10+ however the OS does not allow to use them both together in one app.
The local-notification plugin uses the new API while the push plugin uses the deprecated API. With the result, that the OS only triggers callbacks for the new API.
The push plugin has to move to the new API for iOS 10+ otherwise the plugins cannot work side by side.

Is this transition to the new API has happened, or is it still a work to be done?

@macdonst : Any ETA on this? Meanwhile, can you suggest if there is a specific version that is stable when used in combination with local-notifications plugin?

it's not about being "stable" version.
this plugin still Uses the old API of iOS.
your only "option" is to move back to<EMAIL_ADDRESS>and lose support of iOS 10.

I have not had the time to look into it. Pull requests are always welcome though.

@macdonst This is a huge issue and in my opinion should be top priority. All Ionic apps can't use push notifications and local notifications together. If you could work with @Katzer (develops the local notifications plugin) to fix this issue, that would be awesome.

I've tried to use push-plugin master and local-notification-plugin beta 3, but it seems that there are still compatibility issues. When a user taps on a notification presented via local-notification-plugin, the didReceiveNotificationResponse on AppLocalNotifcation instance is called. Then it calls didReceiveNotificationResponse on _delegate. So far so good. What happens next is that instead of push-plugin's didReceiveNotificationResponse, the local-notification-plugin's didReceiveNotificationResponse implementation is called. This is equal to _delegate and I get BAD ACCESS exception as _delegate is not defined. I'll probably get around this manually, but it should be fixed before one can say that the plugins are compatible. If someone  has a fix for that, I'll appreciate any help.

As described here, the remaining issue for compatibility with katzer/cordova-plugin-local-notifications is that both katzer/cordova-plugin-local-notifications and this plugin are settings themselves as the delegate to the singleton UNUserNotificationCenter. Only one object can be set to the delegate property at a time.
This branch can enable the plugins to work together, but it's quite hacky and only works because this plugin is using AppDelegate as the UNUserNotificationCenter's delegate, and katzer/cordova-plugin-local-notifications is using an object called APPLocalNotification as the UNUserNotificationCenter's delegate. If katzer/cordova-plugin-local-notifications were ever changed to also use AppDelegate, then this solution would no longer work. I would not recommend merging this branch into master.

merrygobyebye
Still having trouble. Works fine when I get a push notifications. However when a local notification is triggered the app crashes. I am using cordova-plugin-local-notification 0.9.0-beta.3

merrygobyebye
I just downgraded to cordova-plugin-local-notification 0.9.0-beta.2 and it works. Need to check the deltas between those two version in how they handle the delegate

@umeshiyer, it seems that this pull request is what breaks it: https://github.com/katzer/cordova-plugin-local-notifications/pull/1514. Adding similar code to this plugin might work -- when I have time I'll give it a shot.

@merrygobyebye,
Got it working once I made mods similar to 1514.
Pardon my mistakes as I learned ObjectiveC along the way, just enough to understand the code a bit as I needed this fix.
The mods are listed below. However I still have one problem. When the app is in the foreground and I receive local notification, the Push Notification handler is called. I am able to process this within my app's controllers in javascript.
I pulling latest from #master.
Mods made two functions

In function:
(void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification.....

Add the following after  NSLog( @"NotificationCenter Handle push from foreground" );
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center.delegate userNotificationCenter:center
          didReceiveNotificationResponse:response
            withCompletionHandler:completionHandler];

2.In function:
(void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse.....
Add the following after  NSLog(@"Push Plugin didReceiveNotificationResponse: actionIdentifier %@, notification: %@", response.actionIdentifier, response.notification.request.content.userInfo);
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center.delegate userNotificationCenter:center
didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];

@umeshiyer, try it with the changes I've made in the pull request that I've just opened above. It seems to be working for me.

@merrygobyebye
Just tried and it Works great! Thanks. I'll keep using this and look forward for the pull request to go through.

@merrygobyebye Is this a permanent fix?

@albertleao, it's hard to imagine a software fix that is truly permanent. It would only be permanent if:

Apple were never to change its UNUserNotificationCenter API again.
katzer/cordova-plugin-local-notifications were never to adopt a different solution to this problem.

It will, however, be "permanent" for the 0.9.0-beta.3 release of katzer/cordova-plugin-local-notifications and all current versions of iOS 10+. If every plugin that uses the UNUserNotificationCenter adopts this same solution, then there's a good chance that this solution will stick around for a while.

I have two projects, one empty just to test notifications (works ok) and a large project with a lot of plugins (on('notification') not called on coldstart).
I have removed  katzer/cordova-plugin-local-notification from the large project. The problem still happens.
I assume some other plugin is doing the same thing as  katzer/cordova-plugin-local-notification.How can I know which one is it?
Thank you to all people that contribute here, it took me a long time to find any kind of clue of what may be causing that problem.

hello guys, any news on the compatibility of the 2 plugins?

When will this be updated with the new API? :(

This would be a huge improvement. Any updates on this?

https://www.quora.com/What-do-mobile-developers-think-of-Ionic-framework
The first answer of Efrajim Canuck in the article above, true, true.


[2.x] Merge all 1.10.x changes into 2.x

Some 1.10.x changes are not in 2.x. Either via merge or individual cherry-pick we need to move all these changes to 2.x branch.

Closed by https://github.com/sbt/sbt/pull/7950


ApiPort reports TypeInfo.IsClass is not supported in .NET 4.5

Wrote some small test code
TypeInfo info = IntrospectionExtensions.GetTypeInfo(GetType());
IsClass = info.IsClass;
For this ApiPort reports that TypeInfo.IsClass is not supported in .NET 4.5, but supported in .NET Core.
I can run this code just fine in .NET 4.5 though.

Thanks @danielturcanu. We know there are some issues around Type/TypeInfo (see #113) and the way we can analyze them via IL. This may be related, but I'll take a look.

Yes, this is related. We think we have a workaround, but we'll track that in the original issue


[💡 FEATURE REQUEST]: Consume any payload (not only Jobs structured) from the Jobs drivers

Plugin
JOBS
I have an idea!
At the moment, job drivers consumers are able to accept only the Jobs structures (eg payloads accepted from the Jobs push RPC call).
I propose to create a set of <driver_name>_raw drivers which would be able to consume any payload, pack it into the Jobs structure (only for the PHP worker compatibility), and send it to the workers.
Basically, the raw payload will be in the job's payload field and the ID field will be autogenerated.

Good idea.
Wouldn't it make sense to introduce a new bool config option called raw to the existing drivers?
That way you wouldn't need to introduce the *_raw drivers.

Hey @steffendietz 😃 I just don't want to have a complicated logic inside the drivers. From my POV handling raw payloads lead to significant changes inside the driver and might be different payloads (RPC and internal) since we don't use the existing Jobs structures.
But, for sure, I have both options in my mind: a separate driver or some switch inside. This question is: how big will the changes be?

Ok, it'll be planned for the 2.11 version. Thanks for the feedback.

It would also be useful to give the opportunity to make several connections for jobs. For example, RabbitMQ's vhost for internal bus and vhost for reading external data without headers in messages.

@Colomix You may start a second RR instance to have a second connection.

The feature will be in v2.10.1. The name of this option will be consume_all. If set to true and if RR was unsuccessful in parsing the incoming payload (RR_ID is absent, etc). It'll create a Job, based only on the incoming headers and body. The Jobname andpipelinefor this case will bededuced_by_rr`.

Also, the message will be ack-ed/nack-ed as the usual message and the message ID will be unique.

consume_all option will be available for the amqp, sqs, beanstalk, and nats drivers.

The feature will be in v2.10.1. The name of this option will be consume_all. If set to true and if RR was unsuccessful in parsing the incoming payload (RR_ID is absent, etc). It'll create a Job, based only on the incoming headers and body. The Job name and pipeline for this case will be deduced_by_rr.

Saved my week. Thanks a lot!


Don't type-erase the CompletionHandler

This code is incorrect:
    boost::asio::async_completion<CompletionToken, write_signature> c(token);
    do_write(std::move(c.completion_handler));

The problem is that do_write receives the handler as a std::function, which type-erases the handler. Later on, you call boost::asio::post with this object. Since the function object is typed-erased, it loses the associated allocator and more importantly the associated executor. The consequence is that when a user writes:
  auto const bytes_transferred =
    utp_sock.async_write_some(
      buffers,
      boost::asio::bind_executor(strand_, my_handler));

The wrapper returned by bind_executor loses its type information when it is stored in a function object. Then later on when you call post, it doesn't go through the strand.
This is going to sound painful, but if you want your library to work nicely with Networking TS / Asio (and I think you have really nice library here, so you should want this) then you are going to have to do the following:

Remove all use of std::function (and never use it again)
Move everything in the .cpp files into header files (this library must be header-only to work right)
Rewrite your asynchronous operations (connect, read some, write some) as composed operations

These tutorials should help:
https://www.boost.org/doc/libs/1_69_0/libs/beast/doc/html/beast/using_io/writing_composed_operations.html
https://www.boost.org/doc/libs/1_69_0/libs/beast/doc/html/beast/using_io/example_detect_ssl.html
You might also consider studying the implementation of asio and beast. I can help with that by offering pointers and answering questions.

Is this not a duplicate of the issue #1? I'm happy to delete the first one in favor of this one as this one has a better explanation.

Yes, this addresses #1

I believe this is issue is now fixed, please do reopen it if you think otherwise.
However I took a different approach than the one proposed above. Although I did get rid of std::function I'm having trouble agreeing that it's such an evil. I believe if I took care of the executor and the allocator, using std::function wouldn't have been a problem.
I also did not move everything from cpp files to hpp files. The thing is, I use libutp which isn't header only and so I do need to create a shared or a static library in any case. One of my other goals was to not expose any of the libutp header files to the user and also to not mess with the libutp sources by having to move the header files somewhere into asio-utp/include.

You might also consider studying the implementation of asio and beast. I can help with that by offering pointers and answering questions.

Yes, I do this and it has served me quite well in the past. The thing is that only until very recently I've only been using the pre 1.47 asio API (the one without executors) and I also haven't used multi-threaded asio yet so did have the need to use strands either. Thus it is very valuable to me to have your (and the [kinds folkds from reddit) feedback in the issues so far.
The way I (believe I) fixed it, was to have created a custom handler structure which internally holds the non-type-erased completion handler, the executor and the allocator as well. It doesn't overload the operator() because I always either need to post it or dispatch it to the correct executor and allocator, which now is the case using handler::post or handler::dispatch.

I'm vexed with a similar problem and am glad to have stumbled upon this issue report. I think Asio should provide a type-erased handler wrapper (with small buffer optimization) to cater to networking libraries that do not wish to be header-only. Some of us care about compile times and want to be able to apply the Pimpl idiom.

https://github.com/chriskohlhoff/asio/issues/1100

My opinion is that the type-erasure needs to happen at a higher level, at the application level. That is, the application places inside a translation unit all of the calls to Asio, and then exposes via header file its own abstraction that includes type-erasure. Raw sockets and streams should not be exposed to user-code in headers. This eliminates the need for a type-erased handler in the first place. (or type-erased buffer sequence, or type-erased stream, and so on).
This implies that a particular executor might be imposed on the caller if they are submitting callbacks using say, std::function.

@vinniefalco The type-erased handler wrappers I propose would be for high-level networking libraries built on top of Asio or Beast. It would provide an additional tool available to library writers who prefer that their library be compilable.


parser ignores router with middleware

First of all, greate project. I have problems in parsing when I have routers like this:
// does not work
const Router = require('express').Router;
const route = new Router();
route.use(middleware);
...

The library not recognizes the route anymore. If I comment this out, than there is part will be showing up correctly in swagger.
// works
const Router = require('express').Router;
const route = new Router();
// route.use(middleware);
...

Hi @MonksterFX. I tried to reproduce your problem here, but I couldn't. Can you submit a simple project that reproduces this problem and post the link here? This makes it easier to identify the problem.

Hi @MonksterFX. I tried to reproduce your problem here, but I couldn't. Can you submit a simple project that reproduces this problem and post the link here? This makes it easier to identify the problem.

@davibaltar Thanks a lot for the fast reply. Here a minimal working example to reproduce this (My Project is huge so I made a demo)
index.js
const express = require('express');
const router = require('./router');
const app = express();

app.get('/main', (req, res, next) => {
  return res.send('hello world');
});

app.use('/user', router);

app.listen(5656, () => {
  console.log('Server is running...');
});

router.js
const express = require('express');
const router = express.Router();

function middlewareTest1(req, res, next) {
  next();
}

/* Critical Line */
router.use(middlewareTest1); // comment this line and it works

router.get('/sub', (req, res, next) => {
  res.send('Hello User');
});

module.exports = router;

@davibaltar Thanks a lot for the fast reply. Here a minimal working example to reproduce this (My Project is huge so I made a demo)
index.js
const express = require('express');
const router = require('./router');
const app = express();

app.get('/main', (req, res, next) => {
  return res.send('hello world');
});

app.use('/user', router);

app.listen(5656, () => {
  console.log('Server is running...');
});

router.js
const express = require('express');
const router = express.Router();

function middlewareTest1(req, res, next) {
  next();
}

/* Critical Line */
router.use(middlewareTest1); // comment this line and it works

router.get('/sub', (req, res, next) => {
  res.send('Hello User');
});

module.exports = router;

Great @MonksterFX! Using your project I believe I have identified the bug. I published now a version (v2.3.3) with this fix. Test on your project, and give me feedback if it worked, please.

Great @MonksterFX! Using your project I believe I have identified the bug. I published now a version (v2.3.3) with this fix. Test on your project, and give me feedback if it worked, please.

Thanks a lot. Brought up another issue, but I have to test it tomorrow. I saw in your code you are doing a lot with textual analysis. Are you planing to switch to express layer model?

Thanks a lot. Brought up another issue, but I have to test it tomorrow. I saw in your code you are doing a lot with textual analysis. Are you planing to switch to express layer model?

Ok @MonksterFX. You can bring up the issue. Today, maybe I will submit another version with more corrections. About the layer, the initial idea of the project is to be compatible with the most common frameworks, but I started with Express. In the future, the intention is to integrate other frameworks to it.

Ok @MonksterFX. You can bring up the issue. Today, maybe I will submit another version with more corrections. About the layer, the initial idea of the project is to be compatible with the most common frameworks, but I started with Express. In the future, the intention is to integrate other frameworks to it.


Fixed Dutch translation of fontsize plugin

We recently started using Trumbowyg as an HTML editor and noticed some mistakes in the Dutch translation of the fontsize plugin.

Thank you )


bug: assertion failed: offset < data_chunk.capacity() in filter executor

Describe the bug
panic found in customer cluster: assertion failed: offset < data_chunk.capacity(). Related sql:
SELECT  timestamp, event_type, event_id, connector_config_id, app_session_id, content_session_id, latitude ,longitude ,city ,country,country_code ,region,region_code ,postal_code,district ,continent ,continent_code ,timezone_offset ,timezone_name
FROM xxx
WHERE
rw_kafka_timestamp  > now() - INTERVAL '1 MINUTE'
AND connector_config_id = 'yyy'
LIMIT 1000

Error message/log
thread 'risingwave-batch-tasks' panicked at 'assertion failed: offset < data_chunk.capacity()', src/common/src/util/chunk_coalesce.rs:286:9
...
  21:     0x5640edcbc67c - risingwave_common::util::chunk_coalesce::SlicedDataChunk::with_offset_checked::hf1886724cb59333d
                               at /risingwave/src/common/src/util/chunk_coalesce.rs:286:9
  22:     0x5640edcbc67c - risingwave_common::util::chunk_coalesce::SlicedDataChunk::new_checked::h2245da4073b854c5
                               at /risingwave/src/common/src/util/chunk_coalesce.rs:282:9
  23:     0x5640edcbc67c - risingwave_common::util::chunk_coalesce::DataChunkBuilder::append_chunk::h356f6e0175a76e03
                               at /risingwave/src/common/src/util/chunk_coalesce.rs:129:29
  24:     0x5640edcbc67c - risingwave_batch::executor::filter::FilterExecutor::do_execute::{{closure}}::ha005b63488da5889
                               at /risingwave/src/batch/src/executor/filter.rs:66:21

To Reproduce
Unreproducible
Expected behavior
No panic.
How did you deploy RisingWave?
Deployed in their own cloud with our k8s operator.
The version of RisingWave
v1.2.0
Additional context
No response

reproduce
CREATE SOURCE clicks (
    click_id INTEGER,
    user_id INTEGER,
    created_at TIMESTAMP,
) WITH (
    connector = 'kafka',
    topic = 'temp',
    properties.bootstrap.server = 'localhost:29092',
    kafka.scan.startup.mode = 'earliest'
)  FORMAT PLAIN ENCODE JSON;

create view vv as select click_id, user_id, _rw_kafka_timestamp as rw_kafka_timestamp from clicks;

SELECT * FROM vv WHERE rw_kafka_timestamp > now() - INTERVAL '10' second and user_id=123 limit 1000;

Related #10500 . It turns out to be caused by query on source.


[BACKLOG-23369] - changes to allow combos in tableview to get their v…

…als dynamically based on state inside the step

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  ui/src/main/java/org/pentaho/di/ui/core/widget/ColumnInfo.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.gpload.GPLoadMeta

Branch Change: -0.9% :small_red_triangle_down:
Complexity Change: -0.8% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:


Using python for integration without UI

I am working on business use case where I have to integrate with Xero for BI reporting purposes. I was able to follow the instructions on the github page to set it up for myself but the integration is UI based.
I could use the instructions given on following page to generate all necessary tokens for with non-UI integrations:
https://developer.xero.com/documentation/api-guides/machine-2-machine
But now I am struggling with tweaking the python SDK to use as a back-end integration where I could just consume the data from Xero without any UI.
It would be great help if there are any suggestions regarding using python SDK for without UI integration.
Pardon my lack of expertise in python to achieve the same if it was very straight forward. Being a BI profession this is only SDK I could understand and make it work for Xero integration.

Hey @nikhilfsoft could add a bit more info on where/how you're stuck so that I can better assist you with your use case?

Hi @RettBehrens
So basically my aim is to have a python script which runs everyday through scheduler to fire a set of API to get responses for some KPIs. So the python SDK in its current form does not help much as it requires an active http session.
Here are the things I have done so far:

Configure xero-python-oauth2-starter SDK to work with my Xero account.
I was able add additional menu options to call APIs for accounts and journals. (Basically I need accounts and journals for my KPIs). But so far all works out only through a http page. What I understand from code that there is active session object which holds all necessary tokens for APIs to work.
Next I followed instructions on link : https://developer.xero.com/documentation/api-guides/machine-2-machine
I have now successfully generated access token, refresh token and identity token for offline and back-end API calls.

Now I was trying to figure out how to use these tokens to tweak the python SDK so that I can have a stand-alone script to call APIs.
To achieve that I started to reverse engineer to API calls. For example:
Here is call to get invoices in SDK:
    invoices = accounting_api.get_invoices(         xero_tenant_id, statuses=["DRAFT", "SUBMITTED"]     )
The call requires xero_tenant_id which is returned by function get_xero_tenant_id(). If I get into function get_xero_tenant_id() the very step is
token = obtain_xero_oauth2_token()
Now this is where I am stuck. Now I am not sure how can I use the tokens I generated in step 3 above and when let run the function as is without http page I get following error:
Message=Working outside of request context.
This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.
As mentioned I have very limited expertise in python so not sure if my approach is right here or if I can use the SDK for stand-alone API calls. Happy to share more details if needed.

Ah, ok. So we use the session in lieu of a database in our sample apps. To clarify, the SDK itself does not require session to my knowledge, but the sample apps do. obtain_xero_oauth2_token() could just as easily be rewritten to get the tokens from a db in your use case. Hope this helps to get you unstuck!

Thanks for that. I got some success but I believe my code still not that refined and optimized. I will put up my code here for a quick review once it is in some decent shape.


Emit json.Marshaller/Unmarshaller implementations using jsonpb

Is your feature request related to a problem? Please describe.
We are using protobufs heavily internally for systems that require JSON-compatible wire formats. We typically embed proto.Message implementations within standard Go structs which are then JSON-encoded using encoding/json. This doesn't work with most protobuf messages for the same reasons jsonpb was created in the first place.
The json-encoding is dictated by a 3rd party system we don't control. It provides hooks for a custom encoder/decoder but we'd like to avoid changing something that core to the system if possible.
Describe the solution you'd like
What we'd like is to have protoc-gen-go emit json.Marshaler/Unmarshaler implementations that use jsonpb so that if you use encoding/json it automatically emits the correct format.
This can potentially be implemented as a built-in plugin so it is optional with no backwards compatibility issues. Then all we have to do is plugins=jsonpb or something. That would be great too.
This is particularly important given the problem statement above where we're embedding concrete proto.Message types within other Go structs and we'd like to encode them all as JSON.
Describe alternatives you've considered
A few things:

We originally switched to []byte in the Go structs and did the jsonpb-roundtrip ourself. This results in significant boilerplate and encouraged us to look at other solutions.
We then planned to have two formats: either pure Go (encoding/json) or pure proto.Message (struct defined in proto) then using a type switch to encode/decode using only encoding/json or jsonpb. This was in progress until the next...
We've written our own protoc- binary that emits the json.Marshaler/Unmarshaler implementation for every message to use jsonpb.

I'd love to implement a protoc-gen-go plugin but that requires it to be compiled in as far as I can tell and we'd like to not maintain a fork!
Additional context
jsonpb.Marshaler exposes a number of configurables. Right now we're just using the defaults, but we plan on exposing proto annotations to control these by package, file, message, etc. This would probably be important for this too.

Duplicate of #256 for protoc-gen-go to provide this feature as an option.

This can potentially be implemented as a built-in plugin so it is optional with no backwards compatibility issues. Then all we have to do is plugins=jsonpb or something.

The idea of a separate generate to add these methods is interesting.
The concept of a protoc-gen-go "plugin" is going away in v2 as it is not maintainable since there lacks any specified agreement between the main generator and the plugin on how to cooperate and not step on each others toes. In v2, we will instead be exposing a compiler/protogen, which makes it easy to write plugins to protoc itself.
As an experiment, I quickly wrote a protoc plugin that generates the {Marshal,Unmarshal}JSON methods: https://golang.org/cl/189918

jsonpb.Marshaler exposes a number of configurables. Right now we're just using the defaults, but we plan on exposing proto annotations to control these by package, file, message, etc. This would probably be important for this too.

If we generate the MarshalJSON and UnmarshalJSON methods. How would that work with custom options? Those methods have no ability to recursively plumb custom options downwards.

Sorry I searched and still didn't find the duplicate! I'll comment there.


Substitute concat-stream for bl.

BufferList (bl) has the interface of both Streams and Node Buffers, allowing it to be a simple and great replacement for concat-stream. This simplifies the logic required for concatenating stdout and stderr from the spawned Java command.
If the spawned Java command exited without writing any data to stdout, the callback would be called with "result" still undefined. The check of stdout.length > 0 in "run" would cause an exception, as "stdout" would be undefined.
/build/node_modules/gulp-closure/node_modules/closurecompiler/ClosureCompiler.js:281
                if (stdout.length > 0 || stderr.length > 0) { // If we get out
                          ^
TypeError: Cannot read property 'length' of undefined
    at /build/node_modules/gulp-closure/node_modules/closurecompiler/ClosureCompiler.js:281:27
    at ChildProcess.<anonymous> (/build/node_modules/gulp-closure/node_modules/closurecompiler/ClosureCompiler.js:274:15)
    at ChildProcess.emit (events.js:98:17)
    at Process.ChildProcess._handle.onexit (child_process.js:810:12)

This, of course, doesn't resolve whatever situation is causing Java to exit, but will at least give the opportunity for a user of this module to log stderr.

+1

@dcodeIO any chance of getting a version bump on npm?


Slow debug startUp

We already had the discussion here:
https://discourse.bsframework.io/t/why-does-it-take-so-long-to-open-the-window/65/8
I had some time to dig a little bit deeper into the code and as I already mentioned, there are some inefficient code parts. You do always create a temporary stack for every iteration on mRTTIDerivedClasses containers. I did some testings and were able to reduce the performance hit in those functions dramatically via a plain std::vector. It becomes even better if you simply use recursion.
During the research I asked myself if it wouldn't be better to sort the mRTTIDerivedClasses-containers to be able to perform binary instead of linear searches.
For the testing I added a SkipList-class implementation to the project and was finally able to startUp the engine in less than 11 sec (from previous over 35 sec). The disadvantage on this kind of data structure (under the hood it's simply a sorted std::vector) is the performance hit during insertion, but it will be very efficient for searching.
Sure, in release mode the performance gains are less but it shouldn't hurt either.
So, my questions is, what's your opinion about that topic? Would you like to see the SkipList solution or do you already have other plans to reduce the startUp time?

Hi. I've already modified that code locally do use std::unordered_map and fully gotten rid of the recursion, the map now holds all type entries for lookup.
I'm not sure how it compares with binary search, but I believe it should be much faster than the original approach in any case. If you can verify binary search approach is faster I can use that instead (although I'd prefer to use std::sort and std::binary_search on a std::vector instead of a new container type).

Hey,
Thanks for your work. Indeed the new version is a lot faster than the previous one. I was able to start in less than 11 seconds. Locally I exchanged the type of mAllRTTITypes with a SkipList and was able to gain a ~2 second speedup again.
Btw, internally the SkipList uses a std::vector with std::sort, std::lower_bound, std::upper_bound and so on. You can have a look at my implementation here: https://github.com/DNKpp/SkipList/blob/master/SkipList.hpp


fix mmdetection/edit/master/configs/fpg/README.md box AP error

Modification
fix mmdetection/edit/master/configs/fpg/README.md box AP error.
origin

Method
Neck
Lr schd
Mem (GB)
Inf time (fps)
box AP
mask AP
Config
Download

Mask R-CNN
FPN
50e
23.2
-
49.6
35.6
config
model | log

new

Method
Neck
Lr schd
Mem (GB)
Inf time (fps)
box AP
mask AP
Config
Download

Mask R-CNN
FPN
50e
23.2
-
39.6
35.6
config
model | log

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


cleanup: rename instances of 'observer' to 'callbacks'

Description: I've come to be of the opinion that 'observer' is an unfortunate and confusing name for the objects containing our callbacks:

In Envoy itself these are called callbacks.
In our filter proposal we're calling these callbacks.
These entities have deviated from the reactive pattern from which they take their namesake.
Risk Level: Low
Testing: CI

Signed-off-by: Mike Schore<EMAIL_ADDRESS>

This is really a nit for myself, since I named it "Observer" in the first place. But the discrepancy from Envoy has been bothering me, and the deviation from the pure Reactive pattern has also been bothering me. I think this is clearer. I also think it will only get harder to change as time goes on.


Validate topology updates w.r.t. DS required capabilities

What does this PR (Pull Request) do?
For every DS assigned to the topology, ensure that at least one server
in each of the topology's cachegroups meets the DS's required
capabilities.
Which Traffic Control components are affected by this PR?

Traffic Ops

What is the best way to verify this PR?
Review the new test case, decide whether it's sufficient, and make sure the checks pass.
The following criteria are ALL met by this PR

[x] This PR includes tests
[x] validation, no docs necessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Oh wait, the Mid server just was not on CDN 2. Validation works when the Mid is on CDN 2.


Impossible to set 'Wrap text' Format for TEXT cells

Hi again.
We have some description cells, with a very large description,  that need to set as 'Wrap text'.
We have options for DATE an NUMBERS but not for text.
function makeCellStyle (
p_ctxId       in ctxHandle
, p_numFmtCode  in varchar2 default null
, p_font        in CT_Font default null
, p_fill        in CT_Fill default null
, p_border      in CT_Border default null
, p_alignment   in CT_CellAlignment default null
, p_wrap_text      in boolean default false
)
or in
function makeAlignment (
p_horizontal  in varchar2 default null
, p_vertical    in varchar2 default null
, p_wrap_text      in boolean default null
)

I think this is to put in Pull request but :
"There aren’t any open pull requests."

Fixed in v2.3


STL and STEP file icons

It seems that the file icon is not showing up in the tab title for STL and STEP files.
On a separate note, it would probably make sense to not use the JupyterCAD logo for these file types, but use a different one for each.

https://www.flaticon.com/free-icon/stl_9811308?term=stl+file&page=1&position=10&origin=search&related_id=9811308
https://www.flaticon.com/free-icon/stp_9811307?term=stp+file&page=1&position=3&origin=search&related_id=9811307
These icons look good

Here they are :

Nice, thanks @o314! Did you make those yourself?
Only comment: the round corners are not the same for the underlying file icon and the filename label:

Otherwise it looks great!

@o314 @martinRenou thank you for your work on the icon.
I have a comment on the design: I think that it would look better with a sans-serif font for STL and STP.

OK. The font was not the good one since i have not found any probing setup in jupyter repo.
Of course, this has to be reworked - however this proto font was already sans serif.
Here is a file with variations on the font ; the formers are more cad oriented ; the later more commons.
If you 've got a jupyter specific one. point it up, i will brush up the icons
Last line is a more comprehensive rework, i finally prefer.
The current design tends to be overwhelmed with details . So i merge all backs layers into a unique sheet, common in cad
To reinforce the cad environment again, i've added a symbol that can be either understood as a drawing board or as a crane, so it encompasses the whole lifecycle of cad. The back layer is similar to the jupyter commons (same stroke, stroke width, dims) but not exactly due to the merge of back layers.

jupytercad icons, curved.pdf
The display is a rasterized shot, the file is a vectorized one.
The design file is not svg. Tell me what is your choice, i will provide u the corresponding svg file.

Super duper @o314, these looks awesome.
I like almost all of them. Hence don't have a strong opinion on any single design, tho i think the below two rows are not going to align well with the minimal design :)
I'll leave it up on others to choose any one. So Good :)

Thanks a lot @o314 that's very much appreciated! Same opinion as @arjxn-py on this, they all look good and I also believe the last two rows don't match the rest of the JupyterLab design.

I agree with @martinRenou that the onces matchings the JupyterLab design would be a better choice. Regarding the choice of font, I would go for a thick one because the thin versions may not be very readable at small sizes.

ok. the 3rd and 4th columns are the declension for the bold font of the same family when available

@o314 do you have an svg version of your icons handy?

Here are the ones that have been vectorized from fira mono bold

This is fixed! Thanks @o314 for the icons, you've been credited for this :)

You're welcome !
Thanks for your work and kind words too
In english, from Lyon


Wrong download link

The download link on the github start page points to
http://phphttpclient.com/httpful.phar
should be
http://phphttpclient.com/downloads/httpful.phar

See #212.


FIX: Update broken hyperlink to CONTRIBUTING.md

Change Description
This PR contains a simple fix to broken hyperlink found in the docs. The old link points to CONTRIBUTING.MD and the fix points to CONTRIBUTING.md.
Issue reference

Checklist

[x] I have reviewed the contribution guidelines
[ ] I have signed the CLA (if required)
[ ] My code includes unit tests
[ ] All unit tests and lint checks pass locally
[x] My PR contains documentation updates / additions if required

Thanks! approved


WIP: misktest start service true always

This PR is for issue: https://github.com/cashapp/misk/issues/1514
This is deprecating the startService value in MiskTest.
Tests in Misk that are annotated with @MiskTest(startService = X) have not been altered.  That can be done in a followup PR to avoid further obscuring this one.

Not going to take this one through - the impact downstream is too much.


add strict verify option

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.24%. Comparing base (8cefaf1) to head (2fa5dae).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
+ Coverage   87.71%   88.24%   +0.52%
==========================================
  Files          14       14
  Lines        1058     1080      +22
==========================================
+ Hits          928      953      +25
+ Misses        107      105       -2
+ Partials       23       22       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore: update sdk version, yaru and add CI and release workflows

Updated:

sdk version
dependencies including...
... yaru
remove dold yaru libs
fixed analyzer warnings
added todo for dead code I don't know if it is needed

Added:

CI workflow
release workflow

@HrX03 you only marked some of the changes dart fix --apply did to constructor placements. do you want me to move them all back? 😮💨

@HrX03 you only marked some of the changes dart fix --apply did to constructor placements. do you want me to move them all back? 😮💨

If possible yes, sorry!!

the problem is that the default behaviour of code generated by flutter places the constructor first
https://github.com/user-attachments/assets/10bd451d-4dd4-45a5-9bd5-c9dc5ee84bf6
don't you think it makes sense to follow flutter for common lints and practices for a flutter app?

Don't really like that behaviour either but I see your point, don't know, I'd still prefer to have it the other way around but even the way it is should be okay either way. The only thing I ask then is to have a new line between the constructor and the fields, I'll accept the pr with the new order

Ping pingy @HrX03


Extra documentation and notebooks

Add notebooks on:

changing the mesh
changing solver options
thermal models
simulation vs "the long way"
basic DFN /  show DFN in dimensional form and give parameter names (strings)

1 & 2 will show how to do a graphical convergence study (just showing how to plot the solutions for different numbers mesh points etc) and encourage users to do a proper convergence study when using pybamm.
3 will give details of the governing equation used for each thermal option, along with the parameters used (in particular we need to explain the different cooling coefficients used in pouch/arbitrary geometries)
4 - I think we should simplify most/all existing examples to use the simulation class as it is much more straightforward and should be the preferred way to do things in most cases. then we can have a notebook showing using simulation and "the long way" so users know both approaches exist
5 - I think lots of people who are less familiar with modelling are likely to jump in with a basic model, and be more comfortable with dimensional models. We could use this notebook to give the basic DFN model in dimensional form and give the string names for all variables as used in pybamm. This way people can look here for the most common parameter names and get a really clear exposition of the model being solved. We can point out that the basic DFN is the same as using just DFN with the default options, and that they are both non-dimensionalalised using the scales in REF/table
Any others??

points 1-4 addressed in PR #1131

Having left this for a long time, I think having a notebook that gives all parameter names and symbols will potentially hard to maintain. We already give the references in the DFN and SPM notebooks. Once we can print equations nicely (#722) it will be clear for people to see the equations and parameters, so a notebook explaining this will be redundant.
I want to add an extra notebook to the Creating Models series that shows how to couple electrode and particle domains, then I will close this issue.


Naming Convention

In our wiki we call the service, that processes the information 'processing'. But the folder in the repository is called 'processor'.
Same goes for 'GUI' -> 'Frontend'

[ ] The Services have a name that is used in both coding and wiki

Additionaly:
Do we care if UpperCamelCase / lowerCamelCase for the namings in the project?


Recommended way to integrate services into the local nhost stack

Problem
I want to add an additional service to my stack, e.g. like typesense. Basically a single docker container, that the browser client will point to.
Right now, I start the nhost stack with nhost dev and then I have to run the other service in another terminal window. I would like to start them all together.
But how to e.g. connect the lambda functions to the other service is unclear.
Or, is it recommended to just copy and modify an existing docker-compose stack like this? https://github.com/nhost/nhost/blob/main/examples/docker-compose/docker-compose.yaml
Random ideas

maybe modify the autogenerated docker-compose file the nhost cli creates.
have the ability to start the nhost stack deamonized, and if you run nhost dev with an already running stack, it just "plugs into" that one. With the deamonized nhost stack, then my startup script can start my custom services.

I guess I can just background the nhost dev process?
But this doesn't solve the problem of how to automatically configure my lambda functions to connect to another service.

So maybe this is a case of user-defined tooling, but curious if anyone else encounters this requirement, and what solutions others have come up with.

@dionjwa we don't support "bring your own container" right now but it is something we have under our radar. Your workaround seems about right.
Is this something you want to have available only during development? Would love to know more about what you are doing.

@nunopato happy to clarify
I am adding typesense to my app. typesense provides a really nice API for fast, indexed search, it's open source, and they have a very reasonable paid cloud option.
The data flow is:

User creates/updates/deletes a document in the db
Hasura event fires, calling an nhost lambda with the payload
nhost lambda then inserts/updates/deletes the typesense document corresponding to the db document.
This is all very nice and tidy, and provides a fantastic real-time search on the front end.

The browser client had the address of the typesense service, so it doesn't need to be heavily integrated into nhost.
As I have iterated on this, I am not using my above solution exactly, tying it in tightly to the local nhost stack is no longer needed, as it's a separate service.

Thank you both for your input. I don't think we will be doing anything specific to the CLI to support this as your solution @dionjwa is a valid workaround.
If you want to start a discussion on a solution/feature to properly support this, I would suggest starting a discussion instead.
I am closing this issue for now.


Navigation is not respecting the ordering

Noticed that the order specified in the page (.md file) is not respected when displaying in the navigation. For example,

Introduction

install (order 3)
quick-start (order 2)
what-is-cometbft (order 4)

I'd expect to see them displayed in this order

Quick Start
Install
What is CometBFT

But they are displayed as this:

So not sure why the ordering is not respected and rendered properly

@andynog Locally, at least, mine seems to respect the order 🤔 Which branch of the docs is this happening on for you?

It shows the same for all releases. For background context, I'm using Firefox on Fedora (Linux)


Can't install version 0.22.0

Hi.
I can't install the latest version, as npm says its not exist:
$ npm install<EMAIL_ADDRESS>npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node/5.3.0/bin/node" "/usr/local/bin/npm" "install"<EMAIL_ADDRESS>npm ERR! node v5.3.0
npm ERR! npm  v3.3.12

npm ERR! No compatible version found<EMAIL_ADDRESS>npm ERR! Valid install targets:
npm ERR! 0.20.0, 0.19.0, 0.18.1, 0.18.0, 0.17.0, 0.16.0, 0.15.0, 0.14.0, 0.13.0, 0.12.0, 0.11.0, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.8.0, 0.7.1, 0.7.0, 0.6.0, 0.5.0, 0.4.2, 0.4.1, 0.4.0, 0.3.0, 0.2.1, 0.1.0
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/shmuell/Workspace/playground/npm-debug.log

as you can see, the latest version by npm is 0.20.0, although if ill look here you can see that the latest version is published.
BTW, I tried that on node v4.1.2 and on node v5.3.0.
Thanks.

nevermind, suddenly it works ..


Minor nitpicks and fixes

This PR adds minor nitpicks and some of the issues seen for running the docker instance of flight blender.

Migrate to UNIX-style line endings and remove trailing white space.
Fix white space errors in the sample env and change permission of entrypoint.sh.
Add startup script.

Looks good to me, per our conversation.


Update Button Not Working

Describe the bug
The update button is not working at all.
To Reproduce
Steps to reproduce the behavior:

Click the info icon
Click the update button

Expected behavior
Start updating or something like that.
Screenshots

Desktop (please complete the following information):

OS: Ubuntu
Version 24

Additional context
I installed the app using deb package.

I just figured its a link pointing to the repo. But I guess we need tauri shell plugin for links to work.

I just figured its a link pointing to the repo. But I guess we need tauri shell plugin for links to work.

https://github.com/Abdenasser/neohtop/releases/tag/v1.1.0