maven-publish doesn't take platform constraints into account and publish NULL as version number

We publish libraries in a company wide BOM file that is being used by our applications. With Gradle 6 we moved to Gradle variants for publishing testBuilders for our libraries. Some of our applications publish also an SDK and we found out that when using capabilities from the BOM, the version is NULL in the metadata that is being published to the Maven repository. So it seems that for a requireCapability the version is not correctly resolved. As it is a feature from a library published in a BOM file, we don't know the exact version number. When using the SDK we receive an error as the published metadata module is not correct.
Expected Behavior

When publishing a metadata module to Maven central, a valid module is being published whit the correct version resolved
Current Behavior

The version is NULL and when trying to use the library, Gradle throws an exception
The version is not resolved correctly in the metadata file:
        {           "group": "com.test",           "module": "my-library",           "requestedCapabilities": [             {               "group": "com.test",               "name": "my-library-my-feature",               "version": null             }           ]         }
Context

We are trying to publish common code in reusable libraries and the versions managed in a BOM file
Steps to Reproduce

I have created a sample with 2 projects. Project 0_project will create a BOM and a library. This can be published to Maven local. The second project uses the BOM and add a dependency on the feature.
gradle-bug.zip
Steps:

cd 0_project
./gradlew publishToMavenLocal
cd ../1_project
./gradlew generateMetadataFileForMavenJavaPublication

{   "formatVersion": "1.1",   "component": {     "group": "com.test2",     "module": "1_project",     "version": "1.1.1",     "attributes": {       "org.gradle.status": "release"     }   },   "createdBy": {     "gradle": {       "version": "6.0.1",       "buildId": "x5dauafhrvayxbxkprk4p56yie"     }   },   "variants": [     {       "name": "apiElements",       "attributes": {         "org.gradle.category": "library",         "org.gradle.dependency.bundling": "external",         "org.gradle.jvm.version": 13,         "org.gradle.libraryelements": "jar",         "org.gradle.usage": "java-api"       },       "dependencies": [         {           "group": "com.test",           "module": "my-bom",           "version": {             "requires": "1.1.1"           },           "attributes": {             "org.gradle.category": "enforced-platform"           }         },         {           "group": "com.test",           "module": "my-library",           "requestedCapabilities": [             {               "group": "com.test",               "name": "my-library-my-feature",               "version": null             }           ]         }       ],       "files": [         {           "name": "1_project-1.1.1.jar",           "url": "1_project-1.1.1.jar",           "size": 861,           "sha512": "7bbbd57be798cc045ae8389b820e1d1d8fc1948b8fbdaf0fa760a465ebf54812ff319a59c4e4fa24bb401ce073e0e16701f2b412ca6b4ce8f7b6675d01949d4f",           "sha256": "8a75c1d84fb3492591034334e6730deaf95cbca8dbcb781d8212ddd54044bab1",           "sha1": "39f46a2865bbf2bc20bb579a037b365954ac0bba",           "md5": "f1aacaff02ad6f0b13875b46198348cc"         }       ]     },     {       "name": "runtimeElements",       "attributes": {         "org.gradle.category": "library",         "org.gradle.dependency.bundling": "external",         "org.gradle.jvm.version": 13,         "org.gradle.libraryelements": "jar",         "org.gradle.usage": "java-runtime"       },       "dependencies": [         {           "group": "com.test",           "module": "my-bom",           "version": {             "requires": "1.1.1"           },           "attributes": {             "org.gradle.category": "enforced-platform"           }         },         {           "group": "com.test",           "module": "my-library",           "requestedCapabilities": [             {               "group": "com.test",               "name": "my-library-my-feature",               "version": null             }           ]         }       ],       "files": [         {           "name": "1_project-1.1.1.jar",           "url": "1_project-1.1.1.jar",           "size": 861,           "sha512": "7bbbd57be798cc045ae8389b820e1d1d8fc1948b8fbdaf0fa760a465ebf54812ff319a59c4e4fa24bb401ce073e0e16701f2b412ca6b4ce8f7b6675d01949d4f",           "sha256": "8a75c1d84fb3492591034334e6730deaf95cbca8dbcb781d8212ddd54044bab1",           "sha1": "39f46a2865bbf2bc20bb579a037b365954ac0bba",           "md5": "f1aacaff02ad6f0b13875b46198348cc"         }       ]     }   ] }
Your Environment

Build scan URL:

Thanks for the report @bdeneuter. The problem is not that the platform constraints are ignored, but that we expect a version during parsing although it is totally fine that there is no version in a capability request.
This was an oversight from our side. Instead of publishing null, it should publish nothing and  when consuming the publication it should not fail. Working on a fix for 6.1.

@bdeneuter the fix is in the latest 6.1 night - 6.1-20191217025822+0000. Can you confirm that it fixes the issue for you?

@jjohannes thanks, I tested it and with the gradle version you specified it works.


Error loading ancillary file with 2.2.0

With 2.1.0, there's no problem with non-time varying ancillary files. E.g.
>>> c = iris.load_cube('/PATH/umdir/ancil/atmos/n216e/land_sea_mask/igbp/v4/qrparm.mask')
>>> print(c)
land_binary_mask / (1)              (latitude: 324; longitude: 432)
     Dimension coordinates:
          latitude                           x               -
          longitude                          -               x
     Attributes:
          STASH: m01s00i030
          source: Data from Met Office Unified Model
          um_version: 9.2

However with 2.2.0 it seems to be trying to create a time axis and is upset by the year 0.
>>> c = iris.load_cube('/PATH/umdir/ancil/atmos/n216e/land_sea_mask/igbp/v4/qrparm.mask')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/PATH/lib/python3.6/site-packages/iris/__init__.py", line 373, in load_cube
    cubes = _load_collection(uris, constraints, callback)
  File "/PATH/lib/python3.6/site-packages/iris/__init__.py", line 313, in _load_collection
    result = iris.cube._CubeFilterCollection.from_cubes(cubes, constraints)
  File "/PATH/lib/python3.6/site-packages/iris/cube.py", line 145, in from_cubes
    for cube in cubes:
  File "/PATH/lib/python3.6/site-packages/iris/__init__.py", line 300, in _generate_cubes
    for cube in iris.io.load_files(part_names, callback, constraints):
  File "/PATH/lib/python3.6/site-packages/iris/io/__init__.py", line 207, in load_files
    constraints):
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/rules.py", line 429, in load_cubes
    user_callback_wrapper=loadcubes_user_callback_wrapper):
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/rules.py", line 350, in _load_pairs_from_fields_and_filenames
    cube, factories, references = _make_cube(field, converter)
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/rules.py", line 293, in _make_cube
    metadata = converter(field)
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/pp_load_rules.py", line 665, in convert
    t1=f.t1, t2=f.t2, lbft=f.lbft)
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/pp_load_rules.py", line 511, in _convert_time_coords
    t1_epoch_hours = date2hours(t1)
  File "/PATH/lib/python3.6/site-packages/iris/fileformats/pp_load_rules.py", line 489, in date2hours
    epoch_hours = np.float_(epoch_hours_unit.date2num(t))
  File "/PATH/lib/python3.6/site-packages/cf_units/__init__.py", line 1947, in date2num
    return cdf_utime.date2num(date)
  File "cftime/_cftime.pyx", line 766, in cftime._cftime.utime.date2num
  File "cftime/_cftime.pyx", line 413, in cftime._cftime.JulianDayFromDate
  File "cftime/_cftime.pyx", line 1818, in cftime._cftime._IntJulianDayFromDate
ValueError: date 0000-00-00 does not exist in the standard calendar

This looks like the errors caused by cftime <IP_ADDRESS> https://github.com/SciTools/iris/pull/3215.

@MartinDix Thanks for raising this issue. Our travis-ci tests were failing due to a change in cftime from 1.0.1 to <IP_ADDRESS>.
For the moment, pin cftime back to version 1.0.1 and let me know if that fixes your issue.
In the meantime, I'll investigate the root of the problem with cftime version <IP_ADDRESS> and iris.
Is that okay for now?

Going back to cftime 1.0.0 fixes it.
Thanks

@MartinDix good to hear that you're now unblocked.
We've temporarily pinned cftime for iris on conda-forge to circumvent this issue until we source the root problem and put up a fix.
Thanks

Just came across this bug. Unistalled iris then reinstalled it -- it still wanted to install cftime=<IP_ADDRESS>. SO I manually installed cftime=1.0.1. I think the bug is because t=0 is standard for constant time ancillary files (perhaps only for HadCM3). A fix might be:
try:
epoch_hours = np.float_(epoch_hours_unit.date2num(t))
except ValueError:
epoch_hours = np.float_(epoch_hours_unit.date2num('1-1-1'))


CSV Break Line

Hello,
I need help to break line in CSV export. One line per object.
Thank you.

Hi - I recommend to post your question to Stackoverflow (tag it with django-import-export).  Include as much information as you can to help people understand your issue.  There are guidelines here


Fix(web-react): ClickOutside working with Dialog and Dropdown #DS-945

Description

Moved logic for modal to modal callback from useClickOutside hook

Issue reference
web-react: useClickOutside nefunguje v Dropdownu

https://deploy-preview-1113--spirit-design-system-react.netlify.app/

coverage: 96.46% (+26.1%) from 70.405% when pulling 9450a25f38040c17683ce8180f9c68639f926c0a on fix/DS-945-clickoutside into ab669844731e1ffe988cc79fe83aaa6a19a26da5 on main.


Issue: "scrcpy-server.jar' does not exist"

Hey guys,
when I run the current scrcpy version (1.14.1 and later) I get this message when I start the SCRCPY.EXE right in the folder:
INFO: scrcpy 1.14 <https://github.com/Genymobile/scrcpy>
stat: No such file or directory
ERROR: 'D:\SCRCPY_Android_Oculus\scrcpy\scrcpy-server.jar' does not exist or is not a regular file
Press any key to continue...

I'm on Windows, 64 bit system.
The scrcpy-server has no .JAR-ending when unpacked, in every version I download..
Help would be very much appreciacted.

You probably set an environment variable SCRCPY_SERVER_PATH. Remove it.

Hey @rom1v ,
thanks for the quick reply! I did, but AFTER the download. So the file already was "broken".


x/tools/go/packages: IgnoreFuncBodies implementation and comment mismatch

https://github.com/golang/tools/blob/567d1c21dc5f922038933aa862c0719a9768eb83/go/packages/packages.go#L827-L830
// Type-check bodies of functions only in non-initial packages.
// Example: for import graph A->B->C and initial packages {A,C},
// we can ignore function bodies in B.
IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial,

The comment and the given example is self-contradictory. The implementation is actually type-check bodies of functions only in initial packages.

For my use case, I would appreciate if IgnoreFuncBodies could be somehow controlled by packages.Config.
I have a script (invoked by go generate) parsing source code, harvesting struct definition and generating serialization-related code for those structs. Due to lack of serialization-related code, the type-checking for function bodies always fail because those structs does not implement my serialization interface yet.
I don't have any assertions like var _ MySerializationInterface = MyStruct{}. So as long as I can turn IgnoreFuncBodies on, everything works for me.

There isn't currently a way to control this field directly, but there are various ways to achieve what you want. The simplest is to supply a ParseFile function to the Config that invokes the parser as normal, and then destroys the function bodies:
        // Eliminate bodies of top-level functions, methods, inits.
        for _, decl := range file.Decls {
                if fn, ok := decl.(*ast.FuncDecl); ok {
                        fn.Body = nil
                }
        }

Another would be to ignore any type error that is located within a function body.  Or to ignore certain kinds of error message.
You may need to take the last approach because there are likely to be declarations outside of function bodies that assign your struct values to interfaces types (e.g. var v I = newMyStruct()) so destroying function bodies may not be sufficient to suppress all errors.
https://go-review.git.corp.google.com/c/tools/+/452578 fixes the documentation. Thanks for pointing that out.


TECH add informations in package.json

Coverage remained the same at 100.0% when pulling 6fbcd745005d454989f8ff4aba1b38eff8031297 on improve-packagejson into f5bd74eba2cb290c74d44911c93b9056534990df on master.

Coverage remained the same at 100.0% when pulling 2a5f2c9265b5a756ea48a3bbf48eb184ee103b3f on improve-packagejson into f5bd74eba2cb290c74d44911c93b9056534990df on master.

LGTM


[PDI-11864]: As a Salesforce ETL Developer make Salesforce Upsert Ste…

…p Better by having reference fields handled correctly
This implementation has been done as part of possible changes within the PR https://github.com/pentaho/pentaho-kettle/pull/435.
What was done:
1)For all sales force fields we add field.getName() into targets list;
2)For the reference fields we also scan referenced objects and then uses idLookup fields in them to display target field name in format:
objectReferenceTo:externalIdField/lookupField

@rpbouman , @pamval
Hi, please look at this one.

@rpbouman please review


Implement configurable badge colour and support empty label

Live Demo
Deployed on render.com free tier.
Green

Purple

No Label Key (default label will be used)

Label Key with Empty Value

Label Key with Whitespace Value

Proposed Changes

Support custom badge colors, similar to what shields.io offers.

Uses csscolorparser crate to validate css color string (MIT License), otherwise color will be blue as default.
Addresses #102

Fix broken links for Apache and MIT Licenses in README.
Add customization details to README.
Breaking Change : Label Keys with Empty Value or Whitespace Value are now supported (to match behaviour of shields.io).

Thank you for your PR!


LIMIT ignored in subqueries

The following query works fine and returns the most recent record for each group:
SELECT something FROM <dbrp> WHERE time >= now() - 1h GROUP BY "tag1", "tag2" ORDER BY time DESC LIMIT 1

However, if we want to use it inside a subquery, we do not get the expected result.
SELECT * FROM (SELECT something FROM <dbrp> WHERE time >= now() - 1h GROUP BY "tag1", "tag2" ORDER BY time DESC LIMIT 1)

fails with:
ERR: subqueries must be ordered in the same direction as the query itself

and
SELECT * FROM (SELECT something FROM <dbrp> WHERE time >= now() - 1h GROUP BY "tag1", "tag2" ORDER BY time DESC LIMIT 1) ORDER BY time DESC

does not fail but returns different data (tags turned into fields) and multiple results per group instead of just one, as asked via LIMIT 1.

Can this issue be reopened?

I am having this same issue.  I am trying to get min, max, and avg values for the most recent sensor readings.
This is the sub query.  It returns the most recent temperature values from each sensor:
SELECT "temperature" FROM "sensors" WHERE "group" = "tempSensors" GROUP BY "location" ORDER BY time DESC LIMIT 1
(CORRECT RESULTS)
However, when it is used as a subquery the results are incorrect.
SELECT min(temperature), mean(temperature), max(temperature) FROM (SELECT "temperature" FROM "sensors" WHERE "group" = 'tempSensors' GROUP BY "location" ORDER BY time DESC LIMIT 1) ORDER BY time DESC
(WRONG RESULTS)
To inspect the data used in the min/max/avg calculation I tried the following query.  This returns many rows that are not in the original subquery.  I think I understand how subqueries should work, and this definitely seems like it should not be possible.
SELECT * FROM (SELECT "temperature" FROM "sensors" WHERE "group" = 'tempSensors' GROUP BY "location" ORDER BY time DESC LIMIT 1) ORDER BY time DESC
(WRONG RESULTS)

This is still an issue, both in v1.x and v2.x.


[5.5] Throw an OutOfPaginationRangeException on pages out of range

When you paginate results and request a page that's out of pagination range laravel currently shows a page with no results, this PR will throw an OutOfPaginationRangeException and adjusts the handler to render this exception as a NotFoundHttpException.
This will return a 404 response instead of 200 for pages that are out of range.
For more details on why such change can be useful you can refer to: https://support.google.com/webmasters/answer/181708?hl=en

Just adding a note while I'm thinking about it: we may want to add this to the dontReport property in the 5.5 default application.

@taylorotwell https://github.com/laravel/laravel/pull/4225

Honestly the more I think about this I don't think I'm going to change this behavior at all. Immediately throwing a 404 will seem strange in some cases. For example, we may be showing the links on the page and all of a sudden there are less results than expected. If they navigate to an out of range page I think the UI should cleanly say there are no results available. That's up to the developer to handle. If the user manually types in a out of range URL, again the developer can handle an empty pagination count and show a "no results available" page however they want.


Issue 17

earlier review here https://github.com/runcom/aws-nitro-enclaves-cose/commit/fa811170621589177360312df96d2919a7397fa5


Configuring the delay

Hey there, thanks for the plugin!
I'm wondering: can I configure the delay after which words get underlined? I have this effect where moving one character inside the word will refresh the underlining of that word, so it flashes a lot. With a longer delay/debounce, this could be a bit smoother.

Please refer to :h g:cursorword_delay.

Thank you very much!
For anyone interested, I did this:
let g:cursorword_delay = 400


[BUG] Listening Variables Not Working As Expected With Binaries

Checklist before submitting an issue

[X] I have searched through the existing closed and open issues for eww and made sure this is not a duplicate
[X] I have specifically verified that this bug is not a common user error
[X] I am providing as much relevant information as I am able to in this bug report (Minimal config to reproduce the issue for example, if applicable)

Description of the bug
Say I have a script to determine the screencast state. It outputs "true" or "false" whenever the screencast state changes.
This will work:
(deflisten isScreencastVisible "runhaskell ~/.config/eww/scripts/GetScreencast.hs")
But this will fail:
(deflisten isScreencastVisible "~/.config/eww/scripts/binaries/getScreencast")
However, the binary getScreencast is built from GetScreencast.hs and both work identically, and correctly, if run raw in the command line. The same issue does not occur with polling variables. I'm not sure why this is happening.
Reproducing the issue
Make a listening variable that calls a Haskell script, then a listening variable that calls a binary produced from that Haskell script.
Expected behaviour
The first will work, the second won't. And if you look at eww state you'll see there is no value for the relevant variable.
Additional context
Adding an initial value and/or prepending & does not resolve the issue.
You can see the files here if you want: https://gitlab.com/IsaacBrown92/dotfiles/-/tree/main/home-manager/modules/eww/config?ref_type=heads. This happens with both my listening binaries getWorkspaces and getScreencastState, so I'm currently stuck using runhaskell on the Haskell file itself.

NixOS server people randomly solved this, was line buffering.


Fix bold weights for our fonts

This fixes a bug where we weren't including a bold weight in our fonts.

Self-merging this one after I confirm that the bold works in our demo, since this is fixing a bug

It's happy: https://sphinx-2i2c-theme--23.org.readthedocs.build/en/23/reference/kitchen-sink/paragraph-markup/


feat(makeDefaultExport): add deprecation message for generated default exports

If a module does not define a default export, loader.js assigns exports.default = exports for compatibility with modules that don't use _interopRequireDefault from babel6. Mutating exports is unexpected behavior and causes difficult-to-diagnose bugs. We should remove makeDefaultExport in version 5.0. This update

adds a deprecation warning in preparation for removing makeDefaultExport.
adds a debug build with the deprecation enabled.

Addresses #114

@rwjblue Here's a first pass at adding a deprecation warning. I added a deprecationLogger property to require, but I'm open to changing the API if there's something you'd prefer.
I'll reopen this as a pull request to emberjs/loader.js after merging the babel6 PR.


Numeric format ignored on release 1.0.0-beta4

Description
I am trying to apply a numeric format to some columns
But it seems not to work
Steps to reproduce
The settings
settings = {
    data : [[1 ,2], [5, 6]],
    columns: [
      {type : 'numeric', format: '$0,0.00'},
      {type : 'numeric', format: '$0,0.00'}
      ]
   }

The component
<hot-table [settings]="settings" ></hot-table>
Demo
https://stackblitz.com/edit/angular-handsontable-numericformat-issue
Your environment

Wrapper version: 1.0.0-beta4
Browser Name and version: FF60 / Chrome65
Operating System: Win10 / Win7

Hi @Iznogood1
we've changed the syntax for numeric cell type format (Handsontable CE related).
Here's an updated example https://stackblitz.com/edit/angular-handsontable-numericformat-issue-zkbytk?file=app/app.component.ts


Adding waits to slash commands

Hello,
Firstly, thanks for building this addon, I, and I'm sure many others really appreciate your time.
I am writing my first bot to send a dm to someone with a menu that allows them to select one of the options.
I want to use the NextMessageAsync method to wait for their response before continuing the code but I can't for the life of me work out how to use this without it being a prefix command.
If my understanding is correct, the example bot is set up to be a prefix command, how would I modify this to wait for a menu selection?

Thanks
RuBix

You have to use NextMessageComponentAsync instead. Add a filter to only capture the interaction from the correct message.
Example:
var response = await _interactive.NextMessageComponentAsync(x => x.Message.Id == result2.Id);

if (response.IsSuccess)
{
   await response.Value.DeferAsync();
   string value = response.Value.Data.Values.First();
}

Alternatively you can use Selections, which is library's way of making select menus in a nicer way and with more features. There are some examples here that you can use if you want to.


Participants are not assigned to the correct experiment

Hi, I started a new experiment and changed the priority of the old experiment to 10, assigned all the participants to the new experiment with a low priority 4. Most of them started on the new experiment but some are still stuck in the old experiment and I don't know how to make them change. Any ideas? cheers

I just checked and the 'queued at position counter' indicates logical values e.g. 4 for the new experiment, 5 for the old , but still the monkey is doing the old one...

I think this is working as intended. If a new job is retrieved for a participant, this comes firs from the studies with status 'in progress'. Only if a study is completed, a job will be retrieved from a new study. So priority is in that case only considered for new studies. Considering you also have long-running background studies, I now see this approach may not be the best.

Well, from my experience I don't think participants have to finish an experiment to be assigned to a new one. That's not what happened in this case anyway, because it was an 'infinite' task (it never ends) and most participants switched to the new one except a few.

Ok so here is an example, let's follow EWINE. She was doing a first experiment named Infinite match to sample with priority 10, I installed a new task with priority 4, she switched to the new task and finished:

Now she was supposed to return to the infinite match to sample (priority 10, no other task, note that she hasn't finished she is at 80% but it loops infinitely anyway):

But instead she is doing a fallback task:

I'm closing this because I suspect that #132 (and possibly other issues) are driving this behavior.


revert to tensordot2 once tf.matmul is fixed

The tf.matmul bug documented at https://github.com/tensorflow/tensorflow/issues/52148 causes tensordot2 to fail under certain circumstances. Once tensorflow fixes the bug on their side we should revert to using tensordot2 in the TensorflowBackend.

Even without tensordot2,  bad interplay between tf.vectorized_map and complex valued ops (maybe still tf.matmul) can still emerge for gradient evaluations, see https://github.com/google/TensorNetwork/issues/940#issuecomment-948405655


☂ Roadmap

A roadmap of upcoming features from the coauthors.
CLI

[x] #30
[ ] Add -h option
[ ] Interactively select coauthor via .git trace
[ ] Use as a global install

Close this first, reopen if need


Problem with spi_master driver and two mixed-duplex devices (IDFGH-2555)

Environment

Development Kit: Adafruit HUZZAH32
Module or chip used:  ESP32-WROOM-32
IDF version: v4.0-beta2
Build System: CMake
Compiler version: 8.2.0
Operating System: Linux
Using an IDE?: Yes: Eclipse with Espressif IDF Plugins
Power Supply: USB

Problem Description
When using the spi_master driver with two devices on the same bus - one half-duplex and one full-duplex - the driver seems to drive the SPI device for longer than expected: When sending a first transaction to the half-duplex device and then sending a second transaction to the full-duplex device, the driver holds SCK low for longer than expected on the second transaction: It seems like it treats the second transaction as half-duplex, even though the device is configured as full-duplex.
To reproduce the issue, no actual SPI device has to be connected to the bus, since it is reproducible without any external device interaction.
I reported this before on the forums, but got no response.
Expected Behavior
The second transaction should be treated as a proper full-duplex one. In the code below, the second transaction should only last for a length of three bytes: one address byte and two data bytes (t.length = 16).
Actual Behavior
The second transaction looks like a half-duplex one. In the code below, it lasts for 5 bytes: One address byte, two bytes of proper data, and (presumably) the extra two bytes for the response (t.rxlength = 16).
The following shows the two transactions on the bus from the example code below on a logic analyzer:

Steps to reproduce

Change the TEST_*_PIN defines in the example code below to match the board config.
Compile and flash the minimal example code below.
(No actual SPI devices need to be connected to reproduce the behavior.)
Watch the SCK and MOSI lines on the SPI bus.

Code to reproduce this issue
Minimal example here
Debug Logs
I (28) boot: ESP-IDF v4.0-beta2-dirty 2nd stage bootloader
I (29) boot: compile time 18:44:54
I (29) boot: Enabling RNG early entropy source...
I (34) boot: SPI Speed : 40MHz
I (38) boot: SPI Mode : DIO
I (42) boot: SPI Flash Size : 2MB
I (46) boot: Partition Table:
I (50) boot: ## Label Usage Type ST Offset Length
I (57) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (65) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (72) boot: 2 factory factory app 00 00 00010000 00100000
I (80) boot: End of partition table
I (84) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x0717c ( 29052) map
I (103) esp_image: segment 1: paddr=0x000171a4 vaddr=0x3ffb0000 size=0x0207c ( 8316) load
I (107) esp_image: segment 2: paddr=0x00019228 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _WindowOverflow4 at /opt/esp-idf/components/freertos/xtensa_vectors.S:1778

I (111) esp_image: segment 3: paddr=0x00019630 vaddr=0x40080400 size=0x069e0 ( 27104) load
I (131) esp_image: segment 4: paddr=0x00020018 vaddr=0x400d0018 size=0x14640 ( 83520) map
0x400d0018: _stext at ??:?

I (161) esp_image: segment 5: paddr=0x00034660 vaddr=0x40086de0 size=0x03aa0 ( 15008) load
0x40086de0: rtc_clk_cpu_freq_get_config at /opt/esp-idf/components/soc/esp32/rtc_clk.c:650

I (174) boot: Loaded app from partition at offset 0x10000
I (174) boot: Disabling RNG early entropy source...
I (175) cpu_start: Pro cpu up.
I (178) cpu_start: Application information:
I (183) cpu_start: Project name: app-template
I (189) cpu_start: App version: 1
I (193) cpu_start: Compile time: Jan 4 2020 18:44:43
I (199) cpu_start: ELF file SHA256: 78fef31c0db07f90...
I (205) cpu_start: ESP-IDF: v4.0-beta2-dirty
I (211) cpu_start: Starting app cpu, entry point is 0x400810a0
0x400810a0: call_start_cpu1 at /opt/esp-idf/components/esp32/cpu_start.c:272

I (0) cpu_start: App cpu up.
I (221) heap_init: Initializing. RAM available for dynamic allocation:
I (228) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (234) heap_init: At 3FFB30A8 len 0002CF58 (179 KiB): DRAM
I (240) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (247) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (253) heap_init: At 4008A880 len 00015780 (85 KiB): IRAM
I (259) cpu_start: Pro cpu start user code
I (277) spi_flash: detected chip: generic
I (278) spi_flash: flash io: dio
W (278) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (289) cpu_start: Chip Revision: 1
W (293) cpu_start: Chip revision is higher than the one configured in menuconfig. Suggest to upgrade it.
I (303) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
Starting in 2s...

No further logs are generated. In particular, there are no errors or warnings about the SPI transactions.

I found solution.
master_cs_pol must be initialized when adding the device to the spi bus.
file: spi_master.c
in spi_bus_add_device method
    //Set CS pin, CS options
    if (dev_config->spics_io_num >= 0) {
        spicommon_cs_initialize(host, dev_config->spics_io_num, freecs, !(spihost[host]->flags&SPICOMMON_BUSFLAG_IOMUX_PINS));
        hal->positive_cs = dev_config->flags & SPI_DEVICE_POSITIVE_CS ? 1 : 0;
        spi_ll_master_set_pos_cs(hal->hw, freecs, hal->positive_cs);
    }

in spi_setup_device
hal->positive_cs = dev->cfg.flags & SPI_DEVICE_POSITIVE_CS ? 1 : 0;

file: spi_ll.h
static inline void spi_ll_master_set_pos_cs(spi_dev_t *hw, int cs, uint32_t pos_cs)
{
    if (pos_cs) {
        hw->pin.master_cs_pol |= (1 << cs);
    } else {
        hw->pin.master_cs_pol &= ~(1 << cs);
    }
}

Important!!
All devices must be added to the same spi line before use.
Tested on 4.0.1

I think, that problem is in 3.3.2
~ missing
    if (dev_config->flags&SPI_DEVICE_CLK_AS_CS) {
        spihost[host]->hw->pin.master_ck_sel |= (1<<freecs);
    } else {
        spihost[host]->hw->pin.master_ck_sel &= ~(1<<freecs);
    }
    if (dev_config->flags&SPI_DEVICE_POSITIVE_CS) {
        spihost[host]->hw->pin.master_cs_pol |= (1<<freecs);
    } else {
        spihost[host]->hw->pin.master_cs_pol &= ~(1<<freecs);
    }

Anyone repair this error?

The problem still exists in v4.0 :-(

related to: https://github.com/espressif/esp-idf/pull/5490


[Hero content] float property doesn't support center

https://developer.mozilla.org/en/docs/Web/CSS/float
As per MDN docs, the float: center doesn't do anything, it would be replaced with float: none, however none is the default value making it redundant.
Happy camping.

Hi @nicholas-c and thanks for this PR


Remove 2step verification off my google account<EMAIL_ADDRESS>

I need to remove 2 step verification off of my<EMAIL_ADDRESS>google account i cant sign in

This is not support for Google accounts.


[Documentation]: Add missing component properties to HTML/CSS custom data

Let's review all component .html-data.json files and make the following changes:

Add missing component properties
Change any camel case property names to lower case

Accordion

Add testid

App Header

Add fullmenubreakpoint
Add testid
Change maxContentWidth to lower case

App Header Menu

Add type

Badge

Add testid

Block

No changes

Button

@bdfranck We've got work coming in the future that makes these *.html-data.json files redundant, so we're going to close this story


caching of KeyDeserializer

Current coverage is 100.00%

Merging #35 into master will not affect coverage as of 3c5ce9f

@@            master     #35   diff @@
======================================
  Files           20      20
  Stmts          213     208     -5
  Branches        48      47     -1
  Methods          0       0
======================================
- Hit            213     208     -5
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 3c5ce9f

Powered by Codecov. Updated on successful CI builds.


M365 Apps for Business vs. M365 Apps for Enterprise

This article isn't explicit in saying whether M365 Apps for Enterprise is required for the built-in labeling client. Put differently, will the built-in client be available to M365 Apps for Business clients running at the required build numbers? I've had difficulty finding an answer to this elsewhere, and this article seems to be a good place to explain this. Any thoughts?

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

ID: e0836a95-d3b7-3c43-d56b-5fb4ceeb4765
Version Independent ID: 8a0d366b-5ff7-22de-7aba-6adbe0ea94ea
Content: Use sensitivity labels in Office apps - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/sensitivity-labels-office-apps.md
Service: o365-seccomp
GitHub Login: @cabailey
Microsoft Alias: cabailey

@jreinhardtiv4 Thank you for your feedback. To use sensitivity labels that are built into Office desktop apps for Windows and Mac, you must use a subscription edition of Office (M365 Apps for Business or M365 Apps for Enterprise).
We have added it to the document and also made a note that this labeling client doesn't support standalone editions of Office, such as Office 2016 or Office 2019 but works with subscription versions.
Hope this helps!
Thanks
Sri

@yogkumgit This issue can be closed as there are no changes required in the document.

@msbemba Thank you very much for the contribution and sharing this explanation. @jreinhardtiv4 Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


fix(Download): Fix download and extract for Linux

This removes --strip-components=1 when extracting the tar.gz which fixes installs on Linux. Tested with v4.1.1 and v3.4.4 (not all releases have binaries it seems) e.g.
asdf plugin test podman https://github.com/nokome/asdf-podman.git "podman --version"
Updating podman to master
fatal: couldn't find remote ref master
fatal: Needed a single revision
error: pathspec 'master' did not match any file(s) known to git
* Downloading podman release 4.1.1...
podman version 4.1.1

Also fixes the release_file path and extract method for MacOS but the download URL looks wrong and I haven't tested at all.

Hi there!
Can we please have this PR reviewed and merged? I'd be interested in having this plugin work on Linux.
Thanks.

I've extended this fix to other issues I found along this line, see https://github.com/tvon/asdf-podman/pull/2

#2 has been merged, if that resolves things then please close this.
I’m on vacation and will not be able to dig into anything until Tuesday.


[Request]: Reduce the number of production dependencies

The package has about 73 production dependencies. The majority of these dependencies come from prebuild-install and a few from tar.
Would it be possible to replace prebuild-install with something more lightweight? A large amount of dependencies pose a big security risk and are equivalent to trusting many people we don't know and their user accounts which may get compromised.
While prebuild-install is a build script and not runtime, a malicious package there could still cause some damage (i.e. append malicious code to the production build on the deployment server).

#655

The tar dependency has been removed in better-sqlite3 version 7.5.0. As for replacing prebuild-install, I'll leave that discussion in https://github.com/JoshuaWise/better-sqlite3/issues/655, and close this issue.


Hue bridge error 2: body contains invalid json

Everything works fine until it asks to click the button to create a user. I have clicked several times but I get: "Philips hue: hue bridge error 2: body contains invalid json".
Anything simple I am missing?

Same problem here...
...and it crashes after some time throwing this error:
events.js:160
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT <IP_ADDRESS>:6600
at Object.exports._errnoException (util.js:1026:11)
at exports._exceptionWithHostPort (util.js:1049:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1085:14)

My bad.  Seems like I published v0.0.13 too early.  Good thing I'm not superstitious...
Should be fixed in v0.0.14.  If not, please revert to v0.0.12.  You can install a specific version by:
sudo npm install -g<EMAIL_ADDRESS>

Thanks for the quick reply.
v=0.0.14 solved it :)

Thank you. I will try tonight.

Perfect!!! Thanks.


In column template, access a value from another column that is not displayed

I want to access a property for an entry in a column template without displaying that property in the table.
For example. Say I have a model that has  the columns phone_number and blacklisted_number_id.
In my table, I want to only show the  phone_number column, so I set my columns as such:

        $columns = [
            [
                'name'  => 'phone_number',
                'label' => 'Phone Number',
                'type'  => 'interaction-phone-number',
            ],
        ];
        $this->crud->addColumns($columns);

Now, I want to access $entry->blacklisted_number_id in the column template for $entry->phone_number
So in my view I tried to do:

@if(isset($entry->blacklisted_number_id))
    // add some other content
@endif
    {{ strip_tags($entry->{$column['name']}) }}

But I found this doesnt work because it seems only the columns specifically listed in the columns for the CRUD controller are selected in the DB query.
If I add the column to the table, it works as expected:
    $columns = [
        [
            'name'  => 'phone_number',
            'label' => 'Phone Number',
            'type'  => 'interaction-phone-number',
        ],
        [
            'name'  => 'blacklisted_number_id',
            'label' => 'Blacklisted number id',
            'type'  => 'text',
        ],
    ];

How can I access $entry->blacklisted_number_id in the column template for $entry->phone_number without explicitly displaying $entry->blacklisted_number_id

I was able to work around this issue by doing this:
I set my columns up as:
    $columns = [
        [
            'name'  => 'phone_number',
            'label' => 'Phone Number',
            'type'  => 'interaction-phone-number',
        ],
        [
            'name'  => 'blacklisted_number_id',
            'label' => 'Blacklisted number id',
            'column_hide_index'  => 1, // make sure to add 1 if you use $this->crud->enableDetailsRow();
            'type'  => 'hidden',
        ],
    ];

Then I added a hidden.blade.php template:

Adding it here in case someone else needs it or someone wants to add it to the project.

I'm about to do the same thing.  I need a uuid for one of the row's buttons but I dont want to display that in the table.
@DelightedD0D you are using enableAjaxTable() correct? As far as i can tell, this is only an issue when ajax table is enabled

@scottgrayson That's correct, I'm working with a table that generates about 90K rows per month so ajax is a must.

Glad you found a solution. Cheers!


How do I know which mapping field cause the mapping to fail?

If I have a mapping of 50 fields and then run it and I get the error: "Input string is not in correct format", how do I know which field it failed at? I mean the stack trace may say something about the type gone wrong but if I have 50 fields how do I know which one failed? Or is that not possible with Mapster?

You need to debug. https://github.com/MapsterMapper/Mapster/wiki/Debugging


Add hook feature for the model debugging.

If I summarize, you insert a python operator node before another one to have a look on the inputs. Is it possible to add some documentation in the function hook_model_op?

If I summarize, you insert a python operator node before another one to have a look on the inputs. Is it possible to add some documentation in the function hook_model_op?

Good reminder, without more python API, we should have them be documented.
I added the existing ones


Memory Leak in Seed

The seed command-line utility exhibits symptoms of a memory leak, very quickly using up most of the host system's available memory.

It should be noted that the scrape command-line utility DOES NOT exhibit similar symptoms!

Upon reviewing the documentation for the kids.cache package, it seems the default cache store is simply a Python dictionary that continues to grow without any cleaning whatsoever.
The fix will be to update the pyracing package so that a different, size-limited cache store (such as cachetools.LRUCache) is used instead.


Phase 1: Python / Django + Container

Resolves most of #14, except for what is blocked.
tl;dr:

Introduces 'blueprint' for the CI/CD pipeline run

Tries to avoid GitHub specific features where possible

Tools:

Uses  trivy for all SBOM generation
Uses jq to manually merge in metadata, along with envsubst for templating
Uses sbomqs for scoring

Note that this does not score against the framing document draft 4 yet

A top level variable called SEMVER is used to set the version of the SBOM (in lieu of git tag)

The PR is missing the hierarchical structure for assembling a component+application top level SBOM
The PR is also very light on what we populate in the SPDX metadata (only VERSION at the moment) to demonstrate the workflow

@CISA-SBOM-Community/sbom-generation-tiger-team Please review.

@vpetersson - Found a tools to merge sbom files.
merge cdx files - https://festo-se.github.io/cyclonedx-editor-validator/available_commands/
merge spdx - https://github.com/eclipse-sw360/sw360 - this is a rest service. Will have to dig into it how this service will be useful.
I will review it this week when i get some time.

@vpetersson - Found a tools to merge sbom files. merge cdx files - https://festo-se.github.io/cyclonedx-editor-validator/available_commands/ merge spdx - https://github.com/eclipse-sw360/sw360 - this is a rest service. Will have to dig into it how this service will be useful.
I will review it this week when i get some time.

Good finds! Fwiw, I've added all the tools I've found in my SBOM journey here.


BUG: stats: Fix the formula for the variance of the noncentral F distribution.

Also use _lazywhere to eliminate spurious warnings that were generated in
calls such as ncf.mean(1, 2, 3) or ncf.var(2, 4, 6).
Closes gh-10658.

Cross-ref gh-2877

@ev-br, thanks for the cross-reference to gh-2877.  It looks like there is more that could be done for ncf, but I don't think it has to get done in this PR.  This fixes an obvious bug in the existing code.  Further enhancements can be made in new PRs.

As a quick check, here's a C++ program that uses Boost to compute the mean and variance for a few parameters:
// Compile with
//   g++ -std=c++1z noncentralf.cpp -o noncentralf

#include <iostream>
#include <boost/math/distributions/non_central_f.hpp>

using namespace std;
using boost::math::non_central_f;

int main()
{
    tuple<double, double, double> params[] = {
        // dfn, dfd,   nc
        {    2,   6,    4},
        {   10,  12,  2.4},
        {  250,  25, 27.5}
    };

    cout << "     dfn      dfd       nc         mean     variance" << endl;
    for (auto [dfn, dfd, nc] : params) {
        auto ncf = non_central_f(dfn, dfd, nc);
        double m = mean(ncf);
        double v = variance(ncf);

        cout << fixed << setw(8) << setprecision(4) << dfn << " ";
        cout << fixed << setw(8) << setprecision(4) << dfd << " ";
        cout << fixed << setw(8) << setprecision(4) << nc << " ";
        cout << fixed << setw(12) << setprecision(7) << m << " ";
        cout << fixed << setw(12) << setprecision(7) << v << endl;
    }

    return 0;
}

Output:
     dfn      dfd       nc         mean     variance
  2.0000   6.0000   4.0000    4.5000000   42.7500000
 10.0000  12.0000   2.4000    1.4880000    1.0863360
250.0000  25.0000  27.5000    1.2065217    0.1512670

Here's the calculation using the updated ncf in this PR:
In [15]: dfn = [2,  10, 250]

In [16]: dfd = [6,  12,  25]

In [17]: nc = [4, 2.4, 27.5]

In [18]: ncf.mean(dfn, dfd, nc)
Out[18]: array([4.5       , 1.488     , 1.20652174])

In [19]: ncf.var(dfn, dfd, nc)
Out[19]: array([42.75      ,  1.086336  ,  0.15126699])


qiling 1.4.3

Checklist

[x] Checked the nixpkgs master branch

[x] Checked the nixpkgs pull requests

Project name
nix search name: python3.9-qiling-1.4.2

current version: 1.4.2
desired version: 1.4.3
Notify maintainers

maintainers:
@cole-h
@grahamc
Note for maintainers
Please tag this issue in your PR.

Looks like we need an unicorn update as well.

The update will be part of python-updates due to the amount of rebuilds.

Closing this as I am led to believe it was fixed in https://github.com/NixOS/nixpkgs/pull/175805.


Release with AWS SDK 2.21

Hi, could you create a release from the latest main please? AWS SDK had some breaking change in 2.21.x and I can't use tagless-sns together with some other libraries that already use 2.21.x

Hi @matwojcik.  I just published 6.0.5, it should be available on maven central soon.


required module not found for Node's 'v8'

  9: const v8 = require('v8');
                ^^^^^^^^^^^^^ v8. Required module not found

It's definitely there: https://nodejs.org/api/v8.html

Never knew about that one. If you want to add it, you can do so here: https://github.com/facebook/flow/blob/master/lib/node.js

Does it look good enough R1ZZU/flow@9abc37d4b7dda02f78d58d52dbd2750cb59b2473? 😏


Cannot find an overload for "Execute" and the argument count: "1".

I've been trying to use this module with limited success. I know I've used it in the past without issue, but something is not working now. I did try both the <IP_ADDRESS> & <IP_ADDRESS> versions with the same results.
I'm trying to use the Add-StorageTableRow function and I've tried to boil everything down to the smallest pieces but without luck. I'm wondering if it is a .NET issue or something I'm missing.
My Error:
PS > $err |fl * -force
PSMessageDetails      :
Exception             : System.Management.Automation.MethodException: Cannot find an overload for "Execute" and the argument count: "1".
at CallSite.Target(Closure , CallSite , Object , Object )
at System.Management.Automation.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
TargetObject          :
CategoryInfo          : NotSpecified: (:) [], MethodException
FullyQualifiedErrorId : MethodCountCouldNotFindBest
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at Add-StorageTableRow, C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable\<IP_ADDRESS>\AzureRmStorageTableCoreHelper.psm1: line 191
at , C:\Users\GLaisne\OneDrive - Carbonite\PowerShell\Carbonite\ProjectScripts\AzureVMPatchInfo\Examples\WrittingToStorageTable.ps1: line 139
at , : line 1
PipelineIterationInfo : {}
PS > $err.invocationinfo
MyCommand             :
BoundParameters       : {}
UnboundArguments      : {}
ScriptLineNumber      : 191
OffsetInLine          : 11
HistoryId             : -1
ScriptName            : C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable\<IP_ADDRESS>\AzureRmStorageTableCoreHelper.psm1
Line                  :                 return ($table.CloudTable.Execute((invoke-expression "[Microsoft.WindowsAzure.Storage.Table.TableOperation,$assemblySN]::insert(`$entity)")))
PositionMessage       : At C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable\<IP_ADDRESS>\AzureRmStorageTableCoreHelper.psm1:191 char:11
+ ...      return ($table.CloudTable.Execute((invoke-expression "[Microsoft ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PSScriptRoot          : C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable\<IP_ADDRESS>
PSCommandPath         : C:\Program Files\WindowsPowerShell\Modules\AzureRmStorageTable\<IP_ADDRESS>\AzureRmStorageTableCoreHelper.psm1
InvocationName        :
PipelineLength        : 0
PipelinePosition      : 0
ExpectingInput        : False
CommandOrigin         : Internal
DisplayScriptPosition :
My Environment:
Version  Name

4.5.0    Azure.Storage
5.4.0    AzureRM.Profile
6.4.0    azurerm.resources
5.0.2    azurerm.storage
<IP_ADDRESS> AzureRmStorageTable
<IP_ADDRESS> AzureRmStorageTable
<IP_ADDRESS>  Microsoft.PowerShell.Host
<IP_ADDRESS>  Microsoft.PowerShell.Management
<IP_ADDRESS>  Microsoft.PowerShell.Utility
1.2      PSReadline
0.0      PSReadLineTheme
Name                           Value

PSVersion                      5.1.15063.1387
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.15063.1387
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

I think I found the problem. It has to do with the way the modules are loaded.
I was starting with a shortcut which ran 'Add-AzureRMAccount.' That would cause the 'AzureRM' (4.4.0) module to load. Every time I would load the required modules, I would get an error, so I started running this after connecting to azure:
That sequence would result in no errors when importing the modules. I just tried a "virgin" prompt and imported the required modules in the order above and ran my script, and it worked perfectly.


Linux: support for desktop environments other than GNOME

The only thing stopping Zen from working in other desktop environments is that it can't set the system proxy settings. On GNOME it is done via couple gsettings commands, but I couldn't find any documentation on similar ways to do this programmatically on other desktop environments. Feel free to add a comment if you think you can help.

Hello, just a quick headsup, I just ran the Zen executable on Archlinux with Hyprland and NetworkManager, and it seems to be working just fine. I'm wondering if the necessary package isn't just NetworkManager ?

Hello, just a quick headsup, I just ran the Zen executable on Archlinux with Hyprland and NetworkManager, and it seems to be working just fine. I'm wondering if the necessary package isn't just NetworkManager ?

Hi! Does your setup happen to have the gsettings command line tool?

How about working with /etc/environment ?
Its a file that stores the system-wide variables initialized upon boot:
http_proxy="http://<IP_ADDRESS>:<port>"
https_proxy="http://<IP_ADDRESS>:<port>"

You could have shell commands change this file either adding or removing lines from it ?

How about working with /etc/environment ? Its a file that stores the system-wide variables initialized upon boot:
http_proxy="http://<IP_ADDRESS>:<port>"
https_proxy="http://<IP_ADDRESS>:<port>"

You could have shell commands change this file either adding or removing lines from it ? Only problem is that the user needs to logout and login again for changes to take effect.

this is a bad idea in general because it depends on zen being active at all times and will cause all sorts of issues if it's not active. maybe it'd be better to replace it with instructions to set this up manually if someone doesn't use gnome, maybe even within the browser only? either way, i will update the arch linux package to depend on glib2 and networkmanager, since those gsettings flags depend on both.
on the other hand, @anfragment anecdotally i did notice that proxy settings were persistent upon quitting zen so maybe this should change if zen is stopped? or is it a bug? not sure.

@myyc do you know if it's possible to package those dependencies (glib2 and networkmanager) in flatpak, snap or appimage ? (maybe different thread)
Back the issue at hand. What if Zen is setup to toggle off the proxy setting on exit ? Wouldn't it mittigate the issue ?
I have also noticed that internet is unreachable if zen is not active or launched or if the proxy settings havn't been removed.

on the other hand, @anfragment anecdotally i did notice that proxy settings were persistent upon quitting zen so maybe this should change if zen is stopped? or is it a bug? not sure.

Yes, it's a bug, the proxy doesn't properly shut down when the app gets closed on Linux. Should get fixed in a release later this week.

@hollisticated-horse @myyc
nmcli looks promising. NetworkManager is desktop environment agnostic, right? Does every NetworkManager installation come with nmcli?

@anfragment
From my research, NetworkManager seems desktop environment agnostic and comes with nmcli.
See compiled list of links:

debian -> daemon and userspace tools
ubuntu -> daemon and userspace tools
archlinux -> contains a daemon, a command line interface (nmcli) and a curses‐based interface (nmtui).
centos -> unclear if just nmtui or also nmcli
https://pkgs.org/download/NetworkManager -> found that void linux has only the daemon, everyone else has nmcli.

Here is an example of how  setSystemProxy() function could work in conjuction with nmcli.
func (p *Proxy) setSystemProxy() error {
if binaryExists("nmcli") {
// Get a list of all network devices
cmd := exec.Command("nmcli", "device", "status")
out, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, out)
}
   devices := strings.Split(string(out), "\n")[1:] // Skip the first line which is the header

   for _, device := range devices {
       deviceName := strings.Fields(device)[0] // The device name is the first field

       // Set the proxy settings for the device
       commands := [][]string{
           []string{"nmcli", "device", "modify", deviceName, "ipv4.method", "manual"},
           []string{"nmcli", "device", "modify", deviceName, "ipv4.gateway", "<IP_ADDRESS>"},
           []string{"nmcli", "device", "modify", deviceName, "ipv4.dns", "<IP_ADDRESS>"},
           []string{"nmcli", "device", "modify", deviceName, "ipv4.addresses", fmt.Sprintf("<IP_ADDRESS>/%d", p.port)},
       }

       for _, command := range commands {
           cmd := exec.Command(command[0], command[1:]...)
           out, err := cmd.CombinedOutput()
           if err != nil {
              return fmt.Errorf("%s: %v\n%s", strings.Join(command, " "), err, out)
           }
       }
   }

   // Reload the network settings
   cmd := exec.Command("nmcli", "device", "reapply", "all")
   out, err := cmd.CombinedOutput()
   if err != nil {
       return fmt.Errorf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, out)
   }
   return nil

}
}
Disclaimer, this code was mostly generated via Phind.com.

@myyc I'm also struggling to make those commands work. I'll do some testing and get back to you guys @myyc @anfragment

still maintain that if you don't use gnome or kde you should probably configure proxy settings yourself as opposed to having an external piece of software messing with networkmanager or wiping environment variable configs by accident.

still maintain that if you don't use gnome or kde you should probably configure proxy settings yourself as opposed to having an external piece of software messing with networkmanager or wiping environment variable configs by accident.

Good point. Non-technical users should have an easy way to reset their proxy settings in case something goes wrong with the app. I've done some searching and it seems like even on KDE there is no alternative to gsettings, which means that we would have to stick to only setting the system proxy automatically on GNOME. Currently the app fails to launch if we didn't find the gsettings binary. I'll work on fixing that and adding a notification for users to manually configure their proxy settings. @myyc @hollisticated-horse really appreciate your help in figuring this out, thank you guys.

potentially you could even do it programmatically in go instead of using gsettings? chatgpt suggest the following
package main

import (
        "fmt"
        "github.com/godbus/dbus"
)

func main() {
        conn, err := dbus.SessionBus()
        if err != nil {
                fmt.Println("Failed to connect to the D-Bus session bus:", err)
                return
        }
        defer conn.Close()

        proxySettings := conn.Object("org.gnome.SettingsDaemon", "/org/gnome/SettingsDaemon/Proxy")
        err = proxySettings.Call("org.freedesktop.DBus.Properties.Set", 0, "org.gnome.system.proxy", "mode", dbus.MakeVariant("manual")).Err
        if err != nil {
                fmt.Println("Failed to set proxy mode:", err)
                return
        }

        fmt.Println("Proxy mode set to manual")
}

but i'm not sure using godbus is better than spawning gsettings.

I had a quick look at the mullvad electron app, thinking that they must also work with proxys but am unsure of what I found.
Otherwise, I was looking through the archlinux wiki page proxy server page and found this:
Environment_variables

Some programs, such as wget and (used by pacman) CURL, use environment variables of the form *protocol*_proxy to determine the proxy for a given protocol (e.g. HTTP, FTP, ...).
Below is an example on how to set these variables in a shell:
export http_proxy=<a rel="nofollow" class="external free" href="http://<IP_ADDRESS>:5187/">http://<IP_ADDRESS>:5187/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,<IP_ADDRESS>,localaddress,.localdomain.com"

Some programs look for the all caps version of the environment variables.

Also:

Alternatively, there is a tool named proxyman-gitAUR which claims to configure system-wide proxy settings easily.

and :

Automation with network managers
NetworkManager cannot change the environment variables.
netctl could set-up these environment variables but they would not be seen by other applications as they are not child of netctl.

Which makes me think that the nmcli route might be dead.
https://github.com/himanshub16/ProxyMan/blob/master/shellrc.sh has shell functions to set and unset proxy server.
Which could be interesting to explore.

Hi there,
Using NM should be the road ahead. It's proxy vars env agnostic which is a good thing. Trying to capture any and all env vars ever used and to be used is whack-a-mole for proxy settings.
As not everyone is using NM, additionally setting known proxy env vars wouldn't hurt.
Feature: if proxy settings are set per connection/device there is no circumventing it by malicious programs or misconfigurations. At least, they're not rooted, that is.
IIUC, it's just about redirection of HTTP[S] for ad filtering purposes. So the correct route would be setting up iptables/netfilter for the Linux and PF for BSD folks, resp., to redirect the relevant ports.
cheers

@corbolais thanks for the suggestion, setting some iptables rules might indeed be the solution I was looking for.

So when looking up how to use iptables, I end up with this function to set iptables rules:
as an example:
func main() {
	cmd := exec.Command("iptables", "-t", "nat", "-A", "PREROUTING", "-p", "tcp", "--dport", "80", "-j", "REDIRECT", "--to-port", "8080")
	err := cmd.Run()
	if err != nil {
		log.Fatal(err)
	}
}

and  this function to delete the previous rule.
func main() {
	cmd := exec.Command("iptables", "-t", "nat", "-D", "PREROUTING", "-p", "tcp", "--dport", "80", "-j", "REDIRECT", "--to-port", "8080")
	err := cmd.Run()
	if err != nil {
		log.Fatal(err)
	}
}

Is this what you envisioned @corbolais ?
To be noted, it seems that iptables is not persistent across reboots from the get go. There is a package, iptables-persistent. This packages makes it so that any erected iptables rules will be saved to the corresponding IPv4 and IPv6 files:
/etc/iptables/rules.v4
/etc/iptables/rules.v6

Btw, there is a go package that provides an API for iptables :
https://github.com/coreos/go-iptables
Not sure if it's needed, but it's there.
For pf, I assume it is similar ?

@hollisticated-horse those rules look about right. You probably want to use -I 1 instead of -A. Users might have custom rules or default ufw rules on Ubuntu/Fedora/.. active and appended rules might get ignored if the previous last rule i.e. is a DROP.
Persistency is another chapter in it's own right. It'd be probably best to create a systemd service using a one-shot rule install/removal upon boot/shutdown. Best to check beforehand whether the rule is already installed.
Not sure of the best way to handle this for a multitude of distributions. And there's also a plethora of tools to run custom rulesets. I'd most likely start with injecting and removing the rule oob, like you suggested. Then see where this is leading. OTOH, this issue is no new thing, the net might offer a better solution.
PF, I'm not familiar with. It's a verbose filter language even more so than ufw cmdline syntax is.

@anfragment Correct. For locally generated packets nat OUTPUT is the right choice.
iptables -t nat -A OUTPUT --match owner --uid-owner ZEN_USR -p tcp --dport 80 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination ZEN_IP:3129

Running ZEN with it's own user id is good practice anyway.
There's a treasure trove to be ingested at https://wiki.squid-cache.org/ConfigExamples/Intercept . The squid-cache wiki is invaluable in this regard. This should keep you busy for the next days.. ;-)
Happy holidays
C

Thanks for the valuable input @corbolais. Best of luck to you in the coming year!

Hello, stumbled upon this tool written in go, to manage forwards with iptables. Might be a lead ?
https://github.com/alegrey91/fwdctl

Partially resolved by https://github.com/anfragment/zen/pull/112.


Kamelet: Don't call getEndpointUri() on null input.

Fixes NullPointerException

I wonder what example / use-case you had that could cause this NPE? I am asking because a camel  route should always have 1 input.

I wonder what example / use-case you had that could cause this NPE?

I was messing around with route templates and hit this error, here's the reproducer:
diff --git a/components/camel-kamelet/src/test/java/org/apache/camel/component/kamelet/KameletRouteTest.java b/components/camel-kamelet/src/test/java/org/apache/camel/component/kamelet/KameletRouteTest.java
index 15c0cc853fa..43a02038760 100644
--- a/components/camel-kamelet/src/test/java/org/apache/camel/component/kamelet/KameletRouteTest.java
+++ b/components/camel-kamelet/src/test/java/org/apache/camel/component/kamelet/KameletRouteTest.java
@@ -56,6 +56,7 @@ public class KameletRouteTest extends CamelTestSupport {
             public void configure() throws Exception {
                 routeTemplate("echo")
                         .templateParameter("prefix")
+                        .asRouteDefinition()
                         .from("kamelet:source")
                         .setBody().simple("{{prefix}}-${body}");

Okay but as an end user you should not call .asRouteDefinition() its for internal use

Instead of avoiding the NPE then you can update the PR to check that input is not null and report an error if so.

Okay but as an end user you should not call .asRouteDefinition() its for internal use

hmm, shouldn't it not be public if that is the case?

The method is used from other parts in camel that are not in the same package, so it has to be public.


PRChecker: Check that semver-major commits have an explanation of breaking changes

Refs: https://github.com/nodejs/node/pull/16846

Funnily enough, I saw this discussion, and thought "When this lands, this will be a perfect job for the pr_checker".
Anyway: :+1:

To me this is not the job for pr checker, but the job for core-validate-commit.

True! I had forgotten we had other tools :smile:

To me this is not the job for pr checker, but the job for core-validate-commit: checking commit messages.

True! I had forgotten we had other tools

It's not a trivial separation 🤔 - this might not be a simple formatting rule like what core-validate-commit check, it might need to live in the PR description (like Fixes) and require the author's to help...
As I see it core-validate-commit:

Checks formatting rules - all of which the lander can fix (maybe even automatically)
Is run last in the landing process - just before a git push - so it is kind of late to stop the land process and ask for new information

IMHO such a failure should block the PR from being ready to land earlier, so that the lander could ask for more information from the author.

@refack for now we should probably wait for Breaking:  and the length requirement to land in core first or something like that and then maybe we can implement this?

@cPhost in term of ❌  / ✔ I agree.
I also think that having the tool report on the rules for uncommon cases would be very helpful... let's think about this, try to find a smart way to do that.


[HUDI-2176, 2178, 2179] Adding virtual key support to COW table

What is the purpose of the pull request

Adding virtual keys support to COW table for all table operations (insert, upsert, delete, etc)
Fixed clustering
Ensured metadata table supports virtual keys

Changes not covered in this PR:

Flink and java in not in the scope of this PR.
Orc format is not covered.
cli commands.

To discuss:
With virtual keys, we are imposing a constraint that keyGen for a given table cannot change from the time of its inception. So, given this constraint, should we add some validation in HoodieSparkSqlWriter or WriteClient so that keyGen does not change overtime for a given table?
Brief change log

Made changes to all write handles to leverage keyGenerator instead of meta fields to compute record keys and partition path.
Added support to SimpleIndex to leverage keyGen instead of meta fields to fetch record key and partition path.
Moved BaseKeyGenerator and other supported interfaces (KeyGenerator, KeyGeneratorInterface) to hudi-common as to use it across all modules and classes.
Fixed most tests in TestHoodieClientCopyOnWriteStorage and TestHoodieBackedMetadata

Verify this pull request
This change added tests and can be verified as follows:

Fixed TestHoodieClientCopyOnWriteStorage and TestHoodieBackedMetadata to test tables w/ virtual keys enabled

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #3306 (901081a) into master (a086d25) will decrease coverage by 44.91%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master   #3306       +/-   ##
============================================
- Coverage     47.74%   2.82%   -44.92%
+ Complexity     5591      85     -5506
============================================
  Files           938     280      -658
  Lines         41823   11856    -29967
  Branches       4213     989     -3224
============================================
- Hits          19968     335    -19633
+ Misses        20070   11495     -8575
+ Partials       1785      26     -1759

Flag
Coverage Δ

hudicli
?

hudiclient
0.00% <0.00%> (-34.56%)
:arrow_down:

hudicommon
?

hudiflink
?

hudihadoopmr
?

hudisparkdatasource
?

hudisync
4.88% <ø> (-51.10%)
:arrow_down:

huditimelineservice
?

hudiutilities
8.97% <ø> (-50.91%)
:arrow_down:

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

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

@vinothchandar : you are good to review this patch.

if someone switches index type mid way, don't think we validate and throw proper exception that index type can't be changed to incompatible ones. Not meaning to say, we have to follow this. But just a reminder.

There was a PR around this before as well. Can we create a blocker JIRA for 0.10.0 that picks all configs like that and ensure the validations are in place

Can we file a umbrella JIRA to track all this. move all these issues as well into it.

Flink and java in not in the scope of this PR.
Orc format is not covered.
cli commands.


ui.remove_ui() fails for some inputs

Hey shiny team,
It may be user error, but I ran into an issue when trying to remove an input_slider() with ui.remove_ui().
When I try to use ui.remove_ui() on an input_slider() it doesn't remove the slider, but the same code works with input_radio_buttons()  and input_action_button() (I modified the dynamic UI example on shinylive).
ui.remove_ui() sort of works with input_numeric() , input_select(), input_text() and input_checkbox() but leaves the label/title when ui.remove_ui() is called.
In the app below, you can see the different inputs that I tried to insert and remove.
App Code here:
from shiny import App, reactive, render, ui

# For plot rendering
import matplotlib.pyplot as plt
import numpy as np

app_ui = ui.page_fluid(
    ui.layout_sidebar(
        ui.panel_sidebar(
            ui.h2("Dynamic UI"),
            ui.output_ui("ui"),
            ui.input_action_button("btn", "Trigger insert/remove ui"),
        ),
        ui.panel_main(
            ui.output_text_verbatim("txt"),
            ui.output_plot("plot"),
        ),
    ),
)

def server(input, output, session):
    @reactive.Calc
    def r():
        return input.n() * 2

    @output
    @render.text
    def txt():
        return f"n*2 is {r()}, session id is {session.id}"

    @output
    @render.plot(alt="A histogram")
    def plot():
        np.random.seed(19680801)
        x = 100 + 15 * np.random.randn(437)

        fig, ax = plt.subplots()
        ax.hist(x, input.n(), density=True)
        return fig

    @output(id="ui")
    @render.ui
    def _():
        return ui.input_slider(
            "N", "This slider is rendered via @render.ui", 0, 100, 20
        )

    @reactive.Effect
    def _():
        btn = input.btn()
        if btn % 2 == 1:
            ui.insert_ui(
                # doesn't work
                ui.input_slider("thanks", "CHOOSE", 1, 100, 10),

                # works but leaves label/title
                # ui.input_numeric("thanks", "CHOOSE", 10, min = 1, max = 100),
                # ui.input_checkbox("thanks", "CHOOSE", False),
                # ui.input_select("thanks", "CHOOSE", {"A": "a", "B": "b", "C": "c"}),
                # ui.input_text("thanks", "CHOOSE", "Data summary"),

                # works
                # ui.input_action_button("thanks", "CHOOSE"),
                # ui.input_radio_buttons("thanks", "CHOOSE", {"A": "A", "B": "B", "C": "C"}),

                "body"
            )
        elif btn > 0:
            ui.remove_ui("#thanks")

app = App(app_ui, server, debug=True)

Hi Chelsea, yeah, so this is a bit tricky. ui.remove_ui() is quite literal, it doesn't know anything about inputs and outputs but just uses whatever CSS selector you give it to choose what element to remove. And in the case of all of these inputs, there's no easy way to select the div that wraps the entire input.
For now the best I think you could do is to wrap each of those elements with another ui.div() with a unique ID; so e.g. ui.div(ui.input_select("thanks", ...), id="thanks-container"), and then ui.remove_ui("#thanks-container").
@cpsievert @wch how would you feel about adding some kind of data attribute on the div.form-group.shiny-input-container that indicates the input ID that is being wrapped?


Document Additional Dependency if Dev Platform != Deployment Platform

We have already seen a case where an uberjar created on a Mac didn't work an a Linux machine.
As this case isn't going to be marginal, I think it should be well documented. And maybe even caught on ND4J load, in case that native libraries are present in the classpath but just not for the current platform.

/cc @saudet what do you tell users of javacpp?

I have an additional profile to include all dependencies. But as I mentioned before, users might be better served with additional "pom" artifacts that depend on the java artifacts + one or all of the classifiers. Because, I don't think the way it is now works well or at all for either Gradle or sbt anyway:
https://discuss.gradle.org/t/maven-dependencies-in-profile-section-are-not-supported/2446
http://stackoverflow.com/questions/25961765/sbt-not-resolving-transitive-dependencies-in-the-profile-section-of-pom
In the case of the presets, I don't want to have to create so many pom files for all libraries, but with nd4j we just have 2 right now, so not so bad I guess.

I've implemented what I'm talking about above to try out and see:
https://github.com/deeplearning4j/nd4j/compare/sa_nativebundle
It could be refined, but there's a couple of issues I've noticed:

Maven won't pick up "pom" artifacts by default when listed in dependencies: We have to specify <type>pom</type>.
At compile time, Maven needs to access to all dependencies even for "pom" artifacts, so unless artifacts for all platforms are made available somewhere, the "-all" artifacts won't install.


Inconsistent tailing slash in remapping name and path

Hi, I notice that when formatting remappings in the compiler settings, a slash / is pushed if the remapped path does not end with /.
https://github.com/foundry-rs/compilers/blob/6528e4ac0b8f17599fd4b6b1e091b21c690ad142/src/remappings.rs#L160-L162
This may lead to incorrect path remapping and cause compiler failure.
For example, if the original remapping is @0x/contracts-utils=/home/cluracan/code/0x-monorepo/node_modules/@0x/contracts-utils, and one more / is added at the end.
The remapping now becomes: @0x/contracts-utils=/home/cluracan/code/0x-monorepo/node_modules/@0x/contracts-utils/.
If the contract has one import like this: import<EMAIL_ADDRESS>The imported path after remapping is<EMAIL_ADDRESS>Note that there is one redundant / in the remapped path and this leads to File not found errors in the compiler.
I encounter this issue when trying to compile mainnet contract 0xDef1C0ded9bec7F1a1670819833240f027b25EfF with the source code provided by Etherscan API.

could you please prepare a simple repro for this?

@mattsse Please check this repo for reproduce this issue:
https://github.com/Troublor/foundry-rs-compilers-issue47
I put some comments in the src/main.rs to illustrate the situation.

interesting, looks like this affects solc versions < 0.8.8
I think we should remove the trailing / then, in serialization.
looks like pre and post missing trailing / is handled properly, so there's probably some join bug in solc that has been fixed via the base path/allow path features in 0.8.8

Sure I can have a PR, but
just be sure, what is the reason for appending a trailing / in the first place? I feel there must be a reason (e.g., handle some corner cases) in the previous commit.

adding to this issue, there are few more places where a trailing / is added (not sure if its removed later in the call frame)
https://github.com/foundry-rs/compilers/blob/342f713da41c9738c6e775b7daf0bf6827041cde/src/remappings.rs#L178-L181
https://github.com/foundry-rs/compilers/blob/342f713da41c9738c6e775b7daf0bf6827041cde/src/remappings.rs#L245-L263
https://github.com/foundry-rs/compilers/blob/342f713da41c9738c6e775b7daf0bf6827041cde/src/remappings.rs#L863-L866


do we have an equality check method for random generated beans?

hi, today I was writing some unit tests and found random-beans, I think it's cool and make my life so much easier. I can generate random beans for test data-preparation which have a lot of fields.
for example:
    @Autowired
    private PersonDao dao;

    @Test
    public void saveTest() {
        Person person = enhancedRandom.nextObject(Person.class);
        dao.insertSelective(person);
        Person personEntity = dao.selectByPrimaryKey(person.getId());
        // test whether person has the same fields as personEntity
    }

The problem is I don't know how to easily check fileds equality between generated bean and the selected entity bean using DAO.
So, Is there an equality check method for random generated beans?
Thanks!

Hi,
Thank you, I'm glad you find random beans useful!
If you are using assertj, you can use the isEqualsToByComparingFields method. For example:
Assertions.assertThat(person).isEqualsToByComparingFields(personEntity);

This will compare all fields for you. Does this help?
Kr
Mahmoud

Hi,
Thanks. isEqualsToByComparingFields really does what I want. The cost is to import another library.
I suppose I shoud reinvent some code for equality check only, maybe an another Utils.java, which can be small and handful.

AssertJ has really nice DSL (https://joel-costigliola.github.io/assertj/), great support for specific assertions on JDK types (String, Iterable, Streams, etc.) and very helpful error messages.
It also has not dependencies, so it's only single additional dependency.
You should give it try. It's the best java assertion library imho.

I shoud reinvent some code

Don't reinvent the wheel 😄 Seriously, use assertj, it's super awesome.


if do not add type parameter,the getSuperclassTypeParameter(Class<?> …

fix: if do not add type parameter,the getSuperclassTypeParameter(Class<?> clazz) method will return String "T" and not throw TypeException,rowType is "T"

It's unclear what you are trying to fix. Need more info.
The Test is empty and is in a wrong directory.

I've closed this because no reply.


chore: added editorconfig to the project

My editor was messing up the files, since our company policy are tabs ;)
Hope this helps to enforce a consistent coding style.

Looks good to me :+1:


[Program]: Write a Julia program to find smallest element in a matrix

Description
Write a Julia program to find smallest element in a matrix
Input :
4 7 3
9 4 2
0 6 4

Output : 0

Contributed by - @ShubhraSuman

How to contribute

Save the solution in program/program/find-smallest-element-in-a-matrix/find-smallest-element-in-a-matrix.jl file

!assign

📑 Description

🐞 Related Issue

Closes: #3778
@harshraj8843 Please review my PR.
Thank You!


Exception JParseCode.OpcodeLengthError(26, _)

Wen I run infer on Gerrit Code Review, on master, I'm getting this crash:
# infer -- buck build //gerrit-server:server
Infer version v0.9.3
Copyright 2009 - present Facebook. All Rights Reserved.
Not using buckd because watchman isn't installed.
[-] PARSING BUCK FILES...FINISHED 0.5s [100%]
Not using buckd because watchman isn't installed.
Infer version v0.9.3
Copyright 2009 - present Facebook. All Rights Reserved.

The content of .inferconfig is:
{
  "infer_blacklist": [
    "gerrit-patch-commonsnet/src/main/java/org/apache/commons/net/smtp/AuthSMTPClient.java"
  ]
}

[1] http://paste.openstack.org/show/592710

Installing infer from source solved that (I used docker image).


Flow infers union function types strangely.

S | T and T | S may bring different result when S and T are function types.
For example:
/* @flow */
const f: (x: boolean) => number | (x: number) => boolean = (x) => typeof x === 'number' ? true : 0;

In the above code Flow thinks true is incompatible with (x: boolean) => number.
If we swap the types in the union annotation:
/* @flow */
const f: (x: number) => boolean | (x: boolean) => number = (x) => typeof x === 'number' ? true : 0;

Now Flow thinks 0 is incompatible with (x: number) => boolean.
The expected behavior:
If Flow is really smart, it should inferred the function type correctly, and raises no errors.
If Flow is not smart, it should inferred the function type as (x: any) => true | 0 like TypeScript.
(FYI, TypedRacket also inferred the above function as (-> Any (U True Zero)).)
The current inferred result is rather confusing.

Hmm, it seems that Flow only considers the first candidate of the union.
This passes the check without errors:
/* @flow */
const f: (x: number) => boolean | (x: boolean) => number = (x: number) => true;
console.log(f(1))

This failed:
const f: (x: boolean) => number | (x: number) => boolean = (x: number) => true
console.log(f(1))

@weakish this is because of precedence, this works:
const f: ((x: boolean) => number) | ((x: number) => boolean) = (x: number) => true

@vkurchatkin

this works

On which version?
On https://flowtype.org/try/ (on both master and 0.37.4):
/* @flow */
const f: ((x: boolean) => number) | ((x: number) => boolean) = (x: number) => true
console.log(f(1))
3: console.log(f(1))
                 ^ number. This type is incompatible with the expected param type of
2: const f: ((x: boolean) => number) | ((x: number) => boolean) = (x: number) => true
                 ^ boolean

That's right, you can't really call this function, because there is no way to know which branch is it

@vkurchatkin Yes it should not know which branch is it. But const f: (x: number) => boolean | (x: boolean) => number = (x: number) => true; console.log(f(1)) works. So Flow simply selects the first branch.

@vkurchatkin Yes it should not know which branch is it. But const f: (x: number) => boolean | (x: boolean) => number = (x: number) => true; console.log(f(1)) works. So Flow simply selects the first branch.

No, it doesn't. Once again, precedence:
const f: ((x: number) => boolean) | ((x: boolean) => number) = (x: number) => true;

No, it doesn't. Once again, precedence:
const f: ((x: number) => boolean) | ((x: boolean) => number) = (x: number) => true;

@vkurchatkin Thanks to point out this.
3: console.log(f(1))
                 ^ number. This type is incompatible with the expected param type of
2: const f: ((x: number) => boolean) | ((x: boolean) => number) = (x: number) => true;
                                            ^ boolean

It seems flow first try to match 1 against number (passed), then match 1 against boolean (failed), just as TypedRacket did.

@vkurchatkin Thanks to point out this.
3: console.log(f(1))
                 ^ number. This type is incompatible with the expected param type of
2: const f: ((x: number) => boolean) | ((x: boolean) => number) = (x: number) => true;
                                            ^ boolean

It seems flow first try to match 1 against number (passed), then match 1 against boolean (failed), just as TypedRacket did.


Best pratices with bottom-up aggregation

Hello,
I have noticed that DeepAR performs very well using a global model to predict individual sku, however it occurs a 'Over forecasting' when I aggregate it by stores, department or states. I will use M5 competition dataset to illustrate my point:
Here is a nice forecast for an individual product using DeepAR (with the output distribution set to Negative Binomial):

Here is a aggregated forecast (bottom-up) by department using DeepAR:

One solution could be using a top-down approach instead, but:

"Because historical proportions used for disaggregation do not take account of how those proportions may change over time, top-down approaches based on historical proportions tend to produce less accurate forecasts at lower levels of the hierarchy than bottom-up approaches." (Athanasopoulos, & Hyndman).

Another solution could be something like forecast reconciliation proposed here (#599)
I have seen this implementation using pyro repository that uses a Middle-out approach. They also have these Deeper hierarchical models.
There is also this implementation from scikit-hts repository.
Have you guys tried some approach with DeepAR (or any gluonts model like gpvar, deepvar) that supports and works fine with hierarchical or grouped time series when using bottom-up aggregation ?

I think this is a very practical and inspiring question, how can we add knowledge of internal hierarchical structure into the model?


Build and use android-29 Google Cloud Build image

currently we are using 28, which causes some slow updating in the CI steps

I prepared this in the new Google Cloud project, we can switch to it together with #10


Typo "Mutli-cluster Apps" in LEGACY APPS menu in Explorer

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):

enable legacy feature flag in rancher/rancher:master-head 51d074b
Open the "three horizontal lines" menu in upper left corner in Explorer

Result:
In LEGACY APPS section see the typo "Mutli-cluster Apps:

The string is now fixed in rancher/rancher:master-head c7f3cce
Closing.


Connection Issue

I am using version 2.0 and, despite the use of user tester, trying to connect through Windows Explorer continues to display the username and password input form. The user's homedir is present, as is the temporary folder "webdav" in the temp of the user with whom the service is running.

This indicates a problem with HTTP Basic authentication.
Follow the instruction in the following question:
https://stackoverflow.com/questions/13413914/how-to-enable-basic-authentication-for-webdav-on-windows-8
A reboot might be necessary before it'll work.


remove final keyword from factories to ensure BC and add check for containerId method

Restores BC for #116


Fixed regex for non literals.

fixes #28

sorry, I forgot to create a branch before making the fixes

Also, another comment on the fix for strings as function arguments.
Sometimes the type of argument is unknown (in my case, converting a class function) and then if you use ".length", it will assume an array and convert to "count()".
To get around this, I check for the name of the function argument name, if the variable is named "string", it assumes a string.

Hi @2pha, sorry, for some reason I'm not receiving email updates about this repository. Do you mind creating a new pull-request for this? Cheers!

ok, no worries.
https://github.com/endel/js2php/pull/31


Aggregate version feature

Summary
This PR introduces functionality for generating an aggregated changelog version from multiple projects, as defined in the aggregates section of the logchange-config.yml configuration file (see the Setup section for detailed configuration instructions).
The new aggregate command accepts three parameters:

aggregateVersion (required) – specifies the version to aggregate.
inputDir (optional) – defines the directory containing the configuration file.
configFile (optional) – specifies the name of the configuration file.

The command performs the following steps:

Retrieves the changelog folder of the current project.
Loads the configuration file, which defines the projects to aggregate.
Creates a folder in the changelog directory for the version specified by aggregateVersion.
Creates a temporary folder to store files from each aggregated project.
For each project in the configuration, downloads a .tar.gz archive containing all project repository files.
Extracts only the files from the project’s specified input_dir.
Deletes the downloaded archives once extraction is complete.
Filters extracted entries to include only those matching the specified aggregateVersion.
Maps these entries to ChangelogEntry objects, organized into standard groups:

added, changed, deprecated, removed, fixed, security, dependency_update, other.
Entries are prefixed with the project name in the format **PROJECT_NAME - **.
Entries related to configurations and important_notes are also tagged with the respective project name.

Aggregates all entries into a single ChangelogVersion:

The version number is defined by aggregateVersion.
The releaseDate is set to the latest release date among the projects or defaults to the current date if no release date is available.
Combines entries from all specified projects.

Saves the aggregated ChangelogVersion in changelog/vX.X.X/version-summary.md.
Cleans up by deleting the temporary folder and its contents.

Setup:
Details
Input directory structure:
changelog/
├── unreleased/
└── logchange-config.yml

Input config:
aggregates:
    projects:
        - name: hofund
          url: https://github.com/logchange/hofund/archive/refs/heads/master.tar.gz
          type: tar.gz # currently only tar.gz is supported
          input_dir: changelog # the name where dirs with versions are stored for this project
        - name: logchange
          url: https://github.com/logchange/logchange/archive/refs/heads/main.tar.gz
          type: tar.gz
          input_dir: changelog

Input command:
 mvn logchange:aggregate -DaggregateVersion="0.4.0"

Result:
Details
Output directory structure:
changelog/
├── unreleased/
├── v0.4.0/
│   └── version-summary.md
└── logchange-config.yml

Output file version-summary.md:


unique name when created from dict

We need to keep the unique_name in order to be able to reproduce the object.
We are still able to get a copy by using a dict where we skip the unique_name

@damskii9992 Please confirm that these merged changes are OK

Changes are OK for now but might lead to issues in the future.
Explaining here for documentation: If a user has already created an object with a unique_name: "BaseObj_0" and they then try to load an object which was saved with the same unique_name, this will fail.
To circumvent this, we might want to add an option to overwrite the loaded objects unique_name and add a proper error message to the user telling them to do this in case of name clashes upon loading.


0.104 Huawei lTE notify.huawei_lte not working

Hello,
in latest (0.104) version of HA I receive error while trying to use notify service from Huawei LTE modem:
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/local/lib/python3.7/site-packages/urllib3/packages/six.py", line 735, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 331, in _raise_timeout
    self, url, "Read timed out. (read timeout=%s)" % timeout_value
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 397, in _update_router
    router.update()
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 202, in update
    self._get_data(KEY_DEVICE_INFORMATION, self.client.device.information)
  File "/usr/src/homeassistant/homeassistant/components/huawei_lte/__init__.py", line 172, in _get_data
    self.data[key] = func()
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/api/Device.py", line 7, in information
    return self._connection.get('device/information')
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/Connection.py", line 22, in wrapped
    return fn(*args, **kw)
  File "/usr/local/lib/python3.7/site-packages/huawei_lte_api/Connection.py", line 166, in get
    timeout=self.timeout,
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Read timed out. (read timeout=10)
2020-01-16 09:59:26 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/local/lib/python3.7/http/client.py", line 1344, in getresponse
    response.begin()
  File "/usr/local/lib/python3.7/http/client.py", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/local/lib/python3.7/http/client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

It doesn't matter if I use yaml or front-end mode. My config looks like this:
huawei_lte:
  - url: http://<IP_ADDRESS>/
    username: !secret huawei_username
    password: !secret huawei_password
    notify:
      recipient:
        - +XXXXXX

I managed to reproduce this. I suspect this happens primarily in setups that are unable to send SMS in the first place. I have one of those here, no SMS capability with the plan I tested with.
But it kind of reproduces also when using the router web UI directly in browser: after/while trying to send an SMS, some HTTP requests take almost 30 seconds to complete, such as the mentioned device information one, as well as monitoring status, until the failure is shown, and then things start to work normally.
The web UI doesn't set timeouts and has a popup active while it's trying to send the SMS, so it's not that noticeable there. However, in the HA integration we set a timeout of 10 seconds, so we do get those exceptions. They're harmless though in the sense that things continue working again when the router starts to respond properly again. And this is not a reason for failing to send SMS, on the opposite: the timeouts follow a (failed?) attempt at sending an SMS.
Here's a modified version of the earlier posted script to play with:
from datetime import datetime
import sys
from huawei_lte_api.Client import Client
from huawei_lte_api.AuthorizedConnection import AuthorizedConnection

connection = AuthorizedConnection('http://admin:YOURPASSWORD@ROUTER-IP-ADDRESS/')  # add timeout=10 here to see the timeouts

client = Client(connection)

print("1: ", datetime.now())
print(client.device.information())
print("2: ", datetime.now())
print(client.sms.send_sms(["PHONENUMBERHERE"], "Test message"))
print("3: ", datetime.now())
print(client.device.information())
print("4: ", datetime.now())
print(client.user.logout())
print("5: ", datetime.now())

For me it prints things like:
1:  2020-02-10 22:17:10.210349
{'DeviceName': '...', ...}}
2:  2020-02-10 22:17:10.289490
OK
3:  2020-02-10 22:17:10.307752
{'DeviceName': '...', ...}}
4:  2020-02-10 22:17:35.812960
OK
5:  2020-02-10 22:17:35.819738

Note how 25 seconds passed between 3 and 4 (it's always 25 seconds for me it seems). That's where we get the timeout in the integration. Add timeout=10 to the AuthorizedConnection(...) above to experience the exception.
I'll look at suppressing the read timeout exception messages for some time, let's say 30 seconds (that would work for my case above) after we've tried to send an SMS to tone this down. But I don't think there's anything to be actually fixed here beyond that.
It would however be nice to get reports for other setups that fail to send the SMS: for how long does the steps between 3 and 4 take, as well as from setups that do send the SMS successfully: how long does it take there?


Cleanup the pom.xml files from dependency exclusions and extract them to the strongbox-parent

Task Description
We have pom.xml files that have <exclusions>. These will have to be migrated to the strongbox-parent, where this makes sense.
Help

Our chat
Points of contact:

@carlspring
@sbespalov
@fuss86

Hi @carlspring ,
As per our discussion, I'll be taking up this task.

Great! Thanks for looking into this! :)

I have commited the changes & raised pull requests in both springbox-parent & springbox. Following are the URL for the same.

Thanks!

I can take this task

Okay @LeifBrooks !

Blocked by #1130

Thanks for carrying out this clean up, @LeifBrooks! :)


indentation: Ignore generated FUGR

Add "ignoreGeneratedFunctionGroup" option to avoid issues with generated table maintenance code

right now the function group is considered generated if there is a TOBJ object for it, https://github.com/abaplint/abaplint/blob/3c7e2dafb285a63d90f6b70d75d5bbd41148966c/packages/core/src/skip_logic.ts#L76
can you help making an public repository with an example which causes the error?

the new top level exclude might work for you, https://github.com/abaplint/abaplint/issues/1309

closing this in favor of https://github.com/abaplint/abaplint-sci-client/issues/155#issuecomment-696086309


[BP-1.17][FLINK-31305] Propagate producer exceptions outside of mailbox execut…

…or so that checkpoints can correctly fail
This closes #22150.
1.17 backport for https://github.com/apache/flink/pull/22150

Manually merged via b8a9fe5a9942fb6cf11ed56a807d68d375339259


MINOR: Replace tbd with the actual link for out-of-ordering data

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Cherry-picked to 2.1 as well.