Inline functions

Fixes #996
Currently a number of the C++ headers have the function declarations combined with the definitions, i.e.:
class Foo
{
public:
    void print_hello_world()
     {
         std::cout << "hello world!" << std::endl;
     }
};

As a C++ developer it would be nicer to browse the class API if the function definitions were separated, i.e.:
class Foo
{
public:
    void print_hello_world();
};

inline void Foo::print_hello_world()
{
    std::cout << "hello world!" << std::endl;
}

This example is trivial but with large classes with a lot of implementation code it can obscure the class API. OpenEXR does this fairly consistently:
https://github.com/AcademySoftwareFoundation/openexr/blob/master/src/lib/OpenEXR/ImfChannelList.h
The code changes would be cosmetic only, no functionality would be changed. I'll submit a PR to show what this looks like for a couple of header files, if the changes sound reasonable I can update the rest of them. However if this seems like too large of a change I'm also fine to close this issue.

Codecov Report

Merging #997 (55cfd1d) into master (d33bf24) will increase coverage by 0.00%.
The diff coverage is 89.62%.

@@           Coverage Diff           @@
##           master     #997   +/-   ##
=======================================
  Coverage   85.60%   85.60%
=======================================
  Files         192      192
  Lines       18331    18332    +1
  Branches     2056     2056
=======================================
+ Hits        15693    15694    +1
  Misses       2112     2112
  Partials      526      526

Flag
Coverage Δ

unittests
85.60% <89.62%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/opentime/rationalTime.h
87.50% <87.50%> (+0.26%)
:arrow_up:

src/opentimelineio/serializableObject.h
88.88% <90.80%> (ø)

Continue to review full report at Codecov.

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

This change highlights another issue related to the very notion of inlining.
I hadn't considered this point previously, but reading the diff made me think about what was being split, and what impact it might have on code generation.
Our methods are marked const, but the majority of things marked const should be marked constexpr. Also pretty much every function in these two headers should be marked noexcept. I just added a new issue. https://github.com/PixarAnimationStudios/OpenTimelineIO/issues/999
As a style point, inlines as we have them look fine, and splitting things out as we have them looks fine, so I'll defer the style question to others.

I don't think this change would have an impact on code generation, but that's a good point about noexcept/constexpr, I'd be happy to make a pass at that in a separate PR.

So, does this seem like a good idea? If so I would like to un-draft it, otherwise I'll close it and the corresponding issue:
https://github.com/PixarAnimationStudios/OpenTimelineIO/issues/996

This is a stylistic change that I don't feel strongly about one way or another. My bias is that it looks easier to read as a user of the API, and harder to maintain as a developer of the API, mostly because I don't use this pattern myself because it's harder to visually spot missing implementations; not really an issue here, given the relative maturity of the interface.
Perhaps someone else has some thoughts.


Add support for generating perf maps for simple perf profiling

This adds support for a simpler way to profile with perf, using perf maps files. While jitdump support is pretty effective and complete when you have access to DWARF metadata, the perf-inject step may take lots of time, and it is not optimized at all when modules contain lots of functions. (In our embedding, I've stopped perf-inject after it ran for 5 hours and didn't complete, while creating 175K .so objects.) Simplistic support for perf maps enable basic profiling: caller/callee trees, top/bottom time analysis, flamegraphs etc., and works very nicely when the wasm modules have many functions.
I've also tweaked the documentation and tried to make the feature available in the C API too.
I haven't put this behind a feature toggle because this profiling agent does very little, so it's always compiled when running Linux. For consistency I could add one, if you prefer.

Or is there a reason to use jitdump over this?

Jitdump can handle code memory being reused by multiple functions at different times. In addition it allows perf to show the actual instructions that executed rather than just the function names. It also supports recording unwind tables as opposed to requiring frame pointers for unwinding. And finally it allows recording line tables.

Is there some online documentation for this?

https://github.com/torvalds/linux/blob/master/tools/perf/Documentation/jit-interface.txt

I think the performance issues of the jitdump support are because we emit a record for each individual function at

Nice find @bjorn3! Although I'm not deep enough into the jitdump support to know how to fix this properly and quickly, and perfmap support is a great start for our use case.

Oh I didn't realize that it was possible to do this, but reading over the documentation it looks like JIT_CODE_LOAD only supports one symbol? Do you know off the top of your head how the whole text section would be loaded? I'd love to fix this myself to avoid generating thousands of tiny *.so files on all perf inject calls.

Right, I should have read the docs more carefully. My bad. All we can do I guess is to make perf inject not produce a .so for each individual function or write some rust code that has the same functionality as perf inject but is faster.

Wow, perf inject is dumb. It is not even that we do something wrong causing each function to be a separate elf file. Instead it really produces a elf file for each function unconditionally: https://github.com/torvalds/linux/blob/9c1bec9c0b08abeac72ed6214b723adc224013bf/tools/perf/util/jitdump.c#L466

or write some rust code that has the same functionality as perf inject but is faster.

:eyes: https://github.com/mstange/samply/issues/33


Unable to build when using vcpkg toolchain

The vcpkg toolchain causes infinite recursion.
[main] Building folder: nodeeditor
[main] Configuring folder: nodeeditor
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --no-warn-unused-cli -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug "-DCMAKE_C_COMPILER:FILEPATH=C:\Program Files\LLVM\bin\clang.exe" "-DCMAKE_CXX_COMPILER:FILEPATH=C:\Program Files\LLVM\bin\clang++.exe" -Sd:/nodeeditor -Bd:/nodeeditor/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] CMake Error at D:/vcpkg/scripts/buildsystems/vcpkg.cmake:746 (set):
[cmake]   Maximum recursion depth of 100 exceeded
[cmake] Call Stack (most recent call first):
[cmake]   D:/vcpkg/scripts/buildsystems/vcpkg.cmake:824 (_find_package)
...
[cmake]   D:/vcpkg/scripts/buildsystems/vcpkg.cmake:824 (_find_package)
[cmake] -- Configuring incomplete, errors occurred!
[cmake] See also "D:/nodeeditor/build/CMakeFiles/CMakeOutput.log".
[cmake]   D:/vcpkg/scripts/buildsystems/vcpkg.cmake:824 (_find_package)
...
[cmake]   D:/vcpkg/scripts/buildsystems/vcpkg.cmake:824 (_find_package)
[cmake]   external/CMakeLists.txt:11 (_find_package)
[cmake]   CMakeLists.txt:47 (find_package)

You have vcpkg installed and configured, and qtbase installed through vcpkg. Then you try to configure the repository with the following argument in the CMake command
cmake -B<builddir> -S<sourcedir> -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake

The issue is met on a branch v3alpha

Hello!
Thanks for reporting this issue.
Unfortunately I am not an expert in vcpkg -- never got a chance of using it. I am afraid I need some help in resolving this problem
Best,
Dmitry

Fixed in master (v2), will merge the version 3 in the nearest days with all the fixes


WASI and waPC guest coexistence

Consider if it makes sense for the policy-server to detect whether a guest module is WASI or waPC and load one or the other. This has implications on our side at the policy-server, but it virtually enables any kind of language that is able to use either WASI or waPC.

Didn't we decide for waPC finally ? Can we close this issue ?

Yes, I think we can close this issue. The future is with waPC


keyboard events in LoginForm

I want to capture when the enter key is pressed to submit the login form. How would I do that?

Closing due to inactivity @philcruz
Open new issue if it still persists.


telomeric 3' overhang

1 increased telomeric 3' overhang length
2 telomeric 3' overhang absent
synonyms with "telomere 3' overhang" and "telomeric G-strand overhang"
PMID:12861005

increased telomeric 3' overhang length FYPO:0005402
telomeric 3' overhang absent FYPO:0005403

edit file: 6661305a803ccbc7889ba3e7d176839bc56a0dd0
release: ec9073a2c1a23a15d859cbed4d611d4e06281726


Seems to be failing on step 2 for me which is Split PDF into Pages

HTTP server responded with error code 503
in step "2. Split PDF into pages", routine "main", line: 48
{
"body": "Service Unavailable",
"code": 503,
"headers": {
"Alt-Svc": "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000",
"Content-Length": "19",
"Content-Type": "text/plain",
"Date": "Fri, 03 Nov 2023 17:47:53 GMT",
"Server": "Google Frontend",
"X-Cloud-Trace-Context": "853a3ce82faa491cbd266fd3aa572001;o=1"
},
"message": "HTTP server responded with error code 503",
"tags": [
"HttpError"
]
}
Any ideas?

Has to do with a dependency issue with Werkzeug:
File "/usr/local/lib/python3.10/site-packages/flask/init.py", line 7, in
from .app import Flask as Flask
File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 27, in
from . import cli
File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 17, in
from .helpers import get_debug_flag
File "/usr/local/lib/python3.10/site-packages/flask/helpers.py", line 14, in
from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.10/site-packages/werkzeug/urls.py)

I FINALLY GOT IT WORKING!!!!
Solution:
Update all of the requirements.txt files in the following directories dlp-runner, findings-writer, pdf-merger, and pdf-splitter to have
Flask==2.1.2 and Werkzeug==2.3.7, since each of those will try to install Werkzeug 3.0.1 which no longer is combatable with the version of Flask that is installed due to backwards compatibility issues.
:)

Hey @milesjmccloskey , thanks for reporting the issue and digging out the solution.
We'll be pushing out a fix with your recommendations (as well as updated libraries and dockerfiles) in the next few days :)
I'll keep you posted and close this issue once we push a fix.

@milesjmccloskey, I went ahead and upgraded the python libraries to fix this issue.
Please checkout the latest code and give it a try.
Thanks for reporting the issue and suggesting a fix.
Let me know how it goes and if you find any other bug.

I updated to using those new libraries and still received the error by the way:
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.10/site-packages/werkzeug/urls.py)
at . ( /usr/local/lib/python3.10/site-packages/flask/helpers.py:14 )
at . ( /usr/local/lib/python3.10/site-packages/flask/cli.py:17 )
at . ( /usr/local/lib/python3.10/site-packages/flask/app.py:27 )
at . ( /usr/local/lib/python3.10/site-packages/flask/init.py:7 )
at . ( /app/main.py:21 )
at ._call_with_frames_removed ( :241 )
at .exec_module ( :883 )
at ._load_unlocked ( :688 )
at ._find_and_load_unlocked ( :1006 )
at ._find_and_load ( :1027 )
at ._gcd_import ( :1050 )
at .import_module ( /usr/local/lib/python3.10/importlib/init.py:126 )
at .import_app ( /usr/local/lib/python3.10/site-packages/gunicorn/util.py:359 )
at .load_wsgiapp ( /usr/local/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py:48 )
at .load ( /usr/local/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py:58 )
at .wsgi ( /usr/local/lib/python3.10/site-packages/gunicorn/app/base.py:67 )
at .load_wsgi ( /usr/local/lib/python3.10/site-packages/gunicorn/workers/base.py:146 )
at .init_process ( /usr/local/lib/python3.10/site-packages/gunicorn/workers/base.py:134 )
at .init_process ( /usr/local/lib/python3.10/site-packages/gunicorn/workers/gthread.py:92 )
at .spawn_worker ( /usr/local/lib/python3.10/site-packages/gunicorn/arbiter.py:589 )
The issue is that Werkzeug 3.0.1 and latest Flask library doesn't specify the dependency correctly:
The root cause of this is that Werkzeug 3.0.0 removed previously deprecated code: https://werkzeug.palletsprojects.com/en/3.0.x/changes/#version-3-0-0
Granted it would be ideal if Werkzeug 3.0.1 worked since it fixed a security vulnerability
The solution to get the project to work for me was having to add:
Werkzeug==2.3.7
to all of the requirements.txt files


Implement parsing for the future type.

Future has one type. In the ABI, it's represented as an i32 index. Lifting and
lowering is not yet implemented.

Please update WIT.md to reflect this new syntax.


Update Redfish endpoint test group order

Build finished.

Resolves https://github.com/RackHD/RackHD/issues/450

:+0 .  if it fixes the redfish issues :-)

@changev

+1

Error still exits in SH stack env


Enabling ADC1 and ADC2 support on stm32l5 series

These commits enable ADC in stm32l5 series.
This has been tested with tests/drivers/adc/adc_api and samples/drivers/adc on stm32l562e_dk and nucleo_l552ze_q platforms.

@sarthsmart the buildkite issue has been fixed. So please rebase and force push.


[HIVE-28500] Update alterSchemaVersion in ObjectStore.java

Only the alterSchemaVersion method of ObjectStore does not perform rollbackTranscation() if committed is false in finally.
so if commited = false, commitTransaction -> rollbackTranscation

What changes were proposed in this pull request?

https://issues.apache.org/jira/browse/HIVE-28500
Why are the changes needed?

Does this PR introduce any user-facing change?

Is the change a dependency upgrade?

How was this patch tested?

Hi,
For the first sight it looks good. But it opens some questions:
What is the current behaviour if the call cannot be committed? Is the method throws an exception?
After that change, in case it have to be rolled back, from the caller's standpoint, it looks like a successful call: I call the method, no errors given, no return value. So I assume the call was successful.
Shouldn't we throw at least a meta exception (if we don't want a breaking change) or modify the interface to return with a true/false value that tells if the call was successful (like in alterDatabase)?
Also, can you add a test for a change? TestObjectStoreSchemaMethods can be a proper place to do that.

Calling commitTransaction() instead of rollbackTransaction() seems just like a minor error, and I think we don't need a new test case for this change.


move merge_qsr_world_traces to utils so it can is externally exposed

closes #86
Function is moved in to qsrlib_utils/utils.py instead of the original proposal of #86 to expose it and make it static.

@cdondrup  Thought of doing it now as it was really minor and trivial and we are fresh in testing. Still works for me. Merge when you feel comfortable too.

Works fine.


Set CSS class for date-one and date-two

Could you give us a CSS classes based on the current state?
E.g.
Nothing selected - no class
First date selected - class "date-one-selected"
Second date selected - class "date-two-selected"
I need this for hover state. When nothing (or all) is selected, the hover state should be another than when only the first date is selected.
For the hover effects we could set in wrapper class:
 wrapperClasses() {       return {         'asd__wrapper--datepicker-open': this.showDatepicker,         'asd__wrapper--full-screen': this.showFullscreen,         'asd__wrapper--inline': this.inline,         'asd__wrapper--selected-date-one': this.selectedDate1,         'asd__wrapper--selected-date-two': this.selectedDate2,       }
Then I could set the hover styles on --selected class according to wrapper --selected-date-one or two.
And for default view without hover directly in day
 :class="{                       'asd__day--enabled': dayNumber !== 0,                       'asd__day--empty': dayNumber === 0,                       'asd__day--disabled': isDisabled(fullDate),                       'asd__day--selected': selectedDate1 === fullDate || selectedDate2 === fullDate,                       'asd__day--selected-date-one': selectedDate1,                       'asd__day--selected-date-two': selectedDate2,                       'asd__day--in-range': isInRange(fullDate) }"
Then I could give the selected first and second date individual looks.

Sounds like a good idea! If you have time, please submit a PR. Otherwise I can probably have a look at it in the near future.


feat(EMI-1549): Handling deep linking and push notifications for Partner Offers

This PR resolves EMI-1549
Description
This PR adds a new handler for deep linking and push notifications for Partner Offers
Videos

Scenario
Android
iOS

Valid Offer

Offer expired / artwork sold

Invalid offer

PR Checklist

[X] I have tested my changes on iOS and Android.
[X] I hid my changes behind a feature flag, or they don't need one.
[X] I have included screenshots or videos, or I have not changed the UI.
[X] I have added tests, or my changes don't require any.
[X] I added an app state migration, or my changes do not require one.
[X] I have documented any follow-up work that this PR will require, or it does not require any.
[X] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

Handle deep linking and push notifications for Partner Offers - mrsltun

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (Handle deep linking and push notifications for Partner Offers - mrsltun)

  Generated by :no_entry_sign: dangerJS against f954fd4112aefb0967319feb7c47f40b2ed6ed7b

Thanks for the thorough videos @MrSltun -
Feedback unrelated to the PR
In the first video, I noticed that iOS is prompting us to "Open Artsy", although I believe that we have Universal links set up and it should open the link without a prompt. @brainbicycle @gkartalis  Would you mind guys if you check this out at some point in the future. Also when opening Banksy artist page from Chrome in my phone, I wasn't prompted to open it in the App.

Thanks for the thorough videos @MrSltun -
Feedback unrelated to the PR
In the first video, I noticed that iOS is prompting us to "Open Artsy", although I believe that we have Universal links set up and it should open the link without a prompt. @brainbicycle @gkartalis  Would you mind guys if you check this out at some point in the future. Also when opening Banksy artist page from Chrome in my phone, I wasn't prompted to open it in the App.

Hmm I am not sure why the open with artsy is showing in the first video but universal links work as far as I can tell, opening an artsy.net link from say slack or an email opens the ios app without prompting. I think when you are in the artsy mobile web site on chrome or safari it is not going to open the app because of our react routing. That said I am not sure we want it to anyway because if you are browsing the site you don't want to be kicked to the app when switching pages in my opinion. We do have the smart banners in safari that show "open in artsy" which i think is working as intended.

I was going to answer here but I believe my comment will diverge from the PR, I will move the conversation to Slack


[EventHubs] Use idle-timeout to faster detect network sockets

closing this issue, please follow the issue: https://github.com/Azure/azure-sdk-for-python/issues/9185


Module files incorrect

_30s.esm.js is displaying module.exports = { ...snippets }, should be export { ...snippets }

_30s.js no longer works in the browser (throws an error module is not defined)

It appears to be using require() instead of ES6 import syntax, which Rollup uses

@atomiks you are the one who fixed them in the first place, can you update them yet again?

Also we'll add "sideEffects": false to package.json to support webpack tree-shaking

Thanks for fixing it. I will release a patch tomorrow if I get the time to address this issue on npm.


drivers: mipi-dbi: add support for st,stm32-fmc

This patch series adds the STM32 FMC memory controller and the st7789v display controller to the stm32l562e-dk board. It also adds a MIPI DBI driver for the STM32 FMC.
There is still an issue where I'm not sure what is the best way to solve it :
On the binding mipi-dbi-device.yaml, there is a property mipi-max-frequency. It's not required when using a memory controller as it is a variable needed for serial busses, but the macro MIPI_DBI_CONFIG_DT_INST, called in the st7789v driver invokes the macro MIPI_DBI_SPI_CONFIG_DT, wich uses this property to fill the field frequency of the struct spi_config.
But in my case, with the FMC, I don't need nor use the frequency property. But, due to this macro, I have to put a value. The driver works for any possible value, as I don't use the property. A possible workaround would be to create a version of the MIPI_DBI_CONFIG_DT_INST for the devices who don't need the spi_config struct ? But I'm not sure that is the right way.

Some tests are failing, but it seems like they are also failing on main ?

@miggazElquez your hw is a stm32L5xx and a display with st7789, mine is a stm32H5xx and a display with ili9341. So far your PR is working for me. At least I could setup my device tree successfully.
What I'm wondering is how I address the Chip Select (NE3) and LCD Register Select (A15) settings. Are they handled within the fmc-mipi-dbi node? Its parent (smt32h5-fmc-nor-psram)? Or at the display itself?

@miggazElquez your hw is a stm32L5xx and a display with st7789, mine is a stm32H5xx and a display with ili9341. So far your PR is working for me. At least I could setup my device tree successfully.
What I'm wondering is how I address the Chip Select (NE3) and LCD Register Select (A15) settings. Are they handled within the fmc-mipi-dbi node? Its parent (smt32h5-fmc-nor-psram)? Or at the display itself?

The ways to provide LCD Register Select are discussed in https://github.com/zephyrproject-rtos/zephyr/pull/75172#discussion_r1661100718.

@GeorgeCGV I added the binding for the data adress, does this look good to you ?

@GeorgeCGV I added the binding for the data adress, does this look good to you ?

Yes, that enables FMC usage across other boards, thanks.
Added minor comments regarding the logs to remove \n, ., This, etc...

Looks like the issue blocking CI has been fixed, so rebasing should get you a full green CI status.


feature - Support for SSL in Rancher web interface

Currently, I have to install an nginx proxy to wrap SSL around the Rancher web interface.  It would be far better if Rancher supported SSL natively.

This is probably not something we will do as we want to support HA mode and require a LB to terminate SSL in front of it.


PT-584 | Add skip to content link and fix language selector focus outline

Description

Add skip link
Fix language selector focus outline

Issues
Closes
PT-584:
Related
Testin
Automated tests
Manual testing
Screenshots
Additional notes

Codecov Report

Merging #69 (ae94e04) into master (66a91d4) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #69      +/-   ##
==========================================
- Coverage   89.80%   89.77%   -0.03%
==========================================
  Files          79       79
  Lines        2011     2015       +4
  Branches      371      371
==========================================
+ Hits         1806     1809       +3
- Misses        201      202       +1
  Partials        4        4

Impacted Files
Coverage Δ

src/domain/app/header/Header.tsx
100.00% <100.00%> (ø)

src/domain/app/layout/PageLayout.tsx
100.00% <100.00%> (ø)

src/domain/venue/venueInfo/VenueInfo.tsx
88.88% <0.00%> (-3.71%)
:arrow_down:

Continue to review full report at Codecov.

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


New model saving when running cellpose on the terminal

When I run Cellpose on the terminal a /model folder gets created and a temporary model gets saved every 100 epochs (as set by defaut). Eventually I get a temp model name like "cellpose_residual_on_style_on_concatenation_off_training_2021_01_08_14_56_01 - Copy.512275"
However it seems that the final model is not saved and these intermediate models can't be used for later predictions. Am I doing something wrong or this feature is not yet fully implemented?
For your reference here is the commande I'm running: python -m cellpose --train --dir C:\Users\blahblah --pretrained_model nuclei --chan 0
Thank you very much.

I solved the issue by using adding a --test_dir during training.
However, at the moment the output of my training gives me worse results than the starting model.

I solved the issue by using adding a --test_dir during training.
However, at the moment the output of my training gives me worse results than the starting model.

I solved the issue by using adding a --test_dir during training.
However, at the moment the output of my training gives me worse results than the starting model.

I solved the issue by using adding a --test_dir during training.
However, at the moment the output of my training gives me worse results than the starting model.


ESLint not pathed properly

Describe the bug
ESLint doesn't seem to be picking up the errors when I run npm run lint
To Reproduce
Steps to reproduce the behavior:

run npm run lint
See error (ESLint missed an error with arrow functions)

Expected behavior
ESLint goes through all the files in src and make sure it's adhering the rules set in eslintrc.js
Potential Solution
Updating "lint" and "lint:fix" in package.json to the following:
"lint": "eslint \"src/**/*.js[x]\"",
"lint:fix": "eslint --fix \"src/**/*.js[x]\"",

Have tested this locally and it seems to find the error just fine. Could also run lint:fix to correct the issue.

Issue resolved in PR #114 when merged. Closing issue.


Too many patches when saving refs?

I have two schemas defined as follows:
I have two schemas defined as follows.
const PersonSchema = new mongoose.Schema({
  organization: {
    type: mongoose.Schema.Types.ObjectId,
    ref: ORGANIZATION_MODEL_NAME,
    required: true,
  },
  name: {
    type: String,
    unique: true,
    required: true,
  }
})

const OrganizationSchema = new mongoose.Schema({
  name: {
    type: String,
    unique: true,
    required: true,
  }
})

I can create a person, no problem.
Organization
  .create({ name: 'Home '})
  .then((org) => Person.create({ name: 'Bob', organization: organization._id })
  .then((person) => {
    // Now I have `person`
  });

However, if I try to change the org on the person:
person.set({ organization: 'MY_NEW_ID' }).save();
Patches looks like this:
DATE/OP/PATH/VALUE
2017-02-10T06:26:29.312Z  replace /organization/id/10 231
2017-02-10T06:26:29.312Z  replace /organization/id/9  108
2017-02-10T06:26:29.312Z  replace /organization/id/8  82
2017-02-10T06:26:29.312Z  replace /organization/id/7  24
2017-02-10T06:26:29.312Z  replace /organization/id/6  9
2017-02-10T06:26:29.312Z  replace /organization/id/5  211
2017-02-10T06:26:29.312Z  replace /organization/id/4  12
2017-02-10T06:26:29.312Z  replace /organization/id/3  234
2017-02-10T06:26:29.312Z  replace /organization/id/2  74

I was expecting more something like:
DATE/OP/PATH/VALUE
2017-02-10T06:26:29.312Z  replace /organization/id/2  MY_NEW_ID

Am I doing something wrong?

Basically I don't understand how to save the Person -> Organization reference correctly.

@mrchess

Do you have a more complete example where i can also see the model connections being made and the patches being defined?
Before changing the ORG on the person, what do the person and organization collections/documents look like?

Hmm, I tried a simple sandbox case and it seems to work. Perhaps it is the way I implemented it in my app. Pasting this here for reference. I'll try a few more cases.
const mongoose = require('mongoose');
const patchHistory = require('mongoose-patch-history');
const assert = require('assert');
const Promise = require('bluebird');
mongoose.Promise = Promise;

// Organization Model
const OrganizationSchema = new mongoose.Schema({
  name: {
    type: String,
  },
});
const Organization = mongoose.model('Organization', OrganizationSchema);

// Person Model
const PersonSchema = new mongoose.Schema({
  organization: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Organization',
  },
  name: {
    type: String,
  },
});

PersonSchema.plugin(patchHistory.default, {
  mongoose,
  name: 'roomPatches',
});

const Person = mongoose.model('Person', PersonSchema);

//////////////
// The Test //
//////////////
const uri = 'mongodb://localhost:27017/mongoose_patch_history_test';

let workOrg;
let homeOrg;
let person;
mongoose.connect(uri)
  // Setup
  .then(() => Organization.create({ name: 'Home '}))
  .then((o) => (homeOrg = o))
  .then(() => Organization.create({ name: 'Work '}))
  .then((o) => (workOrg = o))
  .then(() => Person.create({ name: 'Bob', organization: homeOrg._id }))
  .then((p) => (person = p))
  // Test
  .then(() => person.patches.find({ ref: person.id }))
  .then((patches) => {
    console.log(JSON.stringify(patches,null,2));
    // [
    //   {
    //     "_id": "589d7124c2d0b1aa30dcfb14",
    //     "ref": "589d7124c2d0b1aa30dcfb13",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "add",
    //         "path": "/name",
    //         "value": "Bob"
    //       },
    //       {
    //         "op": "add",
    //         "path": "/organization",
    //         "value": "589d7124c2d0b1aa30dcfb11"
    //       }
    //     ],
    //     "date": "2017-02-10T07:52:04.201Z"
    //   }
    // ]
  })
  // Switch the org
  .then(() => {
    person.organization = workOrg._id;
    return person.save();
  })
  .then(() => person.patches.find({ ref: person.id }))
  .then((patches) => {
    console.log(JSON.stringify(patches,null,2));
    // [
    //   {
    //     "_id": "589d7195101d63abfae70aee",
    //     "ref": "589d7195101d63abfae70aed",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "add",
    //         "path": "/name",
    //         "value": "Bob"
    //       },
    //       {
    //         "op": "add",
    //         "path": "/organization",
    //         "value": "589d7195101d63abfae70aeb"
    //       }
    //     ],
    //     "date": "2017-02-10T07:53:57.053Z"
    //   },
    //   {
    //     "_id": "589d7195101d63abfae70aef",
    //     "ref": "589d7195101d63abfae70aed",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "replace",
    //         "path": "/organization/id/11",
    //         "value": 236
    //       }
    //     ],
    //     "date": "2017-02-10T07:53:57.070Z"
    //   }
    // ]
  });

Hmm, I tried a simple sandbox case and it seems to work. Perhaps it is the way I implemented it in my app. Pasting this here for reference. I'll try a few more cases.
The below code WORKS AS EXPECTED.
const mongoose = require('mongoose');
const patchHistory = require('mongoose-patch-history');
const assert = require('assert');
const Promise = require('bluebird');
mongoose.Promise = Promise;

// Organization Model
const OrganizationSchema = new mongoose.Schema({
  name: {
    type: String,
  },
});
const Organization = mongoose.model('Organization', OrganizationSchema);

// Person Model
const PersonSchema = new mongoose.Schema({
  organization: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Organization',
  },
  name: {
    type: String,
  },
});

PersonSchema.plugin(patchHistory.default, {
  mongoose,
  name: 'roomPatches',
});

const Person = mongoose.model('Person', PersonSchema);

//////////////
// The Test //
//////////////
const uri = 'mongodb://localhost:27017/mongoose_patch_history_test';

let workOrg;
let homeOrg;
let person;
mongoose.connect(uri)
  // Setup
  .then(() => Organization.create({ name: 'Home '}))
  .then((o) => (homeOrg = o))
  .then(() => Organization.create({ name: 'Work '}))
  .then((o) => (workOrg = o))
  .then(() => Person.create({ name: 'Bob', organization: homeOrg._id }))
  .then((p) => (person = p))
  // Test
  .then(() => person.patches.find({ ref: person.id }))
  .then((patches) => {
    console.log(JSON.stringify(patches,null,2));
    // [
    //   {
    //     "_id": "589d7124c2d0b1aa30dcfb14",
    //     "ref": "589d7124c2d0b1aa30dcfb13",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "add",
    //         "path": "/name",
    //         "value": "Bob"
    //       },
    //       {
    //         "op": "add",
    //         "path": "/organization",
    //         "value": "589d7124c2d0b1aa30dcfb11"
    //       }
    //     ],
    //     "date": "2017-02-10T07:52:04.201Z"
    //   }
    // ]
  })
  // Switch the org
  .then(() => {
    person.organization = workOrg._id;
    return person.save();
  })
  .then(() => person.patches.find({ ref: person.id }))
  .then((patches) => {
    console.log(JSON.stringify(patches,null,2));
    // [
    //   {
    //     "_id": "589d7195101d63abfae70aee",
    //     "ref": "589d7195101d63abfae70aed",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "add",
    //         "path": "/name",
    //         "value": "Bob"
    //       },
    //       {
    //         "op": "add",
    //         "path": "/organization",
    //         "value": "589d7195101d63abfae70aeb"
    //       }
    //     ],
    //     "date": "2017-02-10T07:53:57.053Z"
    //   },
    //   {
    //     "_id": "589d7195101d63abfae70aef",
    //     "ref": "589d7195101d63abfae70aed",
    //     "__v": 0,
    //     "ops": [
    //       {
    //         "op": "replace",
    //         "path": "/organization/id/11",
    //         "value": 236
    //       }
    //     ],
    //     "date": "2017-02-10T07:53:57.070Z"
    //   }
    // ]
  });

Here is an example case. See how in the second patch the operation is kind of weird?
    //     "ops": [
    //       {
    //         "op": "replace",
    //         "path": "/organization/id/11",
    //         "value": 236
    //       }

Quickly adding my version as well:
  "dependencies": {
    "bluebird": "^3.4.7",
    "mongoose": "^4.8.1",
    "mongoose-patch-history": "^1.1.5"
  }

That seems weird indeed.
There is this line in the plugin:
const ops = jsonpatch.compare(this.isNew ? {} : this._original, this.data())
Can you see what is compared here? this._original vs this.data()

Interesting it yields this:
this._original // { name: 'Bob', organization: 589e95796dd6ed00f1d8c1ce }
this.data() // { name: 'Bob', organization: 589e95796dd6ed00f1d8c1cf }

I'm trying to debug it.

I think it is because they are mongoose ObjectId objects.
console.log(typeof this._original.organization, typeof this.data().organization);
// object object
console.log(this._original.organization.constructor.name);
// ObjectID

So yeah, it must be a problem with the jsonpatch.compare not being able to resolve these mongoose objects. Any suggestions? I may try to just change them to strings or something... the "ref" keys.
Have you yourself been using refs in your collections?

Fwiw I think I'm just gonna change my:
  organization: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Organization',
  },

to
  organization: {
    type: String,
    ref: 'Organization',
  },

I don't really see a danger in doing this from a mongoose perspective. Please let me know if you see one.

Thanks for helping me out! 👍
I need to think about this and play around with it when i find the time so i'm keeping this issue open. If ObjectId refs really can't be compared with jsonpatch, this should at least be documented in the readme!

@mrchess Actually, the comparison to generate JSON patches should be done on JSON data - which the object returned from .data() is not. I added in a toJSON method that converts BSON to JSON (and therefore ObjectId references to strings) before comparison.
Tested with your example, should work. Published on npm as v1.1.6! Enjoy! :)

Nice change! 🎉


When going to train mine gets stuck

Mine just seams like it gets stuck here and never changes no matter how long i wait. it says "INFO:jc_v2_40k:{'train': {'log_interval': 200, 'seed': 1234, 'epochs': 20000, 'learning_rate': 0.0001, 'betas': [0.8, 0.99], 'eps': 1e-09, 'batch_size': 5, 'fp16_run': True, 'lr_decay': 0.999875, 'segment_size': 12800, 'init_lr_ratio': 1, 'warmup_epochs': 0, 'c_mel': 45, 'c_kl': 1.0}, 'data': {'max_wav_value': 32768.0, 'sampling_rate': 40000, 'filter_length': 2048, 'hop_length': 400, 'win_length': 2048, 'n_mel_channels': 125, 'mel_fmin': 0.0, 'mel_fmax': None, 'training_files': './logs\jc_v2_40k/filelist.txt'}, 'model': {'inter_channels': 192, 'hidden_channels': 192, 'filter_channels': 768, 'n_heads': 2, 'n_layers': 6, 'kernel_size': 3, 'p_dropout': 0, 'resblock': '1', 'resblock_kernel_sizes': [3, 7, 11], 'resblock_dilation_sizes': [[1, 3, 5], [1, 3, 5], [1, 3, 5]], 'upsample_rates': [10, 10, 2, 2], 'upsample_initial_channel': 512, 'upsample_kernel_sizes': [16, 16, 4, 4], 'use_spectral_norm': False, 'gin_channels': 256, 'spk_embed_dim': 109}, 'model_dir': './logs\jc_v2_40k', 'experiment_dir': './logs\jc_v2_40k', 'save_every_epoch': 5, 'name': 'jc', 'total_epoch': 1000, 'pretrainG': 'models\pretrained_v2\f0G40k.pth', 'pretrainD': 'models\pretrained_v2\f0D40k.pth', 'version': 'v2', 'gpus': '0', 'sample_rate': '40k', 'if_f0': 1, 'if_latest': 1, 'save_every_weights': '1', 'if_cache_data_in_gpu': 0}"
And on the home page I already downloaded everything. I did have it train a feature index and it did work.

why is your "Process Data" button disabled? try replacing the space in your dataset path to "all_rvc/js" and check your ./logs/js folder to see if the training data folders are empty

So i didi remove teh space and renamed the  folder to "all_rvc/js" and the ./logs/js folder dose have training data in it. Still the same thing happens. My gpu is also a 3060 12gb so it should work.

did you update to the latest commit?

did that help?

i can't help you much without knowing the error messages. what does the terminal say after you start training? are you opening the app with conda-start.bat?

yes i am opening it with conda-start.bat and all that the terminal all i says is "INFO:jc_v2_40k:{'train': {'log_interval': 200, 'seed': 1234, 'epochs': 20000, 'learning_rate': 0.0001, 'betas': [0.8, 0.99], 'eps': 1e-09, 'batch_size': 5, 'fp16_run': True, 'lr_decay': 0.999875, 'segment_size': 12800, 'init_lr_ratio': 1, 'warmup_epochs': 0, 'c_mel': 45, 'c_kl': 1.0}, 'data': {'max_wav_value': 32768.0, 'sampling_rate': 40000, 'filter_length': 2048, 'hop_length': 400, 'win_length': 2048, 'n_mel_channels': 125, 'mel_fmin': 0.0, 'mel_fmax': None, 'training_files': './logs\jc_v2_40k/filelist.txt'}, 'model': {'inter_channels': 192, 'hidden_channels': 192, 'filter_channels': 768, 'n_heads': 2, 'n_layers': 6, 'kernel_size': 3, 'p_dropout': 0, 'resblock': '1', 'resblock_kernel_sizes': [3, 7, 11], 'resblock_dilation_sizes': [[1, 3, 5], [1, 3, 5], [1, 3, 5]], 'upsample_rates': [10, 10, 2, 2], 'upsample_initial_channel': 512, 'upsample_kernel_sizes': [16, 16, 4, 4], 'use_spectral_norm': False, 'gin_channels': 256, 'spk_embed_dim': 109}, 'model_dir': './logs\jc_v2_40k', 'experiment_dir': './logs\jc_v2_40k', 'save_every_epoch': 5, 'name': 'jc', 'total_epoch': 1000, 'pretrainG': 'models\pretrained_v2\f0G40k.pth', 'pretrainD': 'models\pretrained_v2\f0D40k.pth', 'version': 'v2', 'gpus': '0', 'sample_rate': '40k', 'if_f0': 1, 'if_latest': 1, 'save_every_weights': '1', 'if_cache_data_in_gpu': 0}" basically and then just freezes.

train.log
all that the train log has in it too no matter how long i let it run

does inference and chat work for you?

Inference works but when chating in the terminal it just says press any key to continue when i click start chatting.

how many rows of does your "/logs\jc_v2_40k/filelist.txt" have? Does that correspond to the number of datafiles you have?
can you also tell me what OS you're using?

My filelist.txt has 186 lines and i have 46 data set files. I am also using Windows 10 64bit.

ok, try pulling the most recent branch and redo the data processing (after deleting your log folder).
just to confirm, are your datafiles in wav format or something else? soundfile has some problems with ogg files so you might run into some issues relating to that.

Yes my dataset is in .wav. And I did do what you said and deleted the logs folder and update. After i did that i tried again and after the loading bar at the bottom hit 100 and i watied for awhile same thing happened.

which one of these logs (underlined in red) is missing in your terminal?

the furthest that mine gets to is line 145: (0, 1, '0')

looks like your training failed at spawning distributed gpu training. no idea why it's hanging on your computer. could be a driver issue


Saving weights.npz error!

 Please help

Same error...

Windows 8.1 64 bis
Python 3.5
TensorFlow 1.7.0 GPU
Numpy 1.14.2
Cuda compilation tools, release 9.0, V9.0.176 CUDNN 7.0.5

Looks like the CTRL+C its aborting not only the training process, but the main thread too.

I solved with an alternative.
Instead of using try:except: waiting the process to be aborted by ctrl+c, I changed the code to listen the keyboard.
add the code at the begining of the train.py:
import keyboard
at the end of the function train(), change the try: except: to this:
`        try:
last_batch_idx = 0
last_batch_time = time.time()
batch_iter = enumerate(read_batches(batch_size))
for batch_idx, (batch_xs, batch_ys) in batch_iter:
print('batch_idx {}'.format( batch_idx))
            #begining of the change
            if keyboard.is_pressed('q') or batch_idx == 100000:#if key 'q' is pressed
                print('salvando em weights.npz')
                last_weights = [p.eval() for p in params]
                numpy.savez("weights.npz", *last_weights)
                return last_weights
            #end of the change

            do_batch(last_batch_time)
            if batch_idx % report_steps == 0:
                batch_time = time.time()
                if last_batch_idx != batch_idx:
                    #print("time for 60 batches {}".format(60 * (last_batch_time - batch_time) / (last_batch_idx - batch_idx)))
                    last_batch_idx = batch_idx
                    last_batch_time = batch_time

    except KeyboardInterrupt:
        print('salvando em weights.npz')
        last_weights = [p.eval() for p in params]
        numpy.savez("weights.npz", *last_weights)
        return last_weights`

Now you just need to press Q to stop (I have to hold the Q button to work)

Other alternative is to save the weights each step.
Im using the report_step = 5, so each 5 step, the loop save the weight, in order to prevent to lose information after hours running:
    `try:
        last_batch_idx = 0
        last_batch_time = time.time()
        batch_iter = enumerate(read_batches(batch_size))
        for batch_idx, (batch_xs, batch_ys) in batch_iter:
            print('batch_idx {}'.format( batch_idx))
            if keyboard.is_pressed('q'):#if key 'q' is pressed
                print('salvando em weights.npz')
                last_weights = [p.eval() for p in params]
                numpy.savez("weights.npz", *last_weights)
                return last_weights
            do_batch(last_batch_time)
            if batch_idx % report_steps == 0:
                batch_time = time.time()
                if last_batch_idx != batch_idx:
                    #print("time for 60 batches {}".format(60 * (last_batch_time - batch_time) / (last_batch_idx - batch_idx)))
                    last_batch_idx = batch_idx
                    last_batch_time = batch_time
                    #begining of the change
                    print('salvando em weights.npz')
                    last_weights = [p.eval() for p in params]
                    numpy.savez("weights.npz", *last_weights)
                    #end of the change

    except KeyboardInterrupt:
        print('salvando em weights.npz')
        last_weights = [p.eval() for p in params]
        numpy.savez("weights.npz", *last_weights)
        return last_weights`

Good job, it's really helpful@yurinativo

It gives this error :
TypeError: do_batch() takes 0 positional arguments but 1 was given
Any help to resolve it ? @yurinativo


SVG AddPicture: Large-dimension SVG files lead to error opening in PowerPoint

Prepare an SVG file with a width and height attribute of 25in or larger, e.g. "25in" or "2500"
Using ShapeCrawler, create a new presentation
Using AddPicture(), add this SVG to the presentation, and save it
Open resulting presentation in PowerPoint
Notice: "PowerPoint found a problem with content in {file}. PowerPoint can attempt to repair the presentation.
Press "Repair"
Notice: Added picture is not displayed

Expected: Picture should be displayed. If you drag/drop this image onto a slide while running PowerPoint, it will be shrunk so it fits on the slide. e.g. square image touches the top and bottom of the slide.

Note that this also applies to non-SVG files. Try to AddPicture() with a >2500-pixel width PNG, and the same thing will happen.

@jcoliz, I've checked the output of test AddPicture_too_large_adds_svg_picture: it doesn't look like a PowerPoint experience:

Could you please check this out?

Hey @ashahabov , that image on the right is not the image used in this test. This test uses test-vector-image-large.svg. The image on the right above is test-vector-image-wide.svg.
When I added test-vector-image-large.svg to powerpoint manually, I get similar results as ShapeCrawler.
Admittedly, the result isn't ideal. It shows a tiny red dot in the upper-left corner of a giant rectangle. But it IS what PowerPoint does with this image.
The problem is that the test image sets width/height attributes but NOT a viewbox. That's not really a best practice. Properly-formed SVG file would have a viewbox. ShapeCrawler COULD detect this case, and write a viewbox into the svg data, however I don't have a way to write the SVG back out without causing the text-whitespace problem previously discussed.
Also, I could change the test image to add a viewbox, so it would look better when added manually. Though that doesn't operationally change anything that I can tell.


fix: tests not building files before running

This allows tests to work on the v6 branch.

Currently failing on Cannot find module 'worker_threads'.

@sebhildebrandt thoughts on dropping non LTS versions? That'd allow us to remove half the test matrix. I also have a feeling this is the reason we're getting the worker thread error as it's hidden under the experimental flag on older versions of node.


Implement Google Sign-In

Please do work for this task in a branch named issue-041.
Implement Google Sign-In rather than entering an Email and Password.

Added Google Sign-In option.


fix(autocomplete): return value instead of label in form submission

📝 Description
Similar to Select, use a hidden input to hold the actual value.

Closes: #3353
Closes: #3343

⛳ Current behavior (updates)
The value in Input is actually label. In form submission, users need the value instead of the label.
const animals = [
  {label: "Big Cat", value: "cat"},
  {label: "Big Dog", value: "dog"},
];

const handleSubmit = (e) => {
  e.preventDefault();
  const value = e.target.animal.value;

  console.log(value); // showing `Big Cat` while `cat` is expected
};

return (
  <form onSubmit={handleSubmit}>
    <Autocomplete
      defaultItems={animals}
      defaultSelectedKey="cat"
      label="Favorite Animal"
      name="animal"
    >
      {(item) => <AutocompleteItem key={item.value}>{item.label}</AutocompleteItem>}
    </Autocomplete>

    <Button type="submit">Submit</Button>
  </form>
);

🚀 New behavior

Please describe the behavior or changes this PR adds

💣 Is this a breaking change (Yes/No):
Yes. Existing form values will be different after this change.
📝 Additional Information

Summary by CodeRabbit

New Features

Enhanced form submission process for autocomplete, returning actual values instead of labels.
Introduced a new WithFormTemplate for submitting selected values, displaying alerts upon submission.

Bug Fixes

Improved handling of required fields and validation in the autocomplete component.

Tests

Expanded test coverage for the Autocomplete component, ensuring accurate form value retrieval and validation.

Documentation

Updated stories to include new templates demonstrating form integration with the autocomplete feature.

is there any progress on this issue? please merge so i can use the autocomplete component

Thanks. really appreciate it 🙌👌

@wingkwong @jrgarciadev
I don't think this behavior is a bug.
Autocomplete works as an input, not a select. So, it makes sense to send the label (the displayed text) on form submission.
For example, if the key is a sent as the value, the Custom value feature will send the key instead of the user's input. This would not be useful.

As mentioned in this comment, autocomplete is not a select, so the label is submitted.
If you want to submit a value other the label, please use a Select or handle it as a controlled component.


#1 added test and code refactoring

@jose-manywho I just added a few comments with my thoughts - if you could take a look that would be great :zap:


Strange Module Not Found Error

This may be due to some peculiarities of NixOS that I'm not as yet aware of, but upon installing the add-on as a .zip file, blender correctly adds the addon's files to its addon filepath, and displays a message reading that the modules have been installed. On trying to enable the addon, however, an error occurs with the following traceback-
File "/nix/store/(random string)-blender-3.5.1/share/blender/3.5/scripts/modules/addon_utils.py", line 333, in enable
mod = __import__(module_name)
ModuleNotFoundError: No module named 'ReSprytile-0.8'

The issue, seemingly, is that the file has incorrectly truncated the path for the module it's trying to enable, removing the final ".1"; this occurred earlier, but also truncated the filename to "ReSprytile-0". The current state was achieved by simply changing the name of the folder to "ReSprytile-0", but has persisted after reinstalling the addon altogether.
Oddly, this issue does not happen with the original Sprytile, which instead breaks after having been enabled due to an error while loading image previews.
Expected Behavior
The addon, after installation, should be possible to enable through the blender preferences addon menu.
###Steps to Reproduce

Install blender 3.5.1 declaratively through Nix package manager
Download ReSprytile 0.8.1 as .zip from releases page
Install ReSprytile 0.8.1 through Blender's Preferences/Add-ons menu
Attempt to enable the addon in the Preferences/Add-ons Menu

Try renaming the .zip file from ReSprytile-0.8.1.zip to ReSprytile.zip  or SpryTile.zip and install it again. Worked for me.

Here's what worked for me, if this helps anyone googling this. Ubuntu user, Blender 3.6.5

0.8.1 wasn't working (same error as OP)
0.6.1 would install, but then doing anything would throw errors
0.8.0 seems to work just fine

Unzipping, renaming the folder to ReSprytile, and finally zipping it again works.


Added functionality CLOB/BLOB to the method of bindParam

I checked bindParam method from Oci8PDO_Statement and found out that it dosn't process variables of the parameter type. I used this functionality in my project. I think this rework will be helpful to somebody.

Thanks for the addition!


Back button nav

Am using templ with htmx .
anyone noticed that sone systems when you go back load the old page instantly and at the place ( in terms of scrolling ) where you were ?

@gedw99 stop being everywhere 😆

Thanks @a-h
Will try out sone of these approaches and Par back an example


elastalert-create-index problem

Hey , When I enter elastalert-create-index command and after some questions I am getting this error. Please help me.
bitnami@debian:~/elasticsearch-7.0.1$ sudo elastalert-create-index
/usr/local/lib/python2.7/dist-packages/requests-2.21.0-py2.7.egg/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Enter Elasticsearch host: <IP_ADDRESS>
Enter Elasticsearch port: 9200
Use SSL? t/f: f
Enter optional basic-auth username (or leave blank):
Enter optional basic-auth password (or leave blank):
Enter optional Elasticsearch URL prefix (prepends a string to the URL of every request):
New index name? (Default elastalert_status)
New alias name? (Default elastalert_alerts)
Name of existing index to copy? (Default None)
Elastic Version: 7.0.0
Reading Elastic 6 index mappings:
Reading index mapping 'es_mappings/6/silence.json'
Traceback (most recent call last):
  File "/usr/local/bin/elastalert-create-index", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/elastalert/create_index.py", line 265, in main
    create_index_mappings(es_client=es, ea_index=index, recreate=args.recreate, old_ea_index=old_index)
  File "/usr/local/lib/python2.7/dist-packages/elastalert/create_index.py", line 27, in create_index_mappings
    es_index_mappings = read_es_index_mappings() if is_atleastsix(esversion) else read_es_index_mappings(5)
  File "/usr/local/lib/python2.7/dist-packages/elastalert/create_index.py", line 120, in read_es_index_mappings
    'silence': read_es_index_mapping('silence', es_version),
  File "/usr/local/lib/python2.7/dist-packages/elastalert/create_index.py", line 134, in read_es_index_mapping
    return json.load(f)
  File "/usr/lib/python2.7/json/__init__.py", line 291, in load
    **kw)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

I got the same issue,
running on ubuntu 18.04 ELK stack 7.0 and elastalert>=0.2.0b
# elastalert-test-rule /etc/elastalert/rule.yml
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "/usr/local/bin/elastalert-test-rule", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/elastalert/test_rule.py", line 441, in main
    test_instance.run_rule_test()
  File "/usr/local/lib/python2.7/dist-packages/elastalert/test_rule.py", line 408, in run_rule_test
    conf = load_conf(args, defaults, overwrites)
  File "/usr/local/lib/python2.7/dist-packages/elastalert/config.py", line 44, in load_conf
    conf = yaml_loader(filename)
  File "/usr/local/lib/python2.7/dist-packages/staticconf/loader.py", line 167, in yaml_loader
    with open(filename) as fh:
TypeError: coercing to Unicode: need string or buffer, NoneType found

am also facing same error while testing example rules (frequency type) but this not related to elastalert , its more related to python3.
Python version 3.6
elastalert==0.2.1
elasticsearch==7.0.2
can someone please advise which version python3 should be used!!
Thanks in advance!.

I got the same issue  ????
@prabhur24 @lasse-kristensen
These are not at all the same as the original poster. Different command, different error. This was just fixed in master https://github.com/Yelp/elastalert/commit/3affdd7ebf2b6d82c5cfcad0092df97dc27cd8b1
As for the original issue, I'm not sure exactly what the issue is. It's trying to read https://github.com/Yelp/elastalert/blob/master/elastalert/es_mappings/6/silence.json. Can you double check that it exists at /usr/local/lib/python2.7/dist-packages/elastalert/es_mappings/6/silence.json and looks the same as the linked file above?

@lasse-kristensen | @cayirburak  issue is due to --config missed.
updated query and example be like : elastalert-test-rule --config config.yaml example_rules/example_frequency.yaml
You can find more on : https://github.com/Yelp/elastalert/issues/2391


Fixed incorrect sample outputs

Well, as the timezone is not specified in the input, the local timezone of the system is used, which in my case was Paris (UTC+1), and 9pm UTC+1 = 8pm UTC in this case.


Yarn

Added Yarn for dependency installation
Removed .jsx file extension from import statements

Hey @screendriver, It'd be great if you could also put in a case in favor of Yarn. Why shouldn't we stick to npm?

I like yarn over npm because

It's easier to keep a lockdown on version numbers. With npm, there is no guarantee that the same package.json will install the same versions of the dependencies in any machine it is run on. You could lock all of it down with something called npm shrinkwrap but it's not automatic. Yarn introduces a lock file that updates everytime a module is added. This makes the installation of packages in every machine deterministic automatically, which cannot be guaranteed in the case of npm.

The messages seem clearer and nicer, when compared to npm

That said, it's not an absolutely essential thing for an immediate jump to yarn. Chances are that, by the time we need this, npm might catch up with yarn in the feature set 😀

Everything said :wink: With yarn your package installation is 100% reproducible on every machine.

We are in the midst of a major refactor and we'd probably stick to npm5 atm. So, closing this PR. 😢


Add topics to this repository

You should add topics to this repository
the topic awesome is a mandatory, this way this repository will be displayed in https://github.com/topics/awesome

Done :)


fix server update

Are we going to revert changes to "standalone_suffix" once the PR is ready?

@PProfizi the post pipelines are broken with the current pre0 server because of a pip upgrade not supporting what we have in the setup.py, I will complete this PR and we can revert once the server is updated, what do you think?


Parsing Julia code

I want to experiment with Julia and scheme interoperation. How do I parse Julia code with the included femtolisp repl?

In the julia/src subdirectory of the Julia repository you'll find a few files with a .scm extension, including julia-parser.scm and julia-syntax.scm. Those are the actual lexical and parsing modules for the language.

Run ./julia --lisp to get to its embedded femtolisp. The scheme function julia-parse parses julia code.

You need more hardcoded C functions to use julia-parser.scm, for example the implementation of identifier-start-char? which is in https://github.com/JuliaLang/julia/blob/master/src/flisp/julia_extensions.c


removed unnecessary space from model.stub

for some reason with this space I wasn't able to align public $timestamps = false; under protected $primaryKey = 'id'; correctly

Sure, thank you!

Sure, thank you!


Is it possible to generate OGP Image that the size lower than 1MB?

Description
I have a error when I run build on vercel free plan.
It might happen at OGP Generation. How I can solve this problem.

Error: The Edge Function "api/social-image" size is 1.02 MB and your plan size limit is 1 MB. Learn More: https://vercel.link/edge-function-size

See more info here: https://nextjs.org/docs/messages/large-page-data
--
Generating static pages (3/4)
✓ Generating static pages (4/4)
Finalizing page optimization ...
Collecting build traces ...
Next.js Speed Insights is enabled for this production build. You'll receive a Real Experience Score computed by all of your visitors.

Route (pages)                              Size     First Load JS
┌ ● / (ISR: 10 Seconds) (193560 ms)        285 B           175 kB
├   /_app                                  0 B             125 kB
├ ● /[pageId]                              292 B           175 kB
├ ○ /404 (411 ms)                          1.66 kB         127 kB
├ λ /api/notion-page-info                  0 B             125 kB
├ λ /api/search-notion                     0 B             125 kB
├ ℇ /api/social-image                      0 B             125 kB
├ λ /feed                                  243 B           125 kB
├ λ /robots.txt                            247 B           125 kB
└ λ /sitemap.xml                           249 B           125 kB
+ First Load JS shared by all              141 kB
├ chunks/framework-92a422f151f77ddb.js   45.2 kB
├ chunks/main-436b35c631549ada.js        32 kB
├ chunks/pages/_app-db69a3bacbca03de.js  45.5 kB
├ css/623c00a2a2f28a98.css               15.4 kB
└ other shared chunks (total)            2.5 kB

○  (Static)        prerendered as static content
●  (SSG)           prerendered as static HTML (uses getStaticProps)
(ISR)           incremental static regeneration (uses revalidate in getStaticProps)
λ  (Dynamic)       server-rendered on demand using Node.js
ℇ  (Edge Runtime)  server-rendered on demand using the Edge Runtime

Done in 216.18s.
Traced Next.js server files in: 60.153ms
Created all serverless functions in: 3.379s
Collected static files (public/, static/, .next/static): 14.434ms
Build Completed in /vercel/output [5m]
Deploying outputs...

Error: The Edge Function "api/social-image" size is 1.02 MB and your plan size limit is 1 MB. Learn More: https://vercel.link/edge-function-size

Thanks!

If you want, you can remove lib/fonts and the references to them. They are optional and just make the rendered images look a lil nicer.

See also https://github.com/transitive-bullshit/nextjs-notion-starter-kit/issues/652


base64 compatibility

We currently rely on btoa and atob, because that works in browsers and worked in versions of Node we tested against, but that's not as universal as we had hoped.
We should instead, provide some compatibility shim against the Buffer API that should more likely exist? We might need to provide a fallback for even that if neither Buffer nor btoa and friends exist.
But for now, it seems either way, it'd be more favorable to use the Buffer API when available over btoa.
I propose something like this, granted I dunno the best way to do this in JavaScript/TypeScript these days:
var b64encode;
var b64decode;
if(typeof Buffer !== "undefined") {
  b64encode = x => Buffer.from(x, 'latin1').toString('base64')
  b64decode = x => Buffer.from(x, 'base64').toString('latin1')
} else if (typeof btoa !== "undefined") {
  b64encode = btoa
  b64decode = atob
} else {
  // I dunno, natively has neither
}

console.log(b64encode('foo'))
console.log(b64decode('Zm9v'))

I think this is still reasonably applicable since we don't simply use it for the Authorization header. While that's the only use of btoa, atob is used to decode binary row data, which we do for every row in a QueryResult.
Refs: https://github.com/planetscale/database-js/issues/47

Chiming in: beyond being outdated and not recommended for new projects, atob and btoa severely compromises the decoding of utf-8 data.
By using these methods, the package is naively considering the values as being encoded in ASCII formatting, thus destroying characters outside the aforementioned encoding. The following TEXT value would be butchered: “Ô meu amigo, nós precisamos reunir o pessoal para o aniversário de José”
I have confirmed that the decoding issue happens locally by forcing btoa to comply to the new standards, which returns the data correctly decoded. When that is fixed, another issue arises: The decoder does not know the string length anymore as it was previously miscalculated and the columns values leak throughout the entire row, rendering the result useless.

Do you have an example where this fails with a table we can reproduce with? I have a bunch of test data that tests various encodings and Unicode data without any issues currently, so I'm curious what fails in practice here so we can construct a test case. On Jun 13, 2024, at 21:50, Vinicius Tavares @.***> wrote:
Chiming in: beyond being outdated and not recommended for new projects, atob and btoa severely compromises the decoding of utf-8 data.
By using these methods, the package is naively considering the values as being encoded in ASCII formatting, thus destroying characters outside the aforementioned encoding. The following TEXT value would be butchered: “Ô meu amigo, nós precisamos reunir o pessoal para o aniversário de José”
I have confirmed that the decoding issue happens locally by forcing btoa to comply to the new standards, which returns the data correctly decoded. When that is fixed, another issue arises: The decoder does not know the string length anymore as it was previously miscalculated and the columns values leak throughout the entire row, rendering the result useless.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Hey @mattrobenolt! You are right to assume the data received is indeed a correctly encoded binary UTF-8 string. The thing with btoa is that it is literally means binary to ascii conversion and vice-versa, so any characters outside this range will be improperly decoded.
Here's a simple example using my test above:
{
  "headers": [
    ":vtg1 /* VARCHAR */"
  ],
  "types": {
    ":vtg1 /* VARCHAR */": "VARCHAR"
  },
  "fields": [
    {
      "name": ":vtg1 /* VARCHAR */",
      "type": "VARCHAR",
      "charset": 255
    }
  ],
  "rows": [
    {
      ":vtg1 /* VARCHAR */": "Ã meu amigo, nÃ³s precisamos reunir o pessoal para o aniversÃ¡rio de JosÃ©"
    }
  ],
  "rowsAffected": 0,
  "insertId": "0",
  "size": 1,
  "statement": "SELECT \"Ô meu amigo, nós precisamos reunir o pessoal para o aniversário de José\"",
  "time": 1.217693
}

Now, if I monkeypatch atob like this:
globalThis.atob = (str: string) => Buffer.from(str, 'base64').toString('utf-8')
The response is correctly parsed:
{
  "headers": [
    ":vtg1 /* VARCHAR */"
  ],
  "types": {
    ":vtg1 /* VARCHAR */": "VARCHAR"
  },
  "fields": [
    {
      "name": ":vtg1 /* VARCHAR */",
      "type": "VARCHAR",
      "charset": 255
    }
  ],
  "rows": [
    {
      ":vtg1 /* VARCHAR */": "Ô meu amigo, nós precisamos reunir o pessoal para o aniversário de José"
    }
  ],
  "rowsAffected": 0,
  "insertId": "0",
  "size": 1,
  "statement": "SELECT \"Ô meu amigo, nós precisamos reunir o pessoal para o aniversário de José\"",
  "time": 2.099751
}

@mattrobenolt it is indeed something different. There was a misunderstanding in my part about the cast property in the connection constructor. I've set it as a function to transform DATETIME fields to real javascript Date instances.
In my thought process, I though cast was a post-processor of the results output, not a fully fledged parser function itself. I see that the package exports the default parser, so I will use that as default case. Thank you for your time! =)

Ah, yeah, that checks out. It's definitely expected for the raw data to be binary encoded data, so is entirely safe to do atob. But yeah, inside cast is where we decode the binary data as utf8 if applicable.


auto-scale

Auto-scale does nothing and the resolution stays about 1024. I'm on Firefox

I'm pretty sure this is based on the base image I use.
Try to build the Docker image by your own and update the Base image (https://github.com/jlesage/docker-baseimage-gui)
I currently don't have the time to look into it.
But if you can fix it, I'm happy to accept an PR.

Ok I set the DISPLAY_WIDTH and DISPLAY_HEIGHT env vars to 1920x1080 which was my main issue. It seems auto-scale scales down, not up.


Set source code and post build event to version 1.2.2

Yeah, maybe worth looking into soon.
-Brett


VsCode Flutter Android Build Gradle Problem - BuildLifecycleController

I tried to run a brand new Flutter Android App but ran into a Build Gradle problem. This problem is affecting all Flutter apps on my machine...
I've never had this type of issue before so kinda confused... details of the error are as follows:
FAILURE: Build failed with an exception.

* What went wrong:
Gradle could not start your build.
> Could not create service of type BuildLifecycleController using ServicesProvider.createBuildLifecycleController().
         > Could not configure services using GradleScopeCompileServices.configure().

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 34s
Running Gradle task 'assembleRelease'...                           39.5s
Gradle task assembleRelease failed with exit code 1

Things I've tried:

flutter doctor -v (details below):

    [√] Flutter (Channel stable, 3.0.5, on Microsoft Windows [Version 10.0.19043.2006], locale en-US)
        • Flutter version 3.0.5 at C:\src\flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision f1875d570e (3 months ago), 2022-07-13 11:24:16 -0700
        • Engine revision e85ea0e79c
        • Dart version 2.17.6
        • DevTools version 2.12.2

    Checking Android licenses is taking an unexpectedly long time...[√] Android toolchain - develop for Android devices (Android SDK
    version 32.1.0-rc1)
        • Android SDK at C:\Users\Udhedhe\AppData\Local\Android\Sdk
        • Platform android-32, build-tools 32.1.0-rc1
        • ANDROID_HOME = C:\Users\Udhedhe\AppData\Local\Android\Sdk
        • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
        • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
        • All Android licenses accepted.

    [√] Chrome - develop for the web
        • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

    [√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
        • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
        • Visual Studio Community 2022 version 17.2.32630.192
        • Windows 10 SDK version 10.0.19041.0

    [√] Android Studio (version 2021.1)
        • Android Studio at C:\Program Files\Android\Android Studio
        • Flutter plugin can be installed from:
           https://plugins.jetbrains.com/plugin/9212-flutter
        • Dart plugin can be installed from:
           https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

    [√] VS Code, 64-bit edition (version 1.71.0)
        • VS Code at C:\Program Files\Microsoft VS Code
        • Flutter extension version 3.50.0

    [√] Connected device (3 available)
        • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.2006]
        • Chrome (web)      • chrome  • web-javascript • Google Chrome 106.0.5249.119
        • Edge (web)        • edge    • web-javascript • Microsoft Edge 106.0.1370.42
        ! Device emulator-5554 is offline.

I've executed flutter clean
I've executed flutter packages pub cache clean
I've executed ./gradlew clean in the android folder
I've executed ./gradlew build in the android folder
I've restarted my computer 10 million times

So far nothing has worked...
Here are details of my build.gradle file
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.klant_jamb_prepare"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
        minSdkVersion flutter.minSdkVersion
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

Here's the details from java -version:
java version "<IP_ADDRESS>" 2022-04-22 LTS
Java(TM) SE Runtime Environment 18.9 (build <IP_ADDRESS>+2-LTS-10)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build <IP_ADDRESS>+2-LTS-10, mixed mode)

What can I do now to make this error go away??? Thank you for any help...

This repository is for the Gradle Build Action, which helps run Gradle on GitHub Actions. Since your issue is with running Flutter + Gradle on your local machine (not on GitHub Actions), this isn't the right place to report it.
I suspect the best place to report would be the Flutter issue tracker: https://github.com/flutter/flutter/issues


Merge GEOSadas-5.29.4-p4 into main

This PR is a merge of the tag GEOSadas-5.29.4-p4 (which is on develop) into main.
This is in anticipation of making a v<IP_ADDRESS> tag off of main.
Note, I'm labeling this as non-0-diff as I'm sure it's quite a bit different to v<IP_ADDRESS>! Though @rtodling will know for sure.
As a check, here is a two-dot diff of GEOSadas-5.29.4-p4 and this branch, merge/mathomp4/merge-GEOSadas-5.29.4-p4-into-main, showing all files are identical
https://github.com/GEOS-ESM/GEOSadas/compare/GEOSadas-5.29.4-p4..merge/mathomp4/merge-GEOSadas-5.29.4-p4-into-main

Hi Matt,
As far as I can tell this looks good - I see no diffs w/ GEOSadas-5.29.4-p4
Thank you

@rtodling It has been merged in. You can now make a release for v<IP_ADDRESS> (or I can do so and you can fill out the release notes). Let me know.


Remove unused code for ActiveSupport::Inflector

requiring 'active_support/inflector' defines these methods on String
therefore none of this code in needed

@jrafanie Please review :scissors:
@miq-bot add_label technical debt

I'm not sure the code paths that actually use this are requiring activesupport though...and there are no tests to let us know 😕

@Fryguy This file itself requires 'active_support/inflector'


rewrite agendasdb

It seems it would be much more simple to use a single file and use json.Encode/Decode on it.

This is not needed any more, agendadb has been completely removed


[RFE] better flow from app.ns.json to fast to as3 view

As a future flow to enhance usability, it would be nice to have all details about the ns app in a single webview.
This web view will receive the main app.ns.json, show the config in mini monico editor and show real time changes in another tab (in same webview) to show real time fast template feedback.
This could also provide a realtime output updates to the rendered AS3.
Need to add some screenshots of examples, but something similar to the following
https://microsoft.github.io/monaco-editor/playground.html?source=v0.52.0#example-creating-the-editor-editor-basic-options

I started this mock up on code pen:  https://codepen.io/DumpySquare/pen/QWPRZBr
example project using monaco:  https://github.com/PolymerVis/monaco-editor/blob/master/README.md
example of monaco editor in iFrame/codepen:  https://codepen.io/nibach/pen/QWbLzwJ
Walkthrough of using monaco in an iFrame:  https://denoland.medium.com/how-to-add-monaco-to-a-next-js-app-to-enable-custom-user-workflows-4982b8d00002
example of creating a coding sandbox:  https://joyofcode.xyz/create-a-coding-sandbox
integrating a custom monaco editor into a vscode webview:  https://github.com/microsoft/vscode-discussions/discussions/74


legion_prof_rs: assertion failed: creation_time < entry.time_range.stop.unwrap()

I updated to the lastest legion and I am seeing this when trying to generate archive profiles with legion_prof:
assertion failed: creation_time < entry.time_range.stop.unwrap()

There are logs here: https://s3df.slac.stanford.edu/people/seshu/xpplx5720/prof_logs/

@eddy16112 any idea what's happening here?

Which hash of Legion did you build with? Legate is pinned to an old version and probably doesn't have the update.

commit b7af50505d35a0c5c271c8d96c398d7a9a6f0065 (HEAD -> master, origin/master, origin/HEAD)
Merge: 5e043d2b2 69be7d7c1
Author: Mike Bauer<EMAIL_ADDRESS>Date:   Thu Oct 10 05:25:55 2024 +0000

    Merge branch 'fixemptyregiondel' into 'master'

    Fix Empty Region Deletion

    See merge request StanfordLegion/legion!1492

I built legate from src and used --with-legion-src-dir and --with-clean

FWIW, with a profiler built from the latest Legion master these logs load for me and don't crash in the same way as before.

Ok, I guess you have to make archive profiles. I will look at what is going wrong tonight.

Another fix for implicit top-level task profiling. Will need to rebuild and rerun to capture new logs.
https://gitlab.com/StanfordLegion/legion/-/merge_requests/1495

Merged.


Add Capability to Remove Internal Clients from Running Router

Hello, is this going to be integrated? It'd be a nice feature to have

I am not sure what the timetable is on this feature.

I am no longer sure if there is actually a good use case for this. I will leave this issue open a little longer to get feedback if there is someone that has a good use case.


Scala Common Enrich: extract original IP address from CollectorPayload headers

If a Snowplow user is putting multiple SSCs behind an Elastic Load Balancer, then the IP address stored in the CollectorPayload will actually be the ELB's IP address. The client IP address will be the first value in the X-Forwarded-For header, as per http://en.wikipedia.org/wiki/X-Forwarded-For
Therefore, we should have a piece of logic to replace the proxy IP with the true client IP address, before subsequent processing (e.g. geo-IP lookups).

See also https://github.com/snowplow/snowplow/issues/1373 (unscheduled)

This can wait till r62 as doesn't impact SSC.


Squeak display is cut off on mobile

The squeak content is cut off horizontally if the content is too long.

Similar to https://github.com/yzernik/squeaknode/issues/697

Fixed in v0.2


Deprecation warning for deprecated types

Resolves https://github.com/istio/istio/issues/5668

@esnible: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
1c164d4388d6bd8bb0f997cbed050dd39ea5d00e
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
a8839aa515505c7855e2f962640ecc46cdaeb5a4
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
a8839aa515505c7855e2f962640ecc46cdaeb5a4
link
/test istio-pilot-e2e

prow/istio-unit-tests.sh
2418a2477f870a9189cd3398963b2d26c0aa9f95
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
e76e519eee36df79f6f7c110ab2055d6e1ad0c74
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-pilot-e2e

@esnible: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-bookInfoTests.sh
fe61968dc7365502fa5d42890d11c60521d7a9cf
link
/test e2e-bookInfo

prow/istio-pilot-e2e.sh
fe61968dc7365502fa5d42890d11c60521d7a9cf
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: esnible, linsun
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [linsun]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: esnible, linsun
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

istioctl/OWNERS [linsun]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@esnible: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
fe61968dc7365502fa5d42890d11c60521d7a9cf
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Update to the latest version of resource-loader

Description of change

Pre-Merge Checklist

[ ] Tests and/or benchmarks are included
[ ] Documentation is changed or added
[ ] Lint process passed (npm run lint)
[ ] Tests passed (npm run test)

Codecov Report

Merging #5870 into dev will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev    #5870      +/-   ##
==========================================
+ Coverage   70.52%   70.53%   +<.01%
==========================================
  Files         206      206
  Lines       10407    10407
==========================================
+ Hits         7340     7341       +1
+ Misses       3067     3066       -1

Impacted Files
Coverage Δ

packages/loaders/src/Loader.js
94.59% <100%> (ø)
:arrow_up:

packages/ticker/src/Ticker.js
88% <0%> (+0.79%)
:arrow_up:

Continue to review full report at Codecov.

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


SAK-48435: Sakai Plus: “Issuer” field on “Add Tenant” page automatically adds the trailing slash when pasting the URL into the text field

LGTM - I love the way we can inject messages into JS from the Messages bundle directly.    Hey @ern can you take a quick look at this?

Here are my suggestions:

Put your function inside the <script> tag which is already there. No need to have one more script tag.
Is it important to use focus or scrollIntoView in this scenario? I am saying it because It might affect the usability of  jump-to-content and the accessibility of the page.

And have you thought about using pattern-attribute in this case?
<input type="text" class="form-control" id="issuer" value="" required="" name="issuer" pattern="https?://[^\s/]+(?:/[^/\s]+)*$" title="Issuer should not end with a trailing slash /">

I think it's a backend issue If it's adding automatically.

@zhuoY121 is doing a great job at Both QA and Dev :+1:

Here are my suggestions:

Put your function inside the <script> tag which is already there. No need to have one more script tag.
Is it important to use focus or scrollIntoView in this scenario? I am saying it because It might affect the usability of  jump-to-content and the accessibility of the page.

And have you thought about using pattern-attribute in this case? <input type="text" class="form-control" id="issuer" value="" required="" name="issuer" pattern="https?://[^\s/]+(?:/[^/\s]+)*$" title="Issuer should not end with a trailing slash /">

It is not necessary to use focus or scrollIntoView in this case. I think the best way is to use pattern-attribute you mentioned since we only want to check the input pattern.


Support for HK1 TV Box

Hi!
I'm trying to install a linux distribution on a HK1 TV Box, but I haven't got too much information about it. Is there some release that I can use or compile to get it done?
Thanks!
Sebastián.

Sorry, I do not plan to support other devices.


Delete Multiple Attachments

What does this PR do and why?
This PR adds the feature where users can use the checkboxes on the sample attachments page, and then click the Delete Files button in order to delete multiple attachments at once.
Screenshots or screen recordings

How to set up and validate locally

Navigate to a sample page.
Upload attachments
Use the checkboxes and selected >=2 attachments.
Click the Delete Files button
Ensure the list of attachments shown match those selected on the samples attachment page.
Delete the attachments
Ensure the samples attachment table no longer includes the deleted attachments

PR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

[x] I have evaluated the PR acceptance checklist for this PR.

You could probably allow that delete button to work if there is only 1 file selected.

You could probably allow that delete button to work if there is only 1 file selected.

Fixed in da99faebfd6f41ffdb759954cb04c834364f581b

As we (@joshsadam) discussed in Teams, there was a bug where on refresh, the action_link was not updating to the current number of checked off attachments on refresh, leading to the concatenate and delete buttons being disabled even if the minimum threshold of attachments was selected. This has been fixed in da99faebfd6f41ffdb759954cb04c834364f581b

@ericenns @joshsadam @ChrisHuynh333 Since we now have the Delete Files button where the user can select multiple files and then select it to delete the files, do you now think it would make sense to remove the individual Delete buttons for each attachment? I think either we remove the individual buttons, or we move it into an ellipsis menu for each row. Thoughts?

@ericenns @joshsadam @ChrisHuynh333 Since we now have the Delete Files button where the user can select multiple files and then select it to delete the files, do you now think it would make sense to remove the individual Delete buttons for each attachment? I think either we remove the individual buttons, or we move it into an ellipsis menu for each row. Thoughts?

let's leave this for now, so that we can get this merged by tomorrow so that It can be deployed in Azure and that I can demo it on Friday.

@ericenns @joshsadam @ChrisHuynh333 Since we now have the Delete Files button where the user can select multiple files and then select it to delete the files, do you now think it would make sense to remove the individual Delete buttons for each attachment? I think either we remove the individual buttons, or we move it into an ellipsis menu for each row. Thoughts?

let's leave this for now, so that we can get this merged by tomorrow so that It can be deployed in Azure and that I can demo it on Friday.

Sure thats no problem. We can update this after


looks vim less counted 1 line unless full-screen ?

Describe the bug
vim less counted 1 line of its window?
To Reproduce
e.g my term/vim here:
1, if full screen (f11), the lines is 95
2, or (not full screen - but max), the line is 93
Expected behavior
the lines# should be 94.
Screenshots
n/a
Environment (please complete the following information):
v8.2.430
Additional context
i can do the math and set the lines by myself, but just want to know if it was a bug or somehow i missed sth ?

a screenshot would help. Also a Vim with :set nu enabled. And finally, please show the output of echo $LINES $COLUMNS

um, yes, it expected the $LINES. and i found the xfce-term 'stole' 1 line to 'frame' when max .. that's why ..
thanks your answer and confirm.


can not find database in your source code

Since this is a database first, you need to enable migrations in your Package Manager Console or enter update-database in case you already did to automatically generate the database for you. Make sure you have the proper connection string that was already in set-up since this will be the basis of generating the new database for you.

Since this is a database first, you need to enable migrations in your Package Manager Console or enter update-database in case you already did to automatically generate the database for you. Make sure you have the proper connection string that was already in set-up since this will be the basis of generating the new database for you.


blog<EMAIL_ADDRESS>release

Platforms affected
Blog
Motivation and Context

Announcement for<EMAIL_ADDRESS>release

We might want to mention that this plugin is built-in to cordova-ios 6.x, which is why we're adding the platform version restrictions.

I'll make this adjustment later tonight.


Adding checks for downloaded source and tar files

Added the suggested changes from here: https://github.com/python-wheel-build/fromager/pull/154
Had to create a new branch since merge conflicts became a lot messy. I am really sorry about that.

I have pushed the changes as per your comments. Please let me know if any further changes are required.

I am now passing text_file which is a str instead of mock_download_url

I am now passing a fake url to the function as argument to avoid reliance on internet. Let me know if any more changes are required!
Thanks


Update README.md - more complete set-up instructions

This should make it a bit easier for someone new to get things up and running without too many errors.

This should probably be closed. #1 is a better way of doing the same thing, with less chance of someone getting something wrong.


Update scala-library to 2.13.13

About this PR
📦 Updates org.scala-lang:scala-library from 2.13.0 to 2.13.13
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (2.13.0).
You might want to review and update them manually.
.travis.yml
bt

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #76.


More details about sui

Welcome to Sui
Sui is a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language.
Sui Highlights
Sui offers the following benefits and capabilities:

Unmatched scalability, instant settlement
A safe smart contract language accessible to mainstream developers
Ability to define rich and composable on-chain assets
Better user experience for web3 apps

Sui is the only blockchain today that can scale with the growth of web3 while achieving industry-leading performance, cost, programmability, and usability. As we push towards mainnet launch, we will demonstrate capacity beyond the transaction processing capabilities of established systems – traditional and blockchain alike. We see Sui as the first internet-scale programmable blockchain platform, a foundational layer for web3.
Sui Architecture
flowchart LR
    CC(CLI Client) --> ClientService
    RC(Rest Client) --> ClientService
    RPCC(RPC Client) --> ClientService
    ClientService --> AuthorityAggregator
    AuthorityAggregator --> AC1[AuthorityClient] & AC2[AuthorityClient]
    subgraph Authority1
      AS[AuthorityState]
    end
    subgraph Authority2
      AS2[AuthorityState]
    end
    AC1 <==>|Network TCP| Authority1
    AC2 <==>|Network TCP| Authority2

Sui Overview
Sui is a smart contract platform maintained by a permissionless set of authorities that play a role similar to validators or miners in other blockchain systems.
Sui offers scalability and unprecedented low-latency for common use cases. Sui makes the vast majority of transactions processable in parallel, which makes better use of processing resources, and offers the option to increase throughput with more resources. Sui forgoes consensus to instead use simpler and lower-latency primitives for common use cases, such as payment transactions and asset transfers. This is unprecedented in the blockchain world and enables a number of new latency-sensitive distributed applications, ranging from gaming to retail payment at physical points of sale.
Sui is written in Rust and supports smart contracts written in the Move programming language to define assets that may have an owner. Move programs define operations on these assets including custom rules for their creation, the transfer of these assets to new owners, and operations that mutate assets.
Sui has a native token called SUI, with a fixed supply. The SUI token is used to pay for gas, and is also used as delegated stake on authorities within an epoch. The voting power of authorities within this epoch is a function of this delegated stake. Authorities are periodically reconfigured according to the stake delegated to them. In any epoch, the set of authorities is Byzantine fault tolerant. At the end of the epoch, fees collected through all transactions processed are distributed to authorities according to their contribution to the operation of the system. Authorities can in turn share some of the fees as rewards to users that delegated stakes to them.
Sui is backed by a number of state-of-the-art peer-reviewed works and years of open source development.
More About Sui
Use the following links to learn more about Sui and the Sui ecosystem:

Learn more about working with Sui in the Sui Documentation.
Join the Sui community on Sui Discord.
Find out more about the Sui ecosystem on the Sui Resources page.
Review information about Sui governance, decentralization, and Developer Grants Program on the Sui Foundation site.

Description
Describe the changes or additions included in this PR.
Test Plan
How did you test the new or updated feature?

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

thank you @Awizy12