Thread Safety Updates

Fixes Issues
#860, #843, #833, #802, #690
Description of Change
In Jenkins and other build systems - parallel builds were causing failures. This PR has refactored a lot of code to correct the threading issues. More detailed discussion of the changes can be found below:
The Engine object was updated so that when the list of dependencies is retrieved - it is an unmodifiable array of dependencies. If dependencies need to be added or removed methods exist on the Engine object itself to perform these functions.
Settings and CveDB singletons were refactored - analyzers can obtain references to these via the Engine object.
An additional initialization step was added to the Analyzer interface. When an analyzer is instantiated by the engine the calls will be done in this order: initialize(settings), prepare(engine), analyze(dependency, engine), and finally close().
EvidenceCollection was completely refactored and for all intensive purposes any custom analyzers that previously used this object (obtained via the Dependency object for vendor, product, and version collections) must be updated to utilize the dependency object itself to update evidence. Example:
/* old */
dependency.getVendorEvidence().addEvidence(evidence);
/* new */
dependency.addEvidence(EvidenceType.VENDOR, evidence);

The Dependency object is now thread safe. As such, any lists used (e.g. evidence, identifiers) are
unmodifiable copies of the internal list. Any modifications must be done via the dependency object itself (e.g. dependency.removeIdentifier(i)).
Have test cases been added to cover the new functionality?
Tests were updated appropriately.

Can one of the admins verify this patch?

Fantastic job!!!
I noticed that the Travis build seems to always fail on Java7 - does the same on some of my projects. Know the issue?
Have 3.0.0-SNAPSHOT's been pushed yet, and if not, when do you think that will happen?

@stevespringett regarding travis-ci - I believe their trusty image for java 7 no longer supports oraclejdk7; you have to change your .travis.yml to use openjdk7.
Regarding merging this PR into master - that will likely happen soon (which will cause the 3.0.0-snapshots to be pushed to artifactory). I'm doing some more local testing with mono and ruby to validate that I haven't broken anything ;)  I actually may merge this in a few hours... Tomorrow morning at the latest - unless I find a bug.

While other bugs may cause the build to randomly fail (see #897 and there might be an issue in the Ant Tasks unrelated to #897 or it is the exact same issue) - this PR is considered complete and will be merged.


A user should be able to know the time of their last entry at a glance

Hi @jurre
I have this proposal (PR here: https://github.com/DefactoSoftware/Hours/pull/467):
The application should have a way of telling the user the last time they created an entry in whatever project, in whatever form (hours or mileages).
I know that at the moment, the application currently shows the date an entry was made in different tabs (Hours or Mileages), but this can be a little tasking for the user when they attempt to evaluate the duration from the time of their last entry to the current time and also try to identify what the last entry was.
Suffice to say that having a statement that reads Your last entry was 5 months ago will greatly aid the user to quickly answer the above questions, where also a user can click on the statement to navigate to last entry.
Another benefit of having this functionality is to make it serve as a wake up call to a user to start creating entries especially if they are still working actively on any project.

I think the feature makes sense, @fatboypunk @dkhgh wdyt?


Add documentation to CheckBox

CheckBox was missing some theme documentation and some of the wording was inconsistent with the other descriptions.
Not sure if using is checked and is disabled is too verbose, but it seemed consistent with the writing guidelines.

Superseded by https://github.com/godotengine/godot/pull/59678.


added inferno_bulk-data-server support

added bulk-dataserver to docker-compose.yml, inserted hardcoded value for SERVER_BASE_URL and added nginx path for bulk data server.
Pull requests into inferno-site-overlay require the following items to be completed. Submitter and reviewer
should check the relevant check boxes when the associated item is done. For items that are not
applicable, note it's not applicable ("N/A") and check the box. For example, external Pull
Requests do not require ticket links.
Submitter:

[ ] This pull request describes why these changes were made
[ ] Internal ticket for this PR:
[ ] Internal ticket links to this PR
[ ] Internal ticket is properly labeled (Community/Program)
[ ] Internal ticket has a justification for its Community/Program label
[ ] Code diff has been reviewed for extraneous/missing code

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure
where appropriate, and accomplishes the task's purpose
[ ] You have tried to break the code

This is such a straightforward change in the end, it seems like too much trouble to rebase again against master and fix the merge issue that happened earlier.  I'm just going to close this and reopen with a single commit with the small change that is necessary.

Moved this diff to a different branch because it was easier to deal with then fixing the merge issues.  See #57


Add support for secure stratum connection

Add a new optional boolean in config stratum_server_tls_enabled, disabled by default. When set to true will try to connect with TLS enabled.

Have you considered instantiating the right stream (TcpStream or TlsStream) and passing it to BufStream which just requires Read+Write https://docs.rs/bufstream/0.1.4/bufstream/struct.BufStream.html ?
I haven't checked details but if it works you don't need struct Stream and manual impl of Read and Write.

I actually tried that with a generic BufStream<T> (see
https://github.com/mimblewimble/grin-miner/pull/63) but to be honest I was not sure how to correctly implement it...


main.go:33: cannot use d (type *daemon.Daemon)错误

[root@localhost godoc]# go build -ldflags "-w"
github.com/godoc
./main.go:33: cannot use d (type *daemon.Daemon) as type "github.com/godoc/vendor/github.com/kardianos/service".Interface in argument to "github.com/godoc/vendor/github.com/kardianos/service".New:
*daemon.Daemon does not implement "github.com/godoc/vendor/github.com/kardianos/service".Interface (wrong type for Start method)
have Start("github.com/lifei6671/godoc/vendor/github.com/kardianos/service".Service) error
want Start("github.com/godoc/vendor/github.com/kardianos/service".Service) error
./main.go:33: cannot use d.Config() (type *"github.com/lifei6671/godoc/vendor/github.com/kardianos/service".Config) as type *"github.com/godoc/vendor/github.com/kardianos/service".Config in argument to "github.com/godoc/vendor/github.com/kardianos/service".New
You have new mail in /var/spool/mail/root
编译环境如下：
[root@localhost godoc]# go version
go version go1.8 linux/amd64
[root@localhost godoc]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

glide 包管理工具恢复下包。


Remove typo in aix cflags argument

Adding an equals sign that needs to be present to make this a valid argument.

Here's the latest run against the latest form of this fix. The build completes successfully, and the aborted status is only there because a test run failed (investigating now).
I think we're good to merge.


AMBARI-25412. Remove all tags from logger service methods in ambari-contrib

What changes were proposed in this pull request?
How was this patch tested?
Manually
Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/5545/
Test FAILed.
Test FAILured.


feat: adding templates for issues and pull requests

Description
This PR adds templates for pull requests and issues
Benefits
This will help new contributors effectively raise issues and submit their pull requests to the project.
Related Issue
Closes #92
Note to Reviewers
This is still a work in progress

Thank you @CBID2 for your enthusiasm regarding the templates and for taking the time to provide detailed yaml files. Greatly appreciate it!

This pull request successfully closes out issue #92 from contributor @CBID2 ✅

Thank you @CBID2 for your enthusiasm regarding the templates and for taking the time to provide detailed yaml files. Greatly appreciate it!

Thanks for your enthusiasm @XanderRubio! Just a note for future reference, when someone has a PR in draft mode, don't merge it yet. It means that they need to add more code/commits.

Thank you @CBID2 for your enthusiasm regarding the templates and for taking the time to provide detailed yaml files. Greatly appreciate it!

Thanks for your enthusiasm @XanderRubio! Just a note for future reference, when someone has a PR in draft mode, don't merge it yet. It means that they need to add more code/commits.

Thank you for your assistance and for helping me improve efficiency in handling a PR in draft mode. 😎

Thank you @CBID2 for your enthusiasm regarding the templates and for taking the time to provide detailed yaml files. Greatly appreciate it!

Thanks for your enthusiasm @XanderRubio! Just a note for future reference, when someone has a PR in draft mode, don't merge it yet. It means that they need to add more code/commits.

Thank you for your assistance and for helping me improve efficiency in handling a PR in draft mode. 😎

You're welcome @XanderRubio! :) I mentioned this in a DM to you on LinkedIn but I'll share it here too. Can I reopen this issue, and your suggestions to my form, and make a PR for the PR template? 😊

Thank you @CBID2 for your enthusiasm regarding the templates and for taking the time to provide detailed yaml files. Greatly appreciate it!

Thanks for your enthusiasm @XanderRubio! Just a note for future reference, when someone has a PR in draft mode, don't merge it yet. It means that they need to add more code/commits.

Thank you for your assistance and for helping me improve efficiency in handling a PR in draft mode. 😎

You're welcome @XanderRubio! :) I mentioned this in a DM to you on LinkedIn but I'll share it here too. Can I reopen this issue, and your suggestions to my form, and make a PR for the PR template? 😊

Of course and this makes sense. I got ahead of myself and merged right away 😅


refactor: Icon to icons for certifiedIcon

SUMMARY
This pr refactors the certifiedIcon to icon to icons
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Before

After

TESTING INSTRUCTIONS
Test out in
datasource selector modal
dateset editor
and tab drop down in sqleditor
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up


Center the logo and navlink

As it can be seen in the above picture, the link to resume is not vertically centered, and the same is with the logo. This is because there is a padding-top given to the navbar which has to be removed in order to center the nav-items.

My team can take this, good catch

Hey, @m2chan! I had issued a PR just before your comment, I'm sorry, should've claimed it before doing that.
However, do you mind looking at #45? It's related to the same file.


Update New-SPEnterpriseSearchMetadataCategory.md

Fixed example formatting.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/New-SPEnterpriseSearchMetadataCategory.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


Styling the header section

What's the style idea?
The project name should be positioned on the top left of the website, possibly with the same background as the footer for consistency in design.
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSoC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Hey, allow me to work on this under GSSOC' 2024


NotFoundHttpException after getting published module

Hello,
after I created a module I published it to my private git repo.
After that I installed it via composer and it's available at the vendor folder, now.
But when I open my Browser and type an route in, which is available in route.php file i get a
NotFoundHttpException in RouteCollection.php line 145
composer dump-autoload has no effect.
Can u help me? Sorry for my bad english. I'm German.
Greetings.

Same Problem with module in "module" - folder.

Have you added new Service provider
'Pingpong\Modules\Providers\BootstrapServiceProvider' to your config file ?
On Rab, 29 Apr 2015 at 02.55 virtualstep<EMAIL_ADDRESS>wrote:

Same Problem with module in "module" - folder.
—
Reply to this email directly or view it on GitHub
https://github.com/pingpong-labs/modules/issues/136#issuecomment-97187264
.

Hey,
I done this but now I get the error
Class 'Modules\Admin\Providers\AdminServiceProvider' not found
After that I created a new module named test...module created, but then I get the same error for this module!

Yeah, you have to add the new BootstrapServiceProvider.
I would suggest not writing to use "2.0.*@dev" in the documentation if there are breaking changes like this.

But with this provider I will have a new problem ...

New problem ? PSR-4 autoloading, maybe ?

No I think.
Within "modules.php" from your module no stub for provider is included!

'stubs' => [
'enabled' => false,
'path' => base_path() . '/vendor/pingpong/modules/src/Pingpong/Modules/Commands/stubs',
'files' => [
'start' => 'start.php',
'routes' => 'Http/routes.php',
'json' => 'module.json',
'views/index' => 'Resources/views/index.blade.php',
'views/master' => 'Resources/views/layouts/master.blade.php',
'scaffold/config' => 'Config/config.php',
'composer' => 'composer.json',
<<< MISSING PROVIDER STUB >>>
],
'replacements' => [
'start' => ['LOWER_NAME'],
'routes' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'views/index' => ['LOWER_NAME'],
'views/master' => ['STUDLY_NAME'],
'scaffold/config' => ['STUDLY_NAME'],
'composer' => [
'LOWER_NAME',
'STUDLY_NAME',
'VENDOR',
'AUTHOR_NAME',
'AUTHOR_EMAIL',
'MODULE_NAMESPACE'
],
],
],

Now controller, seed & views are not created when you creating a new module. If you want to add that, add ---resources flag to module:make command.
php artisan module:make foo --resources
# OR
php artisan module:make foo -r

This i missing in your documentation!!!

I am sorry, I haven't added it yet. Will add it soon.

Okay thanks. Now all is functional! Thanks for help!


serverStreamingPredict, Error : Missing field messages in input

https://github.com/googleapis/google-cloud-node/blob/38140975dcfc5936032d05083eb3f7b9bfe93a7c/packages/google-cloud-aiplatform/src/v1beta1/prediction_service_client.ts#L924C32-L924C38
Is this datatype actually array of number ?
data type is miss match and no explantation on how to generate a Tensor Input
I have tried this
const predictClient = new PredictionServiceClient({
  apiEndpoint: 'us-central1-aiplatform.googleapis.com',
  auth
});

const endpoint `projects/.......`
const Input = {
  "context": `Your are an Ai`,
  "examples": [],
  "messages": [
    {
      "author": "user",
      "content": 'This is question'
    },
  ]
}

const parameter = {
    candidateCount: 1,
    maxOutputTokens: 1024,
    temperature: 0.2,
    topP: 0.8,
    topK: 40
};

 const request = {
      endpoint,
      inputs: [Tensor.fromObject(prompt)],
      parameter: Tensor.fromObject(parameter)
};

const stream = predictClient.serverStreamingPredict(request);
stream.on('data', (response) => { console.log(response) });
stream.on('error', (err) => { throw(err) });
stream.on('end', () => { /* API call completed */ });

it fails with message
 details: 'Missing field messages in input.',

Tried this
 const input = Tensor.fromObject({
      structVal: {
        context: {
          stringVal: [prompt as string]
        },
        examples: {
          listVal: []
        },
        messages: {
          listVal: [
            {
              author: {
                stringVal: ["user"]
              },
              content: {
                stringVal: [question as string]
              }
            },
          ]
        }
      }
    })
    const streamRequest = {
      endpoint,
      inputs: [input],
      parameters: parameter as ITensor
    };

    const stream = predictClient.serverStreamingPredict(streamRequest);

Still doesnt work, with the same message
 details: 'Missing field messages in input.',

So close, dude! From the REST API you can see that you're missing a structVal within your listVal.

The real question is: are there helpers to create ITensors like there are with IValue?
(FYI -- you don't need the Tensor.fromObject. The object you get back is exactly the same as the one you put in.)

Thanks @rgrzywinski. Is this OK to close?


Remove support for OPAM 1.x files

We currently support the OPAM 1.2 and 1.0 format in dune-release. Given these formats are long-obsolete and OPAM Repository doesn't maintain version 1.x packages there is little use in continuing to support these:

Pull requests to OPAM repository have to be OPAM 2.0 format
dune generates 2.0 format by default
By and large the community has updated to OPAM 2.0 format

Removing the support would make our code base a bit easier to maintain and remove code paths that don't receive much testing. Affected users if any can update their OPAM files to 2.0 format which will net them a lot of benefits besides just what dune-release offers them.

Same here as with #406, we should still check the version field but simply error out when it's too old instead of running the conversion to 2.x.


adapt to new String.join - now accepting Iterator

since ponyc 0.18.0

@mfelsche - Thanks, but I already did some commits this weekend that included this update.
However, I was waiting to push them here until https://github.com/ponylang/ponyc/pull/2168 was merged, since I also updated to rely on lambda and array inference.

Totally fine. I'll close this one then. :)


Set Transformer Serializer based on API version

Hi,
Currently, I have my default "v1" API version. I have a FractalSerializerServiceProvider registered which binds to the Fractal Adapter and sets the serializer to JsonApiSerializer.
Now I am working on setting up some separate Admin API routes, which I've done by creating an "admin" API version. This allows me to segregate my controllers and transformers and anything else I need to.
However... for the Admin API, I want to use DataArraySerializer instead. Because of binding the JsonApiSerializer in a service provider, it's always the default.
What is the recommended way to easily toggle which serializer is used based on API versioning?
Thank you.

I found a working solution for now. Instead of having a Service Provider that sets the Dingo adapter and binds to the Fractal Manager to set the serializer, I simply have this within my base App\Api\V1\Controllers\Controller.php file:
protected function __construct()
    {
		app('\Dingo\Api\Transformer\Factory')->setAdapter(function ($app) {
        	$fractal = new \League\Fractal\Manager;
            $serializer = new \League\Fractal\Serializer\JsonApiSerializer();
            $fractal->setSerializer($serializer);

		    return new \Dingo\Api\Transformer\Adapter\Fractal($fractal);
		});
    }

And then within my App\Api\Admin\Controllers\Controller.php file, I can do the same thing, but set a different serializer.
Since all of my V1 controllers inherit from that base V1 Controller, and the same thing for my Admin version, this will work perfectly!

@nschirmer No plans to formally add this, since typically you'd keep the same API response serializer between versions, and maybe change the resource structure itself. But your solution would work, and using fractal directly instead of the adapter would also work.


[ci] [python-package] [dask] some CI jobs broken, others skipping Dask tests

Description
All macOS and Linux regular CI jobs are failing with this error:
Traceback (most recent call last):
created a Dask LocalCluster
  File "/Users/runner/work/LightGBM/LightGBM/examples/python-guide/dask/binary-classification.py", line 27, in <module>
distributing training data on the Dask cluster
    dask_model.fit(dX, dy)
beginning training
  File "/Users/runner/.local/lib/python3.9/site-packages/lightgbm/dask.py", line 1190, in fit
    self._lgb_dask_fit(
  File "/Users/runner/.local/lib/python3.9/site-packages/lightgbm/dask.py", line 1060, in _lgb_dask_fit
    raise LightGBMError("dask is required for lightgbm.dask")
lightgbm.basic.LightGBMError: dask is required for lightgbm.dask
``

Example recent build: ([build link](https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=15909&view=logs&j=c28dceab-947a-5848-c21f-eef3695e5f11&t=fa158246-17e2-53d4-5936-86070edbaacf)).

Others, like the `* sdist` jobs, are technically being marked successful, but all the `test_dask.py` tests are being skipped, and I see this in the logs:

```text
../../../home/AzDevOps_azpcontainer/miniforge/envs/test-env/lib/python3.11/site-packages/dask/dataframe/__init__.py:31
  /home/AzDevOps_azpcontainer/miniforge/envs/test-env/lib/python3.11/site-packages/dask/dataframe/__init__.py:31: FutureWarning:
  Dask dataframe query planning is disabled because dask-expr is not installed.

  You can install it with `pip install dask[dataframe]` or `conda install dask`.
  This will raise in a future version.

Example recent build: (build link)
Reproducible example
Look at any Linux or macOS CI jobs in this project, such as those linked above.
Additional Comments
Why would this happen on macOS?
The dask unit tests are skipped on macOS:
https://github.com/microsoft/LightGBM/blob/b27d81ea411d04d8d071d4d4e75c19ffa15c5795/tests/python_package_test/test_dask.py#L20-L21
But the lightgbm.dask examples from https://github.com/microsoft/LightGBM/tree/master/examples/python-guide/dask are still run on macOS for CI jobs with names like * regular.
https://github.com/microsoft/LightGBM/blob/b27d81ea411d04d8d071d4d4e75c19ffa15c5795/.ci/test.sh#L317
What might the root cause be?
The latest release of dask, v2024.3.1., was published to PyPI and conda-forge 2 days ago:

https://github.com/dask/dask/releases/tag/2024.3.1
https://github.com/conda-forge/dask-core-feedstock/pull/198

As of those releases, dask-expr is not a required runtime dependency of dask.
However, it seems that is now IS a requirement if you want to use dask.dataframe 🙃
docker run \
    --rm \
    -it python:3.10 \
    bash

pip install 'dask==2024.3.1 pandas==2.2.1'
python -c "from dask.dataframe import DataFrame"

ModuleNotFoundError: No module named 'dask_expr'

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

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.10/site-packages/dask/dataframe/__init__.py", line 110, in <module>
    raise ImportError(msg) from e
ImportError: Dask dataframe requirements are not installed.

Since dask-expr wasn't added as a runtime dependency in the dask-core package on conda-forge, importing that library in lightgbm's CI fails, probably causing these errors.
It IS a runtime dependency of the dask package on conda-forge (link).
So I guess our options for LightGBM's CI environments, assuming we want to keep getting conda packages for dask and distributed, are:

keep installing dask-core conda-forge package + pip install dask-expr
keep installing dask-core conda-forge package + install dask-expr conda-forge package
switch from dask-core conda-forge package to dask conda-forge package

References
Discussions about how this was rolled out:

https://github.com/dask/community/issues/361
https://github.com/dask/dask/issues/10934

dask-expr also adds a requirement of pandas>=2.0

https://github.com/dask/dask/issues/10962
https://github.com/dask/dask-expr/blob/6ddc0f3198a140a1a9ac94b3b01ccdd3aa485aaa/pyproject.toml#L30-L31

After switching from dask-core to dask package conda-forge, the installation issues here were resolved.
But I now see a new issue:
ValueError: For a 1d array, columns must be a scalar or single element list

Example stacktrace:
tests/python_package_test/test_dask.py:222: in _accuracy_score
    return da.average(dy_true == dy_pred).compute()
/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask_expr/_collection.py:160: in _wrap_expr_op
    other = from_dask_array(
/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask_expr/_collection.py:4730: in from_dask_array
    df = from_dask_array(x, columns=columns, index=index, meta=meta)
/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask/dataframe/io/io.py:433: in from_dask_array
    meta = _meta_from_array(x, columns, index, meta=meta)

build link: https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=15911&view=logs&j=c28dceab-947a-5848-c21f-eef3695e5f11&t=fa158246-17e2-53d4-5936-86070edbaacf

Think I've identified the root cause of the issue, and documented it over in https://github.com/dask/dask/issues/11006.
To unblock CI, I'm gonna try just .compute()-ing the inputs in test functions like these:
https://github.com/microsoft/LightGBM/blob/b27d81ea411d04d8d071d4d4e75c19ffa15c5795/tests/python_package_test/test_dask.py#L221-L222
Those functions aren't testing anything Dask-specific like chunking, types, etc. ... just values. And they're operating on small test inputs, so the extra memory usage from .compute()-ing them should be negligible.

The Dask tests are now running and passing on this #6357 🎉
(build link)
But I found another problem... the check that we run to ensure that lightgbm can be imported even if its optional dependencies are unavailable is failing, like this:
ValueError: Must install dask-expr to activate query planning.

full traceback (click me)
Traceback (most recent call last):
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask/dataframe/__init__.py", line 22, in _dask_expr_enabled
    import dask_expr  # noqa: F401
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask_expr/__init__.py", line 3, in <module>
    from dask_expr import _version, datasets
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask_expr/datasets.py", line 8, in <module>
    from dask_expr._collection import new_collection
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask_expr/_collection.py", line 15, in <module>
    import pyarrow as pa
ModuleNotFoundError: No module named 'pyarrow'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/lightgbm/__init__.py", line 8, in <module>
    from .basic import Booster, Dataset, Sequence, register_logger
  File "/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/lightgbm/basic.py", line 21, in <module>
    from .compat import (
  File "/home/AzDevOps_azpcontainer/.local/lib/python3.9/site-packages/lightgbm/compat.py", line 162, in <module>
    from dask.dataframe import DataFrame as dask_DataFrame
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask/dataframe/__init__.py", line 87, in <module>
    if _dask_expr_enabled():
  File "/opt/miniforge/envs/test-env/lib/python3.9/site-packages/dask/dataframe/__init__.py", line 24, in _dask_expr_enabled
    raise ValueError("Must install dask-expr to activate query planning.")
ValueError: Must install dask-expr to activate query planning.

dask is raising an import-time ValueError, which lightgbm's import strategy doesn't catch.
https://github.com/microsoft/LightGBM/blob/b27d81ea411d04d8d071d4d4e75c19ffa15c5795/python-package/lightgbm/compat.py#L166-L168
I put up a proposed change at https://github.com/dask/dask/pull/11007 to fix that.

This was resolved by #6357.


Error: Invalid response id: undefined when using streamOperations

Hi,
I'm using steem 0.67 and the streamOperations
steem.api.streamOperations(`irreversible`, (err, res) => {
      if (err) {
        console.log(err);
      }
    })

And I get an Error: Invalid response id: undefined error, since yesterday.
Before it worked fine.
I'm using steem.api.setOptions({ url: `https://api.steemit.com` })
Is anyone experiencing the same?

Yep same thing here. Started roughly the same date. No issues before that date.


Flatten (and Unflatten) Pytree to 1D array

I am not sure if such a feature exists.
If so, could you just point me to it?
If not, i want to request it.
Some context:
I am currently implementing the L-BFGS algorithm for complex optimisation problems using gradients from jax.
I have an implementation that optimises cost-functions whose argument is a single 1D array.
I want to write a decorator that promotes this to an optimiser that can optimise cost-functions whose argument are arbitrary pytrees.
I have looked at the @optimizer decorator in jax.experimental.optimizers for inspiratrion.
As far as i understand it, @optimizer unpacks the pytrees to a list of arrays (leaves) and then uses map to let the update function act on all the leaves.
This is not directly applicable to my case, since i need (for example) dot products of gradients with parameters (that's what i call the argument of the cost-function)
The feature i am looking for
What i am looking for is a pair of functions, much like tree_flattenand tree_unflatten from jax.tree_util but instead of flattening to a list of nD arrays i want the data to be flattened to a single 1D array. This, of course, assumes that there is a compatible datatype that can encapsulate all of the data.
A quick and dirty implementation
import jax.numpy as np
from jax.tree_util import tree_flatten, tree_unflatten

def full_flatten(pytree):
    flat_tree, tree = tree_flatten(pytree)
    shapes = [flat_tree[0].shape]
    last = flat_tree[0].size
    slices = [(0, last)]
    flat = flat_tree[0].flatten()
    for arr in flat_tree:
        shapes.append(arr.shape)
        slices.append((last, last + arr.size))
        last = last + arr.size
        flat = np.concatenate(flat, arr.flatten())
    return flat, tree, shapes, slices

def full_unflatten(flat, tree, shapes, slices):
    flat_tree = []
    for shape, _slice in zip(shapes, slices):
        flat_tree.append(flat[_slice[0]:_slice[1]].reshape(shape))
    pytree = tree_unflatten(tree, flat_tree)
    return pytree

@hawkinsp would it be possible to export ravel_pytree ? Right now the whole file jax.flatten_util is not exported

Sure! Can you open a feature request so we don't forget?
ravel_pytree may do weird things with integer dtype arrays, like lose precision or something. I'm not sure if it's ideal.

I have similar need for this feature, as I have a boutique optimizer for my problem that involves constructing a matrix and using jnp.linalg.lstsq to approximately apply its inverse to precondition the gradient. Therefore, I need something to canonically order all the free parameters, flatten the gradient accordingly, order the rows and columns of the matrix, apply jnp.linalg.lstsq, and then convert the preconditioned gradient to the proper pytree shape. ravel_pytree works for this perfectly, but the unravel function it returns is not jittable. Is there a way to either make the returned unravel function jittable, or modify the outputs of tree_flatten, etc. to recreate the behavior of ravel_pytree in a jittable way, or perhaps some better idea?

Thanks for the question - that might be possible. So it doesn't get lost, would you mind opening a new feature request along with a minimal example of the kind of operation you'd like to see supported? Thanks!

Is there any way to support vmap for ravel_pytree? For context, I'm working on implementing ensemble MCMC samplers - parameters are stored in a pytree and each chain's state update is dependent on the other state of the chains.
If this is the typical use:
long_param_vector, unravel_fn = ravel_pytree(pytree_of_params)

Ideally, I'd like to do something like this:
batched_param_vector, batch_unravel_fn = jax.vmap(ravel_pytree)(batched_pytree_of_params)

assert batched_param_vector.shape[0] == batch_size

batched_param_vector = batched_param_vector.at[:split].set(...)
batched_param_vector = batched_param_vector.at[split:].set(...)

batched_pytree_of_params = batch_unravel_fn(batched_param_vector)

Until then, here's a quick and dirty batched version for others who may have a similar use case:
import warnings

import numpy as np

from jax import lax, vmap
import jax.numpy as jnp

from jax._src import dtypes
from jax._src.tree_util import tree_flatten, tree_unflatten
from jax._src.util import safe_zip, unzip2, HashablePartial

zip = safe_zip

def batch_ravel_pytree(pytree):
    """Ravel (flatten) a pytree of arrays with leading batch dimension down to a (batch_size, 1D) array.
    Args:
      pytree: a pytree of arrays and scalars to ravel.
    Returns:
      A pair where the first element is a (batch_size, 1D) array representing the flattened and
      concatenated leaf values, with dtype determined by promoting the dtypes of
      leaf values, and the second element is a callable for unflattening a (batch_size, 1D)
      vector of the same length back to a pytree of of the same structure as the
      input ``pytree``. If the input pytree is empty (i.e. has no leaves) then as
      a convention a 1D empty array of dtype float32 is returned in the first
      component of the output.
    For details on dtype promotion, see
    https://jax.readthedocs.io/en/latest/type_promotion.html.
    """

    leaves, treedef = tree_flatten(pytree)
    flat, unravel_list = _ravel_list(leaves)
    return flat, HashablePartial(unravel_pytree, treedef, unravel_list)

def unravel_pytree(treedef, unravel_list, flat):
    return tree_unflatten(treedef, unravel_list(flat))

@vmap
def vmapped_ravel(a):
    return jnp.ravel(a)

def _ravel_list(lst):
    if not lst: return jnp.array([], jnp.float32), lambda _: []
    from_dtypes = tuple(dtypes.dtype(l) for l in lst)
    to_dtype = dtypes.result_type(*from_dtypes)

    # here 1 is n_leading_batch_dimensions
    sizes, shapes = unzip2((np.prod(jnp.shape(x)[1:]), jnp.shape(x)[1:]) for x in lst)
    indices = tuple(np.cumsum(sizes))

    if all(dt == to_dtype for dt in from_dtypes):
        # Skip any dtype conversion, resulting in a dtype-polymorphic `unravel`.
        # See https://github.com/google/jax/issues/7809.
        del from_dtypes, to_dtype

        # axis = n_leading_batch_dimensions
        # vmap n_leading_batch_dimensions times
        raveled = jnp.concatenate([vmapped_ravel(e) for e in lst], axis=1)
        return raveled, HashablePartial(_unravel_list_single_dtype, indices, shapes)

    # When there is more than one distinct input dtype, we perform type
    # conversions and produce a dtype-specific unravel function.
    ravel = lambda e: jnp.ravel(lax.convert_element_type(e, to_dtype))
    raveled = jnp.concatenate([vmapped_ravel(e) for e in lst])
    unrav = HashablePartial(_unravel_list, indices, shapes, from_dtypes, to_dtype)
    return raveled, unrav

def _unravel_list_single_dtype(indices, shapes, arr):
    # axis is n_leading_batch_dimensions
    chunks = jnp.split(arr, indices[:-1], axis=1)

    # the number of -1s is the number of leading batch dimensions
    return [chunk.reshape((-1, *shape)) for chunk, shape in zip(chunks, shapes)]

def _unravel_list(indices, shapes, from_dtypes, to_dtype, arr):
    arr_dtype = dtypes.dtype(arr)
    if arr_dtype != to_dtype:
      raise TypeError(f"unravel function given array of dtype {arr_dtype}, "
                      f"but expected dtype {to_dtype}")

    # axis is n_leading_batch_dimensions
    chunks = jnp.split(arr, indices[:-1], axis=1)
    with warnings.catch_warnings():
      warnings.simplefilter("ignore")  # ignore complex-to-real cast warning
      # the number of -1s is the number of leading batch dimensions
      return [lax.convert_element_type(chunk.reshape((-1, *shape)), dtype)
              for chunk, shape, dtype in zip(chunks, shapes, from_dtypes)]

I've got a decorator that tries to solve a similar problem by wrapping functions that accept arrays:
f: arr0->arr1
to instead accept PyTrees.
tree0 -> arr0 -> f -> arr1 -> tree1.
def transform_to_pytree_io(fun: typing.Callable, out_example: PyTree[ArrayLike]) -> typing.Callable:
    """Given a function that takes a 1D array and returns a 1D array, build a function that
    takes a PyTree and returns a PyTree. For example, one might have a NN with signature:
        arr_out = nn(arr_in)
    But ones data might be a PyTree:
        tree_example = {"a": jnp.array(1.0), "b": {"c": jnp.array(2.0), "d": jnp.array(3.0)}}
    This function allows one to use the NN with the PyTree.
    If a out_example is not provided, the function will attempt to output a PyTree with the same
    structure as the input. Note that, in this case, the input leaves must be scalars.
    If a out_example is provided, the function will attempt to output a PyTree with the same
    structure as the out_example.

    Args:
        fun (typing.Callable): A function that takes a 1D array and returns a 1D array.
        out_example (PyTree[ArrayLike]): An example of the output structure.

    Returns:
        typing.Callable: A function that takes a PyTree and returns a PyTree.
    """
    if out_example:
        out_example_leaves, out_structure = jax.tree_flatten(out_example)
        out_array_idxs = list(jnp.cumsum(jnp.array([x.size for x in out_example_leaves]))[:-1])
    else:
        out_structure, out_array_idxs = None, None

    def transformed_fun(inputs: PyTree[ScalarLike]) -> PyTree[ScalarLike]:
        in_leaves_1d, _ = jfu.ravel_pytree(inputs)
        out_array_1d = fun(in_leaves_1d)

        out_leaves_1d = jnp.split(out_array_1d, out_array_idxs) if out_array_idxs is not None else out_array_1d

        out_tree = jax.tree_util.tree_unflatten(
            out_structure if out_structure is not None else jax.tree_util.tree_structure(inputs), out_leaves_1d
        )
        return out_tree

    return transformed_fun


Opening multiple tabs from a single profile on start, with the default terminal, and on individual profiles.

Description of the new feature/enhancement
This FR would solve having to manually setup my workspace on every new launch. I always start with the same 3 tabs, it would be nice to launch these all in the default.
"globals": {
"defaultProfile": ["GUID1", "GUID2", "MULTI-PROFILE-GUID1", ...]
}
...
"profiles": [
{
"guid": "multi-profile guid",
"launchProfiles": ["other profile guid1", "other profile guid 2", ...]
}
]
Proposed technical implementation details (optional)
Change existing launch code into a for loop and the defaultProfile backing as a array.
Either new profile type could be introduced or the detection of launchProfiles for each profile configuration would signal needing to launch other profiles. Recursive?
Support the launching of multiple profiles in any launch action. Should be self explanitory.

So I suppose this was discussed before in #1043, though there doesn't seem like there's a unique issue for it, so congratulations, this is now the thread :)
There are probably a bunch of things we'd want to consider as part of a comprehensive solution here.

What if someone wants to open the terminal with multiple tabs (what you've already discussed above)
What about with multiple panes, in various different split configurations? How would we set that?
Perhaps the user wants to auto-launch multiple windows? In different locations, etc.
Obviously, any solution for the above three should not preclude any of the others. Users would want to be able to specify multiple windows, each with their own tabs, and with tabs that might have any number of panes.
Would we want this multi-launch behavior to only happen on first launch, or every Terminal launch?
With the nesting behavior you have above, what if someone had a recursive loop, where one profile A specified launching profile B, and B specified launching A? That would theoretically cause an infinite loop - do we allow that?
(I'm sure there's more I'm missing here)

This is certainly a problem that's feasible from an engineering standpoint, but due to the complexity of specifying these scenarios, I'd want a spec written first to try and think through the edge cases before we start working on the code.

I'm actually gonna merge this one back into /dup #756, since I found the original "multiple tabs on startup (and more)" issue.


Add Time Tracking example app for website

Add new example from my starter architecture app:

https://github.com/bizz84/starter_architecture_flutter_firebase

Thanks!


Update scanner.py

Here’s a modified version of the send_discovery_request function to include debugging and exception handling:

I'm gonna vote "no" for this one.  PR #519 already fixes the underlying problem (instead of just hiding the error), print() should not be used here, and I like my spaces :rofl:

and I like my spaces 🤣

Ha! I didn't even see them until @blitzu's PR. We could use a style guide helper. I'm tempted to cherry pick just the spaces fix for this PR.  😝

PR https://github.com/jasonacox/tinytuya/pull/519 already fixes the underlying problem (instead of just hiding the error)

That's true.  I need to merge that and get into a minor rev release.
@blitzu even though this PR will be addressed with #519 , we appreciate you raising this! Active community members and willing contributors like you are how we keep the project moving forward. Thank you!

Personally I like having spaces inside brackets/parenthesis as I find it a lot more readable when scanning through code.

Full fix in #519.


seeking on a timestamp, blocks the reader

Hi, thanks for the amazing project.
I have an issue with my setup and I can't figure out what is wrong.
TLDR: I have a topic, with messages in it, something like 30 messages. The messages were published between 2020-07-31T21:28:56.739Z and 2020-08-01T11:03:04.323Z. When I try to read the messages after calling Reader#seek on a timestamp after the last message publish time, the reader hangs.
Describe the bug
I use a Reader to connect to the cluster and grab messages between some dates. When I connect to the cluster and I read all messages I have no problem. But when I use the reader to seek to a specific timestamp, the Reader#readNext method will hang, even though Reader#hasMessage method returns true.
I can't reproduce in a test by creating a topic, posting a few messages and then trying to seek and read, the problem does not happen. In a test, when I Reader#seek to a timestamp much after the last message was published, I still receive the last message I published to the topic.
I wrote an example, and I can share the output so you can see the issue.
Code:
import org.apache.pulsar.client.api.Message;
import org.apache.pulsar.client.api.MessageId;
import org.apache.pulsar.client.api.PulsarClient;
import org.apache.pulsar.client.api.PulsarClientException;
import org.apache.pulsar.client.api.Reader;
import org.apache.pulsar.client.api.ReaderBuilder;
import org.apache.pulsar.client.impl.schema.BytesSchema;

import java.io.IOException;
import java.time.Instant;
import java.util.concurrent.TimeUnit;

public class ReadProblem {

    static final String topic = "persistent://namespace.lagame/sandbox.ingestion_v1/udd.ffd.1";

    Reader<byte[]> newReader(PulsarClient client, boolean startMessageIdInclusive, MessageId startMessageId) throws PulsarClientException {
        ReaderBuilder<byte[]> builder = client.newReader(BytesSchema.of()).topic(topic).startMessageId(startMessageId);
        if (startMessageIdInclusive) {
            builder.startMessageIdInclusive();
        }
        return builder.create();
    }

    static Instant asDate(long ts) {
        return Instant.ofEpochMilli(ts);
    }

    void readMessages(PulsarClient client, int timeoutInSeconds, boolean startMessageIdInclusive, MessageId startMessageId, Long seekTime) {
        try (Reader<byte[]> reader = newReader(client, startMessageIdInclusive, startMessageId)) {

            if (seekTime != null) {
                reader.seek(seekTime);
            }

            while(reader.hasMessageAvailable()) {
                Message<byte[]> message = reader.readNext(timeoutInSeconds, TimeUnit.SECONDS);
                if (message == null) {
                    System.out.println("ERROR! hasMessageAvailable returned true, but no message was read after " + timeoutInSeconds + " seconds");
                    break;
                } else {
                    if (seekTime == null) {
                        System.out.println("Publish time: " + asDate(message.getPublishTime()));
                    } else {
                        System.out.println("Publish time: " + asDate(message.getPublishTime()) + ", seek time: " + asDate(seekTime));
                    }
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        try {
            final PulsarClient client = PulsarClient.builder()
                    .serviceUrl("pulsar://localhost:6650")
                    .build();
            final ReadProblem rp = new ReadProblem();
            System.out.println("earliest no seek");
            rp.readMessages(client, 5, false, MessageId.earliest, null);
            System.out.println("earliest no seek done");
            System.out.println("latest no seek");
            rp.readMessages(client, 5, false, MessageId.latest, null);
            System.out.println("latest no seek done");

            long[] seekTimestamps = new long[] {
                    // some time after last message published - will fail
                    Instant.parse("2020-08-01T23:03:00Z").toEpochMilli(),
                    // 2 minutes after last message published - will fail
                    Instant.parse("2020-08-01T11:05:00Z").toEpochMilli(),
                    // on the minute when last message published - will succeed
                    Instant.parse("2020-08-01T11:03:00Z").toEpochMilli()
            };

            for (long seekTimestamp : seekTimestamps) {
                System.out.println("earliest w/ seek " + asDate(seekTimestamp));
                rp.readMessages(client, 5, false, MessageId.earliest, seekTimestamp);
                System.out.println("earliest w/ seek done");
                System.out.println("latest w/ seek " + asDate(seekTimestamp));
                rp.readMessages(client, 5, false, MessageId.latest, seekTimestamp);
                System.out.println("latest w/ seek done");

            }
        } catch (PulsarClientException e) {
            e.printStackTrace();
            System.exit(1);
        }
    }
}

Running the following program against our cluster will output the following:
earliest no seek
2020-08-06 12:23:19,078 [pulsar-client-io-1-1] WARN  c.s.circe.checksum.Crc32cIntChecksum - Failed to load Circe JNI library. Falling back to Java based CRC32c provider
Publish time: 2020-07-31T21:28:56.739Z
Publish time: 2020-07-31T21:28:56.764Z
Publish time: 2020-07-31T21:28:56.764Z
Publish time: 2020-07-31T21:28:56.764Z
Publish time: 2020-07-31T21:28:56.764Z
Publish time: 2020-07-31T21:28:56.824Z
Publish time: 2020-07-31T21:28:56.860Z
Publish time: 2020-07-31T21:28:56.860Z
Publish time: 2020-07-31T21:28:56.861Z
Publish time: 2020-07-31T21:28:56.861Z
Publish time: 2020-07-31T21:45:33.788Z
Publish time: 2020-07-31T21:45:33.814Z
Publish time: 2020-07-31T21:45:33.814Z
Publish time: 2020-07-31T21:45:33.817Z
Publish time: 2020-07-31T21:45:33.817Z
Publish time: 2020-07-31T21:45:33.886Z
Publish time: 2020-07-31T21:45:33.886Z
Publish time: 2020-07-31T21:45:33.886Z
Publish time: 2020-07-31T21:45:33.886Z
Publish time: 2020-07-31T21:45:33.886Z
Publish time: 2020-08-01T11:03:04.225Z
Publish time: 2020-08-01T11:03:04.245Z
Publish time: 2020-08-01T11:03:04.245Z
Publish time: 2020-08-01T11:03:04.245Z
Publish time: 2020-08-01T11:03:04.245Z
Publish time: 2020-08-01T11:03:04.312Z
Publish time: 2020-08-01T11:03:04.323Z
Publish time: 2020-08-01T11:03:04.323Z
Publish time: 2020-08-01T11:03:04.323Z
Publish time: 2020-08-01T11:03:04.323Z
earliest no seek done
latest no seek
latest no seek done
earliest w/ seek 2020-08-01T23:03:00Z
ERROR! hasMessageAvailable returned true, but no message was read after 5 seconds
earliest w/ seek done
latest w/ seek 2020-08-01T23:03:00Z
ERROR! hasMessageAvailable returned true, but no message was read after 5 seconds
latest w/ seek done
earliest w/ seek 2020-08-01T11:05:00Z
ERROR! hasMessageAvailable returned true, but no message was read after 5 seconds
earliest w/ seek done
latest w/ seek 2020-08-01T11:05:00Z
ERROR! hasMessageAvailable returned true, but no message was read after 5 seconds
latest w/ seek done
earliest w/ seek 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.225Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.312Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
earliest w/ seek done
latest w/ seek 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.225Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.245Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.312Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
Publish time: 2020-08-01T11:03:04.323Z, seek time: 2020-08-01T11:03:00Z
latest w/ seek done

From the output, we can see that:

only when seeking on the exact minute, I get the messages that were published at that minute
other seeking time (much after or two minutes after) will cause the Reader#readNext to timeout

I'm not really looking for a solution (great if we have one), I'm trying to understand what exactly is going on. So maybe insights from the dev team so I can continue my journey/investigation and understand/figure out what exactly is going on.
Expected behaviour
I'm expecting (per the example above) that:

either the Reader#hasMessage returns false when the seekTime is after the publishTime
either the Reader#hasMessage returns true but Reader#readNext does not block and return the last message

Desktop (please complete the following information):
OS: macOS Catalina 10.15.5
I have the issue when running code from my MAC, but also when my code is running in our cluster on Linux machines.

As I've said, I'm unable to reproduce in a test.
Are there some information about the topic/cluster/partitions I could share that could help anyone reproduce the cluster and the problem?
As far as I know, this topic:

as no active publishers
as 1 other consumer

@daddykotex
If seekTime is after the last message has been published, then Reader#readNext will be blocked since there is no more message.  For non-blocking, you can use readNext(int timeout, TimeUnit unit) instread.
Why Reader#hasMessageAvailable return true even the seekTime is after the publishTime, I think it's a bug.
The reason is that Reader#hasMessageAvailable  calls ConsumerImpl#getLastMessageIdAsync which will return the last messageId of topic, and  'Reader#seek' has no effect to Reader#hasMessageAvailable.

Thanks @aloyszhang
As you can see in the example above, I use readNext(int timeout, TimeUnit unit) and it times out. So it works as expected if I understand what you're saying. But there is still an issue since, as you said, there are no more messages yet hasMessageAvailable still gives true.
So the following example, in pseudo-code, :
seek(future) // after all published messages
if (hasMessageAvailable) {
  msg = readNext()
  if (msg == null) {
    raise "Got null when expecting a message"
  }
}

Thanks for the information, it confirms what my coworker and I thought.
But I believe there is still an issue with hasMessageAvailable in this case.

@daddykotex
I also think hasMessageAvailable  is an issue.
It should give false if there are no more (new) messages.
And I am trying to figure out how to fix it.


Bloxstrap and Roblox VC Issue

The Roblox Voice chat red triangle appears to be on when the game is launched with Bloxstrap. I tried uninstalling it and installing to test it and it seems Bloxstrap is the reason why my VC is disabled when I join a game.
edit: it seems that is happening with 3rd party Roblox apps as well

Red triangle?

https://cdn.discordapp.com/attachments/1129286836523630642/1140328120424091841/image.png

Yeah, I just realized, I don't have voice chat myself. And because of that, I can't really confirm, but this is definitely the first I've heard of this. It might be a bit of a long shot, but you should check to see if Windows is denying Microphone access to Roblox in Windows settings. Just search "microphone privacy settings".
Also, what 3rd party apps?

Issue has been awaiting clarification for over a month, closing as stale. If you have anything further to add, just respond and I'll reopen.

i'm having this issue too  and i cant find anything in microphone privacy settings about bloxstrap or roblox

and i cant find anything in microphone privacy settings about bloxstrap or roblox

It should be there, show the list of programs that are listed in the settings.

it constantly says still connecting but as soon as i close bloxstrap and reopen roblox it immediatly works.

This is a completely different problem though, this is about voice connection.

after a while of connecting i get the red triangle in the corner of the voice chat icon, because it can't connect

Oh, I thought the red triangle only happens if it can't find an input device. Does it happen for both?
Anyway, see if it happens without Bloxstrap too. https://github.com/pizzaboxer/bloxstrap/wiki/Switching-between-Roblox-and-Bloxstrap

Oh, I thought the red triangle only happens if it can't find an input device. Does it happen for both?
Anyway, see if it happens without Bloxstrap too. https://github.com/pizzaboxer/bloxstrap/wiki/Switching-between-Roblox-and-Bloxstrap
I also have a problem where I can't hear anyone elses vc and it's honestly annoying and fustrating, I have to uninstall bloxstrap just to use vc..

I also have a problem where I can't hear anyone elses vc and it's honestly annoying and fustrating, I have to uninstall bloxstrap just to use vc..

The problem is only that you can't hear other people? Please clarify if:

you're able to actually use voice chat in game
changing your output device in the escape menu does not work
that you're actually able to hear in-game sounds

If it's "yes" to all of those questions, then upload your configuration please:
https://github.com/pizzaboxer/bloxstrap/wiki/Uploading-your-Bloxstrap-configuration


Update how-can-i-use-learning-pathways-in-my-organization.md

Grammar fixes
Category

[X} Content fix

Docs Build status updates of commit 2dcae1b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Community/how-can-i-use-learning-pathways-in-my-organization.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Add support for Linux/ppc64le, Linux/aarch64, MacOS/arm64

MNT: Re-rendered with conda-build 3.21.9, conda-smithy 3.21.0, and conda-forge-pinning 2<IP_ADDRESS>.52.02

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Config api changes

Changes to the ConfigStore API

Cleanup javadocs
Replace references to config key URIs with ConfigKeyPaths
Add  VersionStabilityPolicy
Add Alpha annotations

@ibuenros @zliu41 @ydai1124 can you review?

@chavdar Is it necessary to put everything in the gobblin.config.store.api, for example, the custom exception classes VersionDoesNotExistException?

LGTM other than minor comments.

@ydai1124 The exception is part of the API so I tihnk it should be there. Any alternatives?

@chavdar No, if that is part of the API :).

Updated the PR with addressing the code review comments and adding three more factory methods to ConfigKeyPath .

Never mind, the factory methods need to be static and in the actual implementation.

LGTM.

Superseded by the squash commit in https://github.com/linkedin/gobblin/pull/560


compiling issue on ubuntu  16.04

First of all, I had to install the following dependencies:
apt install libsdl2-dev libc6-dev-i386 gcc-multilib g++-multilib

Also build and install cmake from sources since the repository version is older than required (3.5).
I'm now hitting a compile error, which I can't find how to fix:
Building CXX object CMakeFiles/koku-xinput-wine.dir/xinput.cpp.o
/home/xbmc/install/koku-xinput-wine/xinput.cpp:10:22: fatal error: winerror.h: No such file or directory
compilation terminated.
CMakeFiles/koku-xinput-wine.dir/build.make:86: recipe for target 'CMakeFiles/koku-xinput-wine.dir/xinput.cpp.o' failed
make[2]: *** [CMakeFiles/koku-xinput-wine.dir/xinput.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/koku-xinput-wine.dir/all' failed
make[1]: *** [CMakeFiles/koku-xinput-wine.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Any ideas?

I figured it out... I added /opt/wine-devel/include/wine/windows under target_include_directories of the CMakeLists.txt file, in line 39.
I guess this could be added in master, because this is the path that comes by default from the wine-devel-dev package in the https://dl.winehq.org/wine-builds/ubuntu repository.
After this, the build still fails with the following:
koku-xinput-wine.make.log.txt

I just realized that I could install wine-staging-dev instead of wine-devel-dev, which saves me the trouble of the last 2 posts.
But I still get the same (looks the same to me), error:
koku-xinput-wine.make.log.txt

I managed to make it work... The problem was the cpp version. Need to upgrade to 6, where Ubuntu 16.04 has a default of 5.
I followed this guide and worked properly:
https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91


Suggestion: Config-assignable loot tables

I was wondering if there was any chance of adding a config option for the fridge and cabinet that allowed a user to supply a loot table (ex. fridgeloot="minecraft:chests/simple_dungeon")?
That way if either is generated into the world rather than created by a player, it will pull from a loot table. Even better would be if it could handle multiple loot tables and pick one of them at random or with percentage weighting.
Alternately, it would be great if it also just added a default loot table (including some vanilla ingredients and the cookbook) to the mod itself which modders/modpackers could change from the outside with tools.
Thanks for taking the time to read this. Kudos on CFB. It's really cool. :)

This sounds a lot like something that should be handled by the mod handling the world generation, not by each other mod individually. I wouldn't be surprised if e.g. Recurrent Complex already supports custom loot tables for generated inventories.

Quite a few mods add loot table support. Additional Loot Tables, LootTweaker, Loot++, etc. But I haven't found one that will push a loot table into the inventory of an item that isn't normally drawing from an existing table. It's possible Recurrent Complex can do it for non-chest inventories, but I'll have to dig a bit deeper to see how that would work.
I'm building up a pack around Lost Cities, and although it supports modifying loot tables for its chests, it doesn't add any functionality for re-tailoring tile entities from other mods. I'm kind of stretching it beyond its purpose already. I found a few older mods that did that, but they look to have never transitioned to 1.12. I have been trying to avoid adding any other large scale mods that mess with structures, for fear of non-compatibility/bloat.
I may just have to break down and build out a custom mod for this purpose. I appreciate you taking the time to respond. :)


Detect (from JavaScript) if Firefox plugin installed

I have a web site that uses PDF's extensively.
As users enter the site I check to see if they appear to have a PDF plugin. In the case of Firefox and Chrome that's done via navigator.plugins[]. If no plugin is found, I can display a page with advice on what software to install and where to get it.
Plugins are a real hassle and I'm very excited about pdf.js. The Firefox addin seems to be in great shape on multiple platforms and I am hoping this will be the answer to my prayers.
How can I detect (using JavaScript) whether the user has already installed the Firefox addin so I can display a helpful message if they don't yet have it.

Closing since this is not relevant for the library. Moreover, the Firefox extension is no longer developed since it doesn't work in version 57 and higher and it's default now in Firefox.


Save calibration for different spectrometers.

Maybe consider storing the latest set of spectrometer settings in a defaults file (e.g. ~/.nqrduckrc) so it can be loaded back automatically at startup.

Closed with 04231158ef6438650b2bdba73c5a1f90b891815e


Removed space views are not  GC'd from the EntityTree

Removing a space view causes the viewer to start spewing spam:
[2024-06-07T22:22:25Z ERROR re_viewport_blueprint::space_view] View blueprint at SpaceViewId(8403bae3-7776-4b3c-8052-099161ac6a8c) is lacking the required `SpaceViewClass` component.
[2024-06-07T22:22:25Z ERROR re_viewport_blueprint::space_view] View blueprint at SpaceViewId(8403bae3-7776-4b3c-8052-099161ac6a8c) is lacking the required `SpaceViewClass` component.
[2024-06-07T22:22:25Z ERROR re_viewport_blueprint::space_view] View blueprint at SpaceViewId(8403bae3-7776-4b3c-8052-099161ac6a8c) is lacking the required `SpaceViewClass` component.

It appears we regressed on some aspect of fully purging the blueprint from the store when we clear it.
After GC runs, the blueprint inspector shows all the data is gone, but the entity tree entries persist.

Looks like this is a combination of two issues:

https://github.com/rerun-io/rerun/pull/6501 has introduced an error when we query a space-view that's been cleared before it's been garbage collected
An unknown PR seems to have broken the GC behavior that would have cleaned this up after being cleared

It looks like as part of:

https://github.com/rerun-io/rerun/pull/5535
we removed the test that verified this functionality worked as required.: https://github.com/rerun-io/rerun/pull/5535/files#r1631789722

Even after adding and fixing the test: https://github.com/rerun-io/rerun/pull/6522
We still see the same behavior. Maybe there's static data leaking into the blueprint?

Turns out this is because the python-logged blueprint components include log_time and log_tick timelines, but the clear-event that we generate doesn't clear on those timelines, which means the data is still implicitly protected.


Update the Prerequisites steps to include "Destination Filters"

Proposed changes
Added a required step to the Prerequisites section, so customers are aware that enabling  "Destination Filters"  is necessary.
<!-- When should this get merged/published?
- ASAP once approved

### Related issues (optional)

Slack: https://twilio.slack.com/archives/C0114BL66EP/p1718296707639409?thread_ts=1718191907.764089&cid=C0114BL66EP

@prigiattiperrut @forstisabella , if i am reading the changes correct, i dont think it is in the suggested spot. I thought we wanted to add this to the Pre-req steps? no?
I think that is the right spot, plus we should call out, if using Analytics.js and Device Mode destination, enable destination filters.

@forstisabella - i like that, lets move these changes to those 2 places and publish the doc. best to publish a patch now and not wait for next week's tuesday release train.

closing this PR, as the information was replicated in #6706. Thank you for catching this issue and drafting the language @prigiattiperrut!


500 Server error

I tried to make some payments and I managed to receive an 500 server error. The log said:
ERROR 	2017/07/25 - 06:19:26: Property Customer->lastname is not valid at line 909 in file classes/ObjectModel.php
Could we define these kinds of errors instead of dying with an 500 error? :)

Hello,
I've implemented the validation of new customer's account before saving it on prestashop so now it will display error messages if the account cannot be created. Fixed in both module versions.
Regards,
Rokas


Http methods in route-handlers.md are Pascal-cased

According the usual naming convention within .NET MapGet, etc. is Pascal-cased, so the term camel-cased is most likely a typo.

Internal previews

📄 File
🔗 Preview link

aspnetcore/fundamentals/minimal-apis/route-handlers.md
Route Handlers in Minimal API apps

Looks great, @gfoidl! Thanks for submitting this. Rick handles this doc, so I've pinged him for a final look :eyes: and merge.

@gfoidl much appreciated!
Check out is:issue is:open label:"code help wanted" " and is:open is:issue label:"Good first issue"

@Rick-Anderson thanks.
I'll pass by in this repo almost daily, so when there's something I can contribute to, I'll do it 😄


NScrollbar 缺失 vue scope 生成的作用域属性

Describe the bug
见 #5084 ，
现在这依旧是一个存在的问题，v2.38.2。
Steps to reproduce
https://codesandbox.io/p/sandbox/gracious-elgamal-p9l754?file=%2Fsrc%2FApp.vue%3A9%2C33
From #5084
Link to minimal reproduction
NScrollbar
System Info
System:
    OS: Linux 6.6 NixOS 24.11 (Vicuna) 24.11 (Vicuna)
    CPU: (4) x64 AMD Ryzen 5 3400G with Radeon Vega Graphics
    Memory: 9.29 GB / 15.58 GB
    Container: Yes
    Shell: 5.9 - /run/current-system/sw/bin/zsh
  Binaries:
    Node: 20.14.0 - /run/user/1000/fnm_multishells/34715_1719097963740/bin/node
    npm: 10.7.0 - /run/user/1000/fnm_multishells/34715_1719097963740/bin/npm
    pnpm: 9.4.0 - /run/user/1000/fnm_multishells/34715_1719097963740/bin/pnpm
  npmPackages:
    naive-ui: ^2.38.2 => 2.38.2
    vue: ^3.4.21 => 3.4.29

Used Package Manager
pnpm
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

Provide a based on CodeSandbox or stackblitz [Minimal, Reproducible Example] (https://stackoverflow.com/help/minimal-reproducible-example)

This issue does not have any recent activity. If you are still experiencing similar problems, open a new error, including a minimal copy of the problem


Support breaking strings across lines (by extending onEnterRules to have more context?)

In Android Studio, if I press <enter> inside a (single-line) string in Dart, it will automatically add string terminators to keep the string the same, but spread across multiple lines:
https://user-images.githubusercontent.com/1078012/197567863-318f0be9-a3dd-422a-97c2-0bd3e1c224da.mp4
I've had requests to support the same in Dart, but as far as I can tell it's not currently possible in VS Code. The closest support for this is with onEnterRules, but as far as I can tell it only supports regex and there's no reliable way I can activate the rule only if you're inside a string (attempting to do this reliably with regex would be difficult).
VS Code already has a rough idea of where strings are in the file from the textmate grammar and/or the semantic tokens. It would be nice if they could be leveraged here, so we could specify rules that applied only for strings (specific token types/scopes).

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


'FBSDKCoreKit' has a minimum deployment target of iOS 11.0

Build failed on iOS
Compiling for iOS 9.0, but module 'FBSDKCoreKit' has a minimum deployment target of iOS 11.0

My Podfile.lock
...
  - FBSDKCoreKit (7.1.1):
    - FBSDKCoreKit/Basics (= 7.1.1)
    - FBSDKCoreKit/Core (= 7.1.1)
  - FBSDKCoreKit/Basics (7.1.1)
  - FBSDKCoreKit/Core (7.1.1):
    - FBSDKCoreKit/Basics
  - FBSDKLoginKit (7.1.1):
    - FBSDKLoginKit/Login (= 7.1.1)
  - FBSDKLoginKit/Login (7.1.1):
    - FBSDKCoreKit (~> 7.1.1)
...
  - flutter_login_facebook (0.1.0):
    - FBSDKLoginKit (~> 7.0)
    - Flutter

It works fine if changing platform to 11.0  in ios/flutter_login_facebook.podspec
-  s.platform = :ios, '9.0'
+  s.platform = :ios, '11.0'

Hey!
Thanks for the report. Can you please try current prerelease version and see if problem still here?

Thanks. That problem has gone in the latest prerelease 0.3.0-dev.


[Bearer] Privacy compliance information required

      Bearer has created this PR to collect privacy compliance information required by your organization on this project        Your security & compliance team needs your help to provide information about this project, particularly how personal data is processed.     You will need some information about what this repository does, what kinds of data it processes, and where that data is stored. Any member of this project is welcome to contribute, though we advise you to assign this PR to the lead developer.     You can start providing information right now and come back later if you don’t have time to complete it at once.     👉 Start completing information     ⏰ The whole process can take up to 30 minutes depending on the complexity of the project.        ⚠ Do not close or merge manually, it will be done automatically once the form is completed.      For additional information or help, please contact the security & compliance team.

   Privacy compliance information has been successfully completed 🎊     Thank you for your help 🙏


Adds automatic module name and OSGi bundle headers

Issue #, if available:
Fixes #547
Description of changes:
Adds Automatic-Module-Name and OSGi bundle attributes to the Jar manifest file.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Here is a comparison between the v1.9.4 manifest and the manifest produced by this change.

https://gist.github.com/popematt/1cb1fc03644fe24238326b9baff90497/revisions
Does dropping the Main-Class attribute matter?

https://gist.github.com/popematt/1cb1fc03644fe24238326b9baff90497/revisions
Does dropping the Main-Class attribute matter?

This was used to allow the jar to be executed and display version / build time information. We should keep that unless that's now supported in some other way.

https://gist.github.com/popematt/1cb1fc03644fe24238326b9baff90497/revisions
Does dropping the Main-Class attribute matter?

I mean... technically it does. The Main-Class attribute is used to set the entry point when you run the jar as a standalone application. That being said, no one has complained about it being missing.
I'll add it.

We should keep that unless that's now supported in some other way.

You've been able to get that information all along even without having to execute the jar. E.g.:
❯ jar xf ion-java.jar ion-java.properties
❯ more ion-java.properties
#Thu Jan 04 13:29:16 PST 2024
build.version=1.11.1-SNAPSHOT
build.time=2024-01-04T21\:29\:16.266Z

You can also extract META-INF/MANIFEST.MF, and you can choose to use unzip instead of jar xf if you want to.


Change UISwitches colour to blue in Settings 💅🏻

In this PR, I change the UISwitches colour in Settigns to blue. I think it makes more sense than green since the labelings of GitHawk are blue-ish. Additionally, I refactored some code in that group 😄

@jdisho can you share a screenshot?
Sent with GitHawk

I applied the changes as it was discussed @rnystrom 😊


chore: bdd-spring-1581127576 to 0.0.1

chore: Promote bdd-spring-1581127576 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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


Consider replacing ReferenceShard and VariantShard with SimpleInterval

This issue was moved to broadinstitute/hellbender-dataflow#22


Improve documentation in README

Is your feature request related to a problem? Please describe.
1.0.0 had a couple of breaking changes and there has been a lot of confusion since its release on how to add a marker click listener or a custom info window adapter.
Describe the solution you'd like
The README should have a section and describe example usages and scenarios such as this.
Describe alternatives you've considered
Another alternative is to improve the API such that GoogleMap.setOnInfoWindowClickListener, GoogleMap.setOnMarkerClickListener, GoogleMap.setOnMarkerDragListener, and GoogleMap.setInfoWindowAdapter are not override by MarkerManager. I need to dig into this scenario deeper to see if it's a possibility.
Additional context
See issues #685, #677, #676, #661, and #656.

We could also post a few StackOverflow questions and answers specifically on these topics (i.e., answer our own questions) - developers may find these before they find the README.

Per more discussion, this documentation could be written as a "Migration Guide" from v0.x to v1.0.

Another alternative is to improve the API such that GoogleMap.setOnInfoWindowClickListener

I believe this 5 year old SO question is related: https://stackoverflow.com/a/34062726/2445763


Beatmaps don't seem to load

When trying to download a beatmap it shows that it's completely downloaded and the audio seems to be fine however, when trying to select the difficulties for beatmaps, it doesn't want to seem to load the map even though, it completely downloaded.

It's probably because the beatmap entries don't match with the beatmap pack downloaded. This is an issue with the upstream mirror site. I'll try giving an alert message in the next update.

Oh, thanks for elaborating
On Fri, Jun 5, 2020 at 9:36 PM 111116<EMAIL_ADDRESS>wrote:

It's probably because the beatmap entries don't match with the beatmap
pack downloaded. This is an issue with the upstream mirror site. I'll try
giving an alert message in the next update.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/111116/osu/issues/41#issuecomment-639980444, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AP3JKE74GUBCSNRW37BVBFLRVHBUBANCNFSM4NU65DAA
.


Feature Request: Import function error handling

Summary of the new feature/enhancement
import-alertrules and import-huntingrules function stops when one of the rules triggers a error, update the function to continue when a error is triggered.
feedback from Edoardo Gerosa

updated import function to continue on error


Route RawJupyterSession up through Notebook / Execution / SessionManager

RawJupyterSession exists in a form that can currently be swapped in for JupyterSession in a notebook. But this is just hacking it in manually. We need a mechanism to choose if we want to create a RawJupyterSession or a JupyterSession based on our local / remote setting and interpreter. The tricky bit is that this routes through multiple layers of host/guest livesharing and what not. And due to that I don't think that we can skip layers on the way up. ZMQ would also have to get injected on the way as the lower level classes are not injectable().
Gut instinct is 2, but feeling kinda iffy on the estimate as I'm not locked on implementation yet.

Bumped estimate to 3 just for the liveshareness of this.

If you are like me and get turned around in circles in our launch code sometimes here is the summary of this launch chain. Currently at the HostJupyterServer the raw kernel can be swapped in manually.


feat: Added me

Hi @andreimilion, could you please update your page.json? The pipeline doesn't allow duplicate pages.


refactor(config): consolidate logger pretty print conditional

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.008%) to 99.288%

Totals

Change from base Build<PHONE_NUMBER>:
-0.008%

Covered Lines:
521

Relevant Lines:
524

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.008%) to 99.288%

Totals

Change from base Build<PHONE_NUMBER>:
-0.008%

Covered Lines:
521

Relevant Lines:
524

💛  - Coveralls


Added check for the return value of the RAND_bytes() function

The return value of the RAND_bytes() function is not checked. At the same time, the function might return 0 without changing the value of the out variable passed to it. This variable will be used later on, so a check for the function's return value has been added.
Perhaps this would be more correct:
  if (RAND_bytes(out, 16) <= 0)
        goto err;

This pull request is ready to merge


BigQuery connections not showing using different project_id

First of all, I am a big fan of this extension. Thank you for all of the hard work you have put in it :)
The bug is:

When I connect to Bigquery using 1 project, it works perfectly
When trying to connect to another project inside SQLTools, the connection is working but doesn't show any data

I have two different projects:

real-estate-analysis
trading

As you may see in the image, I am able to connect to real-estate-analysis Bigquery project using the extension with all available methods: CLI, Service Account and Oauth.
What I have tried so far:

Connected using Service account. Granted Bigquery Data Owner permissions to both services account
Connected using Service account. Granted Bigquery jobs executor permission to both services account
Connected using CLI and configuring the default project via terminal
Connected using OAuth token

In all of the scenarios above, the connection to real-estate-analysis project work but the trading connection doesn't.
I configured also the projects accordingly in the settings.json file and didn't work.
Desktop (please complete the following information):

SQLTools Version: v0.28.1
VS Code Version: 1.87
OS: Mac
Driver:

[x] BigQuery

When I use Bigquery Runner extension, it works:

What should I try? Thank you!

Hmm possible this is a bug.
To clarify, does the "trading" project work if you just use that alone without real-estate-analysis


Pages remount on browser back button

Environment

Operating System: Darwin
Node Version:     v18.20.3
Nuxt Version:     3.14.1592
CLI Version:      3.16.0
Nitro Version:    2.10.4
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      default
Runtime Modules:  -
Build Modules:    -

Reproduction
I created a default project with two pages:

Home
About

Where each one has a link to the other, and a log statement in the onMounted function.
https://github.com/borghol/nuxt-mount-issue
Describe the bug
Running the application (SSR or dev mode) and using the browser's back within the pages causes the page to remount.
Everywhere that I found says that this should not be the case.
The actual full application relies on page state when a browser goes back (i.e. infinite scroll).
Additional context
No response
Logs

There is no property cache in definePageMeta, it's keepalive.
For a direct ascendant of app.vue I think you have to do this <NuxtPage keepalive />, this works.
Yet it seems buggy as you cannot opt out from it.
test.vue
definePageMeta({
  keepalive: false
})

https://stackblitz.com/edit/github-2fqdfenu

defining keepalive: true in nuxt.config.js and opting out with definePageMeta seems to work though
nuxt.config.js
app: {
  keepalive: true
}

https://stackblitz.com/edit/github-2fqdfenu-pg9mmqwd

Amazing, this works so I'm closing the issue.
Is there a reason why keep alive is not the default? It seems weird that a browser back should cause all fetched data to refetch.


Bad visited link color on buttons

I have exactly this bug with foundation <IP_ADDRESS>
https://stackoverflow.com/questions/15955292/whats-the-proper-way-to-override-avisited-with-rails-3-and-foundation-4
Can you fix it, so it does not change link colors on visited buttons?

I want links to use a certain color by default, including a certain :visited color.
Why should that conflict with styling other links as buttons?


Filter NON Kindle Edition Books

The website here: [ https://giveawaylisting.com ] has a checkbox to filter books which is separate from the one to filter Kindle Editions.  I believe the pertinent html code is as follows with the part that should be helpful in bold.   [It was bold till I put it in a code block so you could actually SEE the code.   ;)

Oooo...I like that site.  That would be a perfect data source for this project to loop through.  It would be a much more focused approach than just going page-to-page.
However,not too keen on the shortened URLs though.  For a bot navigating this site as a data source, it could cause a man-in-the-middle problem and steal login info.  Just a thought from the tin foil hat section.  ;-)


sqlite backend

Rewritten to use sqlite backend with CVE 5.0 schema and vers.
Fixes #104
cc: @heubeck @saketjajoo could you kindly help test this with some purls?

Am I searching incorrectly?

@prabhu Am I searching incorrectly?

@prabhu Am I searching incorrectly?

It's a good test but for depscan. Vdb doesn't do aliasing so best to open the index db with a sqlite browser and use that data for searching

@cerrussell @saketjajoo Please update and try with the latest commit that uses apsw instead of sqlite3. This should result in even smaller dbs with improved performance.

@prabhu The counts for the data vs index no longer match.

@prabhu The counts for the data vs index no longer match.

Yes, this is fine. The index is only to know whether there is at least 1 matching CVE.


Embed Iosevka web font

The fonts do not work correctly on Safari. Embedding the web font should help and additionally achieve the same result for users who do not have Iosevka installed.

Resolved by #5


Incompatible Yaml Pipeline files

when importing the pipelines into Azure Dev Ops a non-compatible error message appears :

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

ID: 72579f7e-b040-d514-cf8f-422a66ceb0b0
Version Independent ID: 22d40926-4a12-7387-61b5-04805b1d5c83
Content: Tutorial: Implement CI/CD with GitOps (Flux v2) - Azure Arc
Content Source: articles/azure-arc/kubernetes/tutorial-gitops-flux2-ci-cd.md
Service: azure-arc
Sub-service: azure-arc-kubernetes
GitHub Login: @eedorenko
Microsoft Alias: iefedore

@tshaiman
Thanks for your feedback! We will investigate and update as appropriate.

@tshaiman Thanks for reaching out. I have tested from my end, and I was able to import the pipelines without any problems. I would suggest you to reverify the pipelines again. If you are still facing issues, please raise ticket with Microsoft Tech Support.
As there are no further documentation changes, we will close the issue for now. If there are further questions , please revert and we will be glad to assist you.


Room.getState() and Room.getLiveState() are similar

We should keep only one method, for clarity

Seen with @manuroe , we keep getState();

PR are merged


Minor fixes

Fix NaN, undefined and Infinity being included in dependency lists in granular mode
Remove array utilities
Replace Object.is with simpler alternative (so that it only covers NaN but not -0)
Fixes #44

I merged this but it didn't merge the way I expected it to and didn't update on git. I will close this as the contents are already in but no idea why it didn't credit the merge properly.


[Alert manager] configuration handling at backend

Is this a BUG REPORT or FEATURE REQUEST?:

/kind feature

What happened:
Alert manager exposes swagger APIs to configure alert source configuration.
It involves user configuration (community, usm user), trap source configuration
These configuration need to be done at backend as well
What you expected to happen:
These configuration need to be done at backend
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

NBP version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

/move sim


Not installing the pacakage

The package is not working in windows seven
It is telling that no module found.
It is showing this error.
Please verify that the package.json has a valid "main" entry
at tryPackage (internal/modules/cjs/loader.js:232:19)
at Function.Module._findPath (internal/modules/cjs/loader.js:369:18)
at Module._resolveFilename (internal/modules/cjs/loader.js:614:27)
at Module._resolveFilename (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\electron.asar\common\reset-search-paths.js:41:16)
at Function.get_Module._resolveFilename (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:155387)
at Module.require (file:///C:/Users/Aditya/AppData/Local/atom/app-1.55.0/resources/app.asar/static/index.js:61:43)
at require (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:146720)
at Object. (file:///C:/Users/Aditya/.atom/packages/atom-beautify/src/beautify.coffee:7:25)
at Object. (file:///C:/Users/Aditya/.atom/packages/atom-beautify/src/beautify.coffee:2:1)
at Object. (file:///C:/Users/Aditya/.atom/packages/atom-beautify/src/beautify.coffee:2:1)
at Module.get_Module._compile (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:147404)
at Object.value [as .coffee] (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:150952)
at Module.load (internal/modules/cjs/loader.js:645:32)
at Function.Module._load (internal/modules/cjs/loader.js:560:12)
at Module.require (file:///C:/Users/Aditya/AppData/Local/atom/app-1.55.0/resources/app.asar/static/index.js:72:46)
at require (internal/modules/cjs/helpers.js:16:16)
at customRequire (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:1:736637)
at requireModule (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:14:1122229)
at Package.requireMainModule (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:3509026)
at Package.activateNow (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:3497010)
at C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:14:2607
at Function.simpleDispatch (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:1190181)
at Emitter.emit (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:1191622)
at PackageManager.triggerDeferredActivationHooks (C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:384090)
at C:\Users\Aditya\AppData\Local\atom\app-1.55.0\resources\app\static<embedded>:11:382841

If you still need this and are looking for something to fill the spot that Atom left, I am using Pulsar the successor to Atom...   This package is working except for one deprecated error listed in #2605
If you don't need this anymore, can you please close this out so it's not just sitting there? Thanks


Tmp fix to enable yield in coffee

Fixes #120 till coffee-script update in Atom

Resolved by #127


⚠ Bofrost.lu has degraded performance

In 47f83be, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1031 ms

Resolved: Bofrost.lu performance has improved in ea98daa after 6 minutes.


fix: correct policy descriptions

what

Fix IAM policy descriptions

why

Descriptions were reversed

Thanks @streamich for the contribution! We welcome you to join our slack community: https://slack.cloudposse.com/


Loading BOM data into ram

Hello,
I am trying to train this model on Australia's BOM Radar Data, however, I am having trouble loading the data into memory.
I have 1 year's worth of data in netCDF4 format at time steps of 5 minutes. Each time step is a seperate NC file. The file structure to access the precipitation field at 01/01/2022 at 12:30pm would be: BOM Rain Rate Data 2022 (fodler) > 20220101 (folder) > 20220101_123000.nc (the precipitation field is stored as an array of int64 values in mm/h under a variable called 'rain_rate' in the netCDF file). I have tried the netCDF4 and xarray libraries for python and recieve an OOM error.
The problem is if I was to load the all available 2022 data (~300 days), it would require approximately 180 GB of ram, which I do not have. The netCDF must compress the data as the size of 2022 data on disk is ~5 GB.
How would I go about efficiently loading all this data and passing it into the DGMR?
Thanks for your help.

Hey, sorry for the delay, I just missed this issue. I wouldn't load it all into ram at once. For training, we lazily load the data we need from either the UK Nimrod dataset or US MRMS, so only have the small examples in memory at any given time. We tend to use Zarr, and xarray, which work fairly well for doing that, but yeah, not loading it all into memory at once.

@all-contributors please add @primeoc  for question


Add undocumented functionality in the XML

If you specify rows="5" for a text input field, it is equivalent to a multiline="5" attribute. http://opendatakit.org/help/form-design/examples/#string_prompts
You can customize button text in 3rd party app launching prompts via itext alternate names http://opendatakit.org/help/form-design/examples/#string_3rd_party
You can specify an accuracyThreshold attribute on a geopoint prompt. This sets the auto-accept threshold for the geopoint capture.
You can also specify autoplay="audio" or autoplay="video" to automatically play audio or video prompts when the question is displayed http://opendatakit.org/help/form-design/examples/#presentation

These can now all be added with instance::, body:: or bind::. Is that sufficient? I would tend to say it is and that XLSForm/xlsform.github.io#20 can be reopened for improving the documentation and highlighting these specific examples.
Alternately, we could make use of the parameters column. This is somewhat more convenient for users but would require more (tedious) code.