Equivocation handling during a round

Jira task id
PRE-463 (or for another task in future maybe)

Description of the Change
Changed echiovation hangling at push vote into VoteTracker

Benefits
Detect equivocation during round

Possible Drawbacks
Possible it can be disaccording to spec, and needs experiment

No actual after PR #525 was merged


Error in call to target 'sam2.sam2_video_predictor.SAM2VideoPredictor'

Hi,
I followed the instructions to install the plugin, then I got several errors.
The first one was when I tried to open the plugin in Napari.
I got : OMP: Error #15: Initializing libomp140.x86_64.dll, but found libiomp5md.dll already initialized, but I managed to fix it following this link  and by adding
import os os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" in the main.py of napari.
Then I tried to open the Brain3D image from the sample images in napari, but I got the following error when I try to Initialize.
InstantiationException: Error in call to target 'sam2.sam2_video_predictor.SAM2VideoPredictor': TypeError("SAM2Base.__init__() missing 3 required positional arguments: 'image_encoder', 'memory_attention', and 'memory_encoder'") full_key: model
I dont really know how to fix this. Thank you very much !

Hi @rdemets ,
Were you able to install sam 2 without any issue from here ?  (https://github.com/facebookresearch/segment-anything-2.git)
Also,
What is your python, GPU,  pytorch  and cuda versions ?
From their website, the model needs minimum python>=3.10,  torch>=2.3.1 and torchvision>=0.18.1.
Currently, the encoding only supports 8 bit images. So napari Brain 3d might not be the best. Try converting it into 8 bit and then use for segmentation. I am planning to have this conversion take place inside the plugin for the next version release.
Thanks !

Hi @rdemets,
Thanks for raising the issue !
Looks like facebookresearch/sam2 have a new release in their repo. They now have sam 2.1 models and code.
I am able to reproduce your issue with the new sam2 code.
I think the new code is not working with the old models.
The current napari plugin only supports the previous version of this repo.  I will update the plugin soon.
As a workaround, please install sam 2 code from a previous date like below,
git clone https://github.com/facebookresearch/segment-anything-2.git
cd segment-anything-2
git rev-list -n 1 --before="30 days ago" HEAD                            (---- use any commits before the sam 2.1 commit in their repo)
git checkout <commit_hash>
pip install -e .

The model currently supports only 8 bit embeddings. So napari brain 3d might not be the best. Try converting it into 8 bit stack and then test the plugin. I will update the plugin soon with sam 2.1 and 16 ,32 bit supports.
Thanks !


#1285 refactor:API errors not localized

Picked up the left over work done in the previous PR raised by @Musyonchez

@deepakprabhakara Hey Deepak, for some reason I am not able to add you as a reviewer in the PR. Please do take a look when you have bandwidth.


Add lr_warmup_steps, max_steps values validation

Fix #1393

Certainly! Here's a detailed Pull Request (PR) description for adding validation for lr_warmup_steps and max_steps, while referencing the issue #1393 and including the contributor details.
# Pull Request #1460 - Add `lr_warmup_steps` and `max_steps` values validation

## Summary

This PR introduces validation for `lr_warmup_steps` and `max_steps` values to address issue #1393. It ensures that these parameters are within acceptable ranges to prevent errors during execution.

---

## Changes

### Files Modified:
- `main`

### Contributor:
- **shenxiangzhuang** (contributed 9 hours ago)

#### Note:
This PR aims to fix the specific issue where `T_max` can be zero during certain edge cases, which previously caused execution errors.

## Description:

1. **Validation for `lr_warmup_steps` and `max_steps`:**
   - Added checks to ensure `lr_warmup_steps` and `max_steps` are set to positive integers.
   - These validations ensure that both parameters are within an acceptable range, preventing runtime errors.

2. **Issue Fix:**
   - This PR addresses and fixes issue #1393 by ensuring that `T_max` is never zero, thus eliminating the edge case that caused failures.

---

### Example Code Change:

Here's an example of the validation logic added for `lr_warmup_steps` and `max_steps`:

```python
def validate_steps(lr_warmup_steps, max_steps):
    if lr_warmup_steps <= 0:
        raise ValueError("lr_warmup_steps must be a positive integer.")
    if max_steps <= 0:
        raise ValueError("max_steps must be a positive integer.")
    if max_steps <= lr_warmup_steps:
        raise ValueError("max_steps must be greater than lr_warmup_steps.")

Integration in the main workflow:
class TrainingConfig:
    def __init__(self, lr_warmup_steps, max_steps):
        validate_steps(lr_warmup_steps, max_steps)
        self.lr_warmup_steps = lr_warmup_steps
        self.max_steps = max_steps

# Example initialization
config = TrainingConfig(lr_warmup_steps=500, max_steps=1000)

Testing Instructions:

Run Unit Tests:

Ensure that the unit tests cover edge cases where lr_warmup_steps and max_steps might be zero or negative.

Parameter Validation:

Test scenarios where lr_warmup_steps is greater than max_steps and vice versa to ensure proper error messages are raised.

Check Issue Resolution:

Confirm that the issue #1393, where T_max could be zero, is resolved through these validations.

Notes:

The validation for these parameters helps ensure that the training configuration is robust and prevents invalid setups that would cause execution failures.

Contributors:

shenxiangzhuang: For implementing the validation and fixing the related issue #1393.

Approval:

Merged by: Lightning-Al

End of PR

This PR description includes all the necessary information for reviewers to understand the purpose of the changes, how they address the referenced issue, and how to test them. It also credits the contributor for their efforts.

Thanks for contributing! This looks good to me overall. Let me take care of the tests.

Actually, the tests are failing because in the README test, I am using
litgpt finetune_lora" checkpoint_dir \
--train.max_steps 1" \
...

With this PR, we will not be able to run quick test runs without also having to specify the warm-up fraction via an appropriate value (the current default is 100).
I'd say maybe this should not be an error but perhaps a warning instead. What do you think @awaelchli ?

I think the suggestion for a warning makes sense.

Thanks again for the contribution @shenxiangzhuang, these user experience improvements are well appreciated!


Quick Fix doesn't work via keyboard shortcut

When mousing over code with a code analyzer issue, there's a dialog under the message that offers to View Problem or Quick Fix ...
Clicking on Quick Fix gives a menu that lets me choose to fix or ignore the issue. That's good.
I expected the keyboard shortcut ("Command ." on Mac) do the same thing, but instead it just shows a tooltip saying "No code actions available"

Hi Michelle,
When using the keyboard shortcut for Quick Fix, VS Code checks for any code analyzer issues next to your cursor. If the cursor is not next to a code analyzer info/warning/error, it should report the "No code actions available". Can you confirm that this is the behavior you are seeing?

Thanks. That's the behavior I'm seeing. I didn't realize VS code worked this way.
Here's what I was doing when I created this issue: I leave my cursor where it is and put my mouse over the squiggle to see the message. Then I try using the keyboard shortcut to fix the issue or see the issue.

Closing this issue, as this is VS Code's inherent behavior


Problem with fillRoundedRect and generateTexture function.

Version

Phaser Version: 3.11

Operating system: Windows 10

Browser: Chrome 68.0.3440.106

Description
It's problem with generateTexture function. I use this for generaеe my textures, it's ok when I draw rounded rect in my Graphics object, but it's wrong (the image is distorted) when I generated texture and use it on my Sprite object.
Example Test Code
class Player extends Phaser.GameObjects.Sprite {
    constructor(scene, x, y) {
        super(scene, x, y, 'logo2');
    }
}
class Test extends Phaser.Scene {
    constructor() {
        super({ket: 'Test'})

        this.graf;
        this.text;
    }

    preload() {
        this.graf = new Phaser.GameObjects.Graphics(this, {x: 10, y: 10});
        this.graf.fillStyle(0x1cba76);
        this.graf.lineStyle(2, 0xffffff);
        this.graf.fillRoundedRect(0, 15, 50, 50);
        this.graf.generateTexture('logo2', 50, 65);
        this.children.add(this.graf)
    }

    create() {
        let play = new Player(this, 100, 50);
        this.children.add(play)
    }
}

Additional Information
Photo

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Thank you for spending time reporting this issue. However, we've already fixed this in the master branch of Phaser and it will be part of the next official release. You can track what's already been fixed by searching closed issues, or by looking at the Change Log.


There is no hovering effect in navigation bar[FEATURE REQUEST]

Description
when we go into the motivation.html and into gandhi slokas and click on learn more then in the new tab in the navigation bar we are not able to see the hovering effect in the navigation bar
Is your feature request related to a problem? Please describe.
A clear and concise description of the problem or limitation that the requested feature would address.

Describe the solution you'd like
A clear and concise description of the feature or enhancement you would like to see implemented.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional Information
Context
Provide any additional context or information that helps explain the feature request.
Potential Implementation (optional)
If you have any ideas or suggestions on how the feature could be implemented, please share them here.
Screenshots or Mockups (optional)
If applicable, include any screenshots, mockups, or visual representations of the requested feature.
Priority (optional)
Please indicate the priority level of this feature request (e.g., High, Medium, Low).
Additional Notes (optional)
Add any other notes or comments about the feature request here.

please assign this issue to me

@ankitjt can i please work on this issue

@akshitagupta15june can i please work on this issue


Error Disregard

Hey @ryanchesler :wave:, i saw you are interested to use docTR models with Onnxruntime / Openvino :)
Currently all models can be exported to Onnx (some TF models needs a fixed batch size) up to the logits (only mobilenet in TF does not work will be fixed after 0.5.2 release)
What we have to do is building an standalone project build which excludes TF and PT then we have to build a pipe only for onnx similar to the existing one (models needs something like a config file, that we can decide which PostProcessor to use / vocab , etc.) the currently PostProcessors implementations should be reusable ( i think it is not possible to integrate the post processing in the onnx model - a lot of opencv, shapely, ..)
If you are interessted to work on this a first PoC would be super useful where we can step into :) @frgfm


7782 user profile eliminate extra email space

For
#7782
Use HTML and CSS to get rid of the extra space. Seems that this was an issue because p is a block element. The divs allow us to style them exactly as we'd like so offer more flexibility for this.

Seems good to me, I'll let @nlhkabu review as well. Could you include a screenshot?

Awesome! Thanks @di. Here are the screenshots:
Logged Out

Logged In

LGTM!

Thank you @JohnHillegass! :tada:


[Feature] Prepare for upcoming changes on RTD

The following information was sent on behalf of RTD, which may or may not require action:
Read the Docs used to pre-install common scientific Python packages like scipy, numpy, pandas, matplotlib and others at system level to speed up the build process. However, with all the work done in the Python ecosystem and the introduction of "wheels", these packages are a lot easier to install via pip install and these pre-installed packages are not required anymore. If you have Apt package dependencies, they can be installed with build.apt_packages.
With the introduction of our new "Ubuntu 20.04" and "Ubuntu 22.04" Docker images, we stopped pre-installing these extra Python packages and we encouraged users to install and pin all their dependencies using a requirements.txt file. We have already stopped supporting "use system packages" on these newer images.
We are removing the "use system packages" feature on August 29th. Make sure you are installing all the required dependecies to build your project's documentation using a requirements.txt file and specifying it in your .readthedocs.yaml.
Here you have an example of the section required on the .readthedocs.yaml configuration file:
python:
  install:
    - requirements: docs/requirements.txt

The content of docs/requirements.txt would be similar to:
scipy==1.11.1
numpy==1.25.2
pandas==2.0.3
matplotlib==3.7.2

We are sending you this email because you are a maintainer of the following projects that are affected by this removal. Either using "Use system package" checkbox in the Admin UI, or the config key python.sytem_packages or python.use_system_site_packages in your .readthedocs.yaml file:

I checked the situation for Elephant and it seems that there is no action required from our side.
Here is why: Elephants readthedocs.yml contains a setup for a conda env with:
conda:
  environment: requirements/environment-docs.yml

In environment-docs.yml the following dependencies are defined:
dependencies:

python>=3.8

mpi4py

numpy>=1.19.5

scipy

tqdm

pandas

scikit-learn

statsmodels

jinja2

pip:

neo>=0.10.0
viziphant

matplotlib  is a depency of viziphant.
Lets check again after August 29th.


Enhancement: Validation & linting commands should integrate with the VSCode "problems" panel

At the moment, when I perform OpenAPI validation or linting against a YAML document, errors are shown in the pop-up dialog in the bottom-right of VSCode. These pop-up notifications should be reserved for important notifications, not general use of the editor.
Instead of displaying errors as pop-ups, the errors / warnings from the OpenAPI extension should be shown in the Problems panel in VSCode.
As an example, see the screenshot below, which shows "problems" with a couple of Python files.

Cheers,
Trevor Sullivan

See https://stackoverflow.com/questions/38288511/how-can-i-use-problems-panel-in-my-vscode-extension

Thanks for prompting this. v1.2.0 has just been released with this functionality.


Why we need both kms and key manager in the beta?

In the agent framework beta version, why we need both kms with keystore and the key manager with keystore?

A KMS is a specific implementation of an AbstractKeyManagementSystem. This could be a system that relies on mnemonic key derivation or one that wraps a WebKMS API, etc, to create and manage keys.
An agent can be configured with multiple of these systems simultaneously.
The key manager is a plugin that wraps multiple KMSs behind a group of methods that can be called directly by the client app or by other plugins to use the capabilities of the particular KMS that implements that capability.
An agent can have only one of these Key Manager plugins setup.
This particular way of doing things is possibly going to change in future releases, but the core principle that must remain is that multiple key providers must be usable in the same agent and they must be composable and interchangeable.
If some code is calling agent.keyManagerSignJWT(...) for example, they should be able to switch the key provider without changing that code.
I hope this answers your question.
I made some assumptions about which pieces of code you are referring to. Please reopen if I didn't hit the spot.


scripts: edtlib/extract_dts_includes.py: Speed up 2x+ with yaml.CLoader

Use the LibYAML-based yaml.CLoader if available instead of yaml.Loader,
which is written in Python and slow. See
https://pyyaml.org/wiki/PyYAMLDocumentation.
This speeds up gen_defines.py from 0.2s to 0.07s on my system, for
-DBOARD=hifive1. It should also make scripts/kconfig/kconfig.py faster,
because it indirectly uses edtlib via
scripts/kconfig/kconfigfunctions.py.
yaml.CLoader seems to be available out of the box when installing with
pip on Ubuntu at least.
Helps with https://github.com/zephyrproject-rtos/zephyr/issues/20104.

should we add yaml.CLoader to scripts/requirements.txt ?

It's not a separate package. You just have to hope that whoever packaged PyYAML on your platform enabled it. Seems it's included in the PyPI package at least (the thing you get via pip), so if we're lucky it'll always be available.

I wonder if libyaml-dev (as a distro package) or the like might need to be installed though for it to work when you install via pip though. It might be compiling the C extension locally and checking for it.
Would be interesting to see if you can do
import yaml

yaml.CLoader

if you pip3 install PyYAML on a system that doesn't have it.

Think libyaml might always be installed in practice on Ubuntu at least.
Just discovered that sudo apt remove python3-yaml removes a bunch of core packages btw...


WIP: Experimental Sidebar V2

I had to remove the Setup Cloud Test Server label because we need to deprecate the cluster the installation is running. Reapplied successfully.

Closing to resubmit against master so that it can be reviewed without the spam from mm-cloud-bot


Drop unreliable test

This check was parse order dependent. It usually worked, but not always.
Instead, the PR at https://github.com/puppetlabs/puppetlabs-training-bootstrap/pull/522
creates the directory during classroom setup.
IMPORTANT: This should not be merged until that PR is merged -and-
released by at least a week.
Fixes #TRAINVM-201

This should be ready to merge


Question about the retarget logic

Thanks for your great work. I have some question about the retarget implement,
where is the code for finger tip retarget logic,  how to retarget wrist position between robot and real person?
Thanks

hi, you can find our fingertip IK script here. We separate the retargeting of the wrist and fingers. We first perform end-effector position control to let robot reach the palm pose captured from human data (wrist camera frame), and then we execute fingertip IK within the wrist frame


tests: remove unused testLogger

This removes testLogger{} and its functions. It is unused today, and it appears to have been unused since its introduction in 8/2019.
@dnwe, am I missing anything here?

@alrs thanks :) this was just remnants of something I'd find useful whilst debugging a goroutine leak


Redundant Self-External Call

NFH-01C: Redundant Self-External Call

Type
Severity
Location

Gas Optimization
Informational
NFTHolderCondition.sol:L107, L117

Description:
The this.fulfill instruction performs a call to the fulfill function as if it was performed by an external party. This leads to the msg.sender being equivalent to the contract address.
Example:
function fulfill(
    bytes32 _agreementId,
    bytes32 _did,
    address _holderAddress,
    uint256 _amount
)
    external
    returns (ConditionStoreLibrary.ConditionState)
{
    return this.fulfill(_agreementId, _did, _holderAddress, _amount, address(nftRegistry));
}

function fulfill(
    bytes32 _agreementId,
    bytes32 _did,
    address _holderAddress,
    uint256 _amount,
    address _contractAddress
)
    external
    override
    returns (ConditionStoreLibrary.ConditionState)
{

Recommendation:
We advise the fulfill function to be declared as public (or internal according to the other exhibit of the report) as it currently utilizes more gas than necessary for no reason.

fixed with #145


fsdp bf16 enable autocast

What does this PR do?

Parity with https://github.com/huggingface/transformers/pull/21847

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


az login failed with error  init() got an unexpected keyword argument 'user_agent'

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az login
Errors:
The command failed with an unexpected error. Here is the traceback:
__init__() got an unexpected keyword argument 'user_agent'
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/commands/__init__.py", line 657, in execute
    raise ex
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/commands/__init__.py", line 720, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/commands/__init__.py", line 691, in _run_job
    result = cmd_copy(params)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/commands/__init__.py", line 328, in __call__
    return self.handler(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/command_modules/profile/custom.py", line 161, in login
    use_cert_sn_issuer=use_cert_sn_issuer)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/_profile.py", line 209, in find_subscriptions_on_login
    tenant, self._ad_resource_uri, auth_resource=auth_resource)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/_profile.py", line 941, in find_through_interactive_flow
    result = self._find_using_common_tenant(token_entry[_ACCESS_TOKEN], resource)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/_profile.py", line 973, in _find_using_common_tenant
    client = self._arm_client_factory(token_credential)
  File "/usr/local/lib/python3.6/dist-packages/azure/cli/core/_profile.py", line 892, in create_arm_client_factory
    base_url=self.cli_ctx.cloud.endpoints.resource_manager, **client_kwargs)
TypeError: __init__() got an unexpected keyword argument 'user_agent'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az login

Expected Behavior
Environment Summary
Linux-5.0.0-1018-azure-x86_64-with-Ubuntu-18.04-bionic, Ubuntu 18.04.6 LTS
Python 3.6.9
Installer: PIP

azure-cli 2.29.1

Additional Context

Thanks JiaShuo, the issue is fixed by re-install azure-cli in formal suggest way.


docker don

with the new docker 1.4x docker don't uses the term variable right nsenter as also docker exec results now often with new containers when i execute tty applications like nano in can't find right terminal error.
i can work around this with example auto do on every interactiv container session export TERM=vt100 or i add ENV TERM=vt100 in the image but anyway this wasn't so befor befor it always worked!

This is a duplicate of #9299 - in which its noted that to get a terminal setting you need to run with -t
closing as dup


Add Cargo.lock to the repo

$ cargo run --release
error: multiple packages link to native library `SDL2`, but a native library can be linked only once

package `sdl2-sys v0.30.0`
    ... which is depended on by `sdl2 v0.30.0`
    ... which is depended on by `gfx_window_sdl v0.7.0`
    ... which is depended on by `ggez v0.4.0`
    ... which is depended on by `solitaire v0.2.0 (file:///Users/goosedb/Documents/reps/solitaire)`
links to native library `SDL2`

package `sdl2-sys v0.31.0`
    ... which is depended on by `sdl2 v0.31.0`
    ... which is depended on by `solitaire v0.2.0 (file:///Users/goosedb/Documents/reps/solitaire)`
also links to native library `SDL2`

cargo's FAQ: https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries

And it actually might be better to use more specific versions for all the deps in Cargo.toml:
env_logger = "*"
log = "*"
rand = "*"
sdl2 = "*"

->
env_logger = "0.5"
log = "0.4"
rand = "0.4"
sdl2 = "0.30"

Thanks for the reminder... will do that.


Designing Frontend of login/Signin page

I can design Login/Signin page according to your website UI and theme . Below is the sample

Please assign this issue to me under GSSoc

not required at the moment


[2.x] ClassDefinitionFixer - issues with anonymous classes

Input:
new class($this->prop) {
};

Expected: no change
Result:
new class($this -> prop)
{
};

spaces around -> are wrong
opening brace is wrong -> this is fixed by BracesFixer, but IMO the ClassDefinitionFixer should no put the opening brace to a newline for anonymous classes

php-cs-fixer --version ?

PHP CS Fixer version 2.0.0-DEV by Fabien Potencier and Dariusz Ruminski
current master

thanks !
could you work on a fix please ? :)

is this also wrong on 1.x line?

arrow fixing is wrong on 1.13 as well, braces seem ok

#2303 has been merged.
is there sth left to be done here ?

https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/2303/files#r88790767


Improve documentation about config

I've made a huge update with sentry, updating from 0.8.* to 3.0.*.
Now I received error message for every Symfony\Component\Security\Core\Exception\AccessDeniedException.
I'd like to ignore this options. I found some post talking about an excluded_exceptions but I found no documentation about it...
The https://github.com/getsentry/sentry-symfony#step-3-configure-the-sdk section should be updated with all the available option and how to use them.

We already addressed this in #207 and fixed it with #208. We have a dedicated upgrade document, and all the additional options come from the base SDK, that has its own documentation: https://docs.sentry.io/error-reporting/configuration/?platform=php

A new user won't look at the upgrade document to know the config option. You should not consider this as a documentation.
I think it will still be a good improvement to give a full example of config in the README, like this
sentry:
    dsn: ...
    options:
        ...
        excluded_exception:
            - Symfony\Component\Security\Core\Exception\AccessDeniedException

The sentry documentation https://docs.sentry.io/error-reporting/configuration/?platform=php doesn't even talk about the excluded_exception option.

My mistake, that page is about the options available across all SDK in all languages, due to the Unified API approach.
There are a few PHP specific ones, documented in the PHP docs: https://docs.sentry.io/platforms/php/#php-specific-options

I just had the same issue when was setting up the bundle.

I used the command bin/console config:dump-reference sentry to know more about available options but that is far from ideal from my POV.

What would you suggest as a fix for this issue? Would adding these two links to the readme be enough? PRs are welcome.

@Jean85 In the step https://github.com/getsentry/sentry-symfony#step-3-configure-the-sdk
Adding something like
Every options from the sentry documentation can be used:
- https://docs.sentry.io/error-reporting/configuration/?platform=php
- https://docs.sentry.io/platforms/php/#php-specific-options

Would be great indeed
But it's always better with an example:
sentry:
    dsn<EMAIL_ADDRESS>    environment: %kernel.environment%
    project_root: %kernel.project_dir%
    excluded_exceptions:
        - PersonalIgnoredException

What would you suggest as a fix for this issue? Would adding these two links to the readme be enough? PRs are welcome.

Agree with @VincentLanglet and it is good to give concrete use case, full config example, document every single option the bundle gives. All of these is not trivial when you want to get started as quickly as possible.

I would prefer not to document all of them there since it's too easy to go out of sync with the base SDK. But a smallish concrete example and the two links are IMHO really good.

I would prefer not to document all of them there since it's too easy to go out of sync with the base SDK. But a smallish concrete example and the two links are IMHO really good.

I think a smallish concrete example is enough.

I would prefer not to document all of them there since it's too easy to go out of sync with the base SDK. But a smallish concrete example and the two links are IMHO really good.

I am not saying it's good to document them in detail. I am saying it should be indicated that they exist and what type of data is expected and then reference to the SDK documentation.

I just so the new doc at https://docs.sentry.io/platforms/php/symfony/ -> looks great.
It is confusing to find information about the bundle in both README.md and https://docs.sentry.io/platforms/php/symfony/.
Perhaps the README.md should link to https://docs.sentry.io/platforms/php/symfony/? Or the other way?

It's probably best to link to the docs, since a link to the base SDK options would be good too.

#228 improved the README by adding links to both docs.

Still confusing that the config is described both here and in https://docs.sentry.io/platforms/php/symfony/ IMHO


InaccessibleTensorError in custom Model using add_loss and build

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
MacOSX 10.15.5
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
No
TensorFlow installed from (source or binary):
binary
TensorFlow version (use command below):
v2.2.0-rc4-8-g2b96f3662b 2.2.0
Python version:
3.7.6
Bazel version (if compiling from source):
N/A
GCC/Compiler version (if compiling from source):
N/A
CUDA/cuDNN version:
N/A
GPU model and memory:
N/A

Describe the current behavior
When running the following code, which uses add_loss() and creates a layer in the build() method, I get an InaccessibleTensorError:
import tensorflow as tf
from tensorflow import keras

class MyModel(keras.models.Model):
    def build(self, batch_input_shape):
        self.output_layer = keras.layers.Dense(1)
        super().build(batch_input_shape)

    def call(self, inputs, training=None):
        self.add_loss(1.0)
        return self.output_layer(inputs)

model = MyModel()
model.compile(loss="mse", optimizer="nadam")

X = tf.random.uniform((100, 10))
y = tf.random.uniform((100, 1))
history = model.fit(X, y, epochs=2)

Describe the expected behavior
I expect the model to be trained normally, without error.
Standalone code to reproduce the issue
See the code above. You can run it in this colab: https://colab.research.google.com/drive/1c_NBNJ2vKt412WSg1HiPUNYjVmf1--YL
Other info / logs
Here is the full stacktrace:
InaccessibleTensorError: in user code:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:571 train_function  *
        outputs = self.distribute_strategy.run(
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run  **
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2649 _call_for_each_replica
        return fn(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:533 train_step  **
        y, y_pred, sample_weight, regularization_losses=self.losses)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:231 __call__
        reg_loss = math_ops.add_n(regularization_losses)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:180 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3239 add_n
        return gen_math_ops.add_n(inputs, name=name)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/gen_math_ops.py:420 add_n
        "AddN", inputs=inputs, name=name)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:744 _apply_op_helper
        attrs=attr_protos, op_def=op_def)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py:591 _create_op_internal
        inp = self.capture(inp)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py:641 capture
        % (tensor, tensor.graph, self))

    InaccessibleTensorError: The tensor 'Tensor("Const:0", shape=(), dtype=float32)' cannot be accessed here: it is defined in another function or code block. Use return values, explicit Python locals or TensorFlow collections to access it. Defined in: FuncGraph(name=build_graph, id=139933898535488); accessed from: FuncGraph(name=train_function, id=139933898618920).

After further testing, it seems that you cannot use add_loss() in a custom model where the build() method is defined:
class MyModel2(keras.models.Model):
    def build(self, batch_input_shape):
        super().build(batch_input_shape)

    def call(self, inputs, training=None):
        self.add_loss(1.0)
        return tf.reduce_mean(inputs)

model2 = MyModel2()
model2.compile(loss="mse", optimizer="nadam")
history = model2.fit(X, y, epochs=2)

If you comment out the build() method, everything works fine, even though the build() method does nothing more than call super().build(). That's really odd...

I am able to replicate the issue faced, please find the gist here

Is there any progress on this issue?
Or a suggested workaround in the meantime?
Thanks in advance!

Thanks for the issue!
Constant Tensors can't be used for losses in Functional Models, because the graph used to build the model is different than the graph used to execute it, and the building graph will capture the constant. Instead if you need a constant loss, you can use a callable loss:
import tensorflow as tf
from tensorflow import keras

class MyModel(keras.models.Model):

    def build(self, batch_input_shape):
        self.output_layer = keras.layers.Dense(1)
        super().build(batch_input_shape)

    def call(self, inputs, training=None):
        self.add_loss(lambda: 1.0)
        return self.output_layer(inputs)

model = MyModel()
model.compile(loss="mse", optimizer="nadam")

X = tf.random.uniform((100, 10))
y = tf.random.uniform((100, 1))
history = model.fit(X, y, epochs=2)

The issue is not with constant but with graph management. This code still is not working:
import tensorflow as tf
from tensorflow import keras

class MyModel(keras.models.Model):

    def build(self, batch_input_shape):
        self.output_layer = keras.layers.Dense(1)
        super().build(batch_input_shape)

    def call(self, inputs, training=None):
        self.add_loss(tf.reduce_mean(self.output_layer(inputs)))
        return self.output_layer(inputs)

model = MyModel()
model.compile(loss="mse", optimizer="nadam")

X = tf.random.uniform((100, 10))
y = tf.random.uniform((100, 1))
history = model.fit(X, y, epochs=2)

But when line 2709 in keras\engine\base_layer.py (with tf_utils.maybe_init_scope(self):) is commented no errors are raised.

The issue is not with constant but with graph management. This code still is not working:
import tensorflow as tf
from tensorflow import keras

class MyModel(keras.models.Model):

    def build(self, batch_input_shape):
        self.output_layer = keras.layers.Dense(1)
        super().build(batch_input_shape)

    def call(self, inputs, training=None):
        self.add_loss(tf.reduce_mean(self.output_layer(inputs)))
        return self.output_layer(inputs)

model = MyModel()
model.compile(loss="mse", optimizer="nadam")

X = tf.random.uniform((100, 10))
y = tf.random.uniform((100, 1))
history = model.fit(X, y, epochs=2)

But when line 2709 in keras\engine\base_layer.py (with tf_utils.maybe_init_scope(self):) is commented no errors are raised.


How to clone a model in rust?

in c++
auto model = torch::jit::load("your_model.pt");
input = input.clone();
How to do it in rust?

I think you could do the same as with any non-cloneable object in rust, i.e. add a Rc or Arc layer for ref counting - nothing specific to tch. Maybe I'm missing something here?

let model = tch::CModule::load_on_device(model_path, device).unwrap();
let model: Rc<&tch::CModule> = Rc::new(&model);
let model2 = model.clone();
Rc  will only clone a pointer to the same allocation.
My problem is that due to unknown reason, whenever I called model.forward()  repeatedly using the same inputs, it will  produce different results. Therefore, I need a fast way to clone the model before each forward() call.  In c++, model.clone() will copy the content. How about in rust?

Below is extract from cloneable.h in "torch/csrc/api/include/nn/cloneable.h"
But I don't know how to translate it to rust.
  /// Performs a recursive "deep copy" of theModule`, such that all parameters
/// and submodules in the cloned module are different from those in the
/// original module.
std::shared_ptr<Module> clone(
  const optional<Device>& device = nullopt) const override {
NoGradGuard no_grad;

const auto& self = static_cast<const Derived&>(*this);
auto copy = std::make_shared<Derived>(self);
copy->parameters_.clear();
copy->buffers_.clear();
copy->children_.clear();
copy->reset();
TORCH_CHECK(
    copy->parameters_.size() == parameters_.size(),
    "The cloned module does not have the same number of "
    "parameters as the original module after calling reset(). "
    "Are you sure you called register_parameter() inside reset() "
    "and not the constructor?");
for (const auto& parameter : named_parameters(/*recurse=*/false)) {
  auto& tensor = *parameter;
  auto data = device && tensor.device() != *device
      ? tensor.to(*device)
      : autograd::Variable(tensor).clone();
  copy->parameters_[parameter.key()].set_data(data);
}
TORCH_CHECK(
    copy->buffers_.size() == buffers_.size(),
    "The cloned module does not have the same number of "
    "buffers as the original module after calling reset(). "
    "Are you sure you called register_buffer() inside reset() "
    "and not the constructor?");
for (const auto& buffer : named_buffers(/*recurse=*/false)) {
  auto& tensor = *buffer;
  auto data = device && tensor.device() != *device
      ? tensor.to(*device)
      : autograd::Variable(tensor).clone();
  copy->buffers_[buffer.key()].set_data(data);
}
TORCH_CHECK(
    copy->children_.size() == children_.size(),
    "The cloned module does not have the same number of "
    "child modules as the original module after calling reset(). "
    "Are you sure you called register_module() inside reset() "
    "and not the constructor?");
for (const auto& child : children_) {
  copy->children_[child.key()]->clone_(*child.value(), device);
}
return copy;

}`

Below is extract from cloneable.h in "torch/csrc/api/include/nn/cloneable.h" But I don't know how to translate it to rust.
 /// Performs a recursive "deep copy" of theModule`, such that all parameters /// and submodules in the cloned module are different from those in the /// original module.
std::shared_ptr<Module> clone(
  const optional<Device>& device = nullopt) const override {
NoGradGuard no_grad;

const auto& self = static_cast<const Derived&>(*this);
auto copy = std::make_shared<Derived>(self);
copy->parameters_.clear();
copy->buffers_.clear();
copy->children_.clear();
copy->reset();
TORCH_CHECK(
    copy->parameters_.size() == parameters_.size(),
    "The cloned module does not have the same number of "
    "parameters as the original module after calling reset(). "
    "Are you sure you called register_parameter() inside reset() "
    "and not the constructor?");
for (const auto& parameter : named_parameters(/*recurse=*/false)) {
  auto& tensor = *parameter;
  auto data = device && tensor.device() != *device
      ? tensor.to(*device)
      : autograd::Variable(tensor).clone();
  copy->parameters_[parameter.key()].set_data(data);
}
TORCH_CHECK(
    copy->buffers_.size() == buffers_.size(),
    "The cloned module does not have the same number of "
    "buffers as the original module after calling reset(). "
    "Are you sure you called register_buffer() inside reset() "
    "and not the constructor?");
for (const auto& buffer : named_buffers(/*recurse=*/false)) {
  auto& tensor = *buffer;
  auto data = device && tensor.device() != *device
      ? tensor.to(*device)
      : autograd::Variable(tensor).clone();
  copy->buffers_[buffer.key()].set_data(data);
}
TORCH_CHECK(
    copy->children_.size() == children_.size(),
    "The cloned module does not have the same number of "
    "child modules as the original module after calling reset(). "
    "Are you sure you called register_module() inside reset() "
    "and not the constructor?");
for (const auto& child : children_) {
  copy->children_[child.key()]->clone_(*child.value(), device);
}
return copy;

}`

I believe you can do this, if you do not wish to checkpoint the model to disk and then load it again:
fn clone_model_in_memory(
    model_var_store: &VarStore,
) -> Result<(VarStore, impl nn::Module), TchError> {
    let mut buffer = vec![];
    model_var_store.save_to_stream(&mut buffer)?;

    let readable_buffer = Cursor::new(buffer);

    let mut cloned_var_store = VarStore::new(Device::cuda_if_available());
    cloned_var_store.load_from_stream(readable_buffer)?;

    let net = nn::linear(cloned_var_store.root(), 1337, 1337, Default::default());

    Ok((cloned_var_store, net))
}

In my use case, i need to clone a best trained model to a buffer model and save the buffer to disk when conducting early stopping. For correct clone and save, i need to initiate models for BOTH best model and buffer model:
This works:
  // Initiate models
  let vs = nn::VarStore::new(Device::Cpu); // model for training
  let net = Net(&vs.root());

  let mut buffer_vs = nn::VarStore::new(Device::Cpu); // buffer model to clone vs model and save to disk
  let buffer_net =  Net(&buffer_vs.root()); // This line is important to ensure correct saving, otherwise buffer_vs would be empty even without panics after copying

  // Do some training here on net...

  // Clone and save to disk
  buffer_vs.copy(&vs).expect("Failed to copy);
  buffer_vs.save("path/to/save").expect("Failed to save);

I guess this is because .copy method can only copy stuff from a known structure to another, and initiating model with varstore helps to handle the structure to be the same.


Point fasta-to-nexus to /usr/local/bin/seqmagick

Not necessarily the best of the options, but this does actually work pretty well.
I'd prefer us to use something like which to find it, but this solves the immediate problem on master.
Closes #56.

I just verified that /usr/bin/clustalo, /usr/bin/mb, and /usr/bin/seq-gen all do truly live in /usr/bin at the moment, but similar changes will be needed when we switch to multi-stage builds.


timeline_name not updated on change_timeline event

This results in timeline_end() not giving the right timeline after a change timeline event. DialogicNode.timeline_name is only updated in the Dialogic.start() method.
I think it should be possible to update it in DialogicNode.set_current_dialog() or DialogicNode.load_dialog() like this:

        timeline_name = dialog_script['name']

However I'm not super certain.
Also a change like this is somewhat of a continuity break. While I think most users would expect the timeline_end() signal to go with the latest timeline, it would be a change in how it worked. So not sure how to best fix this.

Fixes in #1297

Completed


[Terms of Service] App crashes due to lack of permissions to ToS

At HEAD the Android app currently is unusable since the app cannot access to tos is Firestore based on the deployed rules. See https://github.com/google/ground-platform/issues/786 for more info.

adding this into firestore rules fixes it.
match /config/tos {
allow read: if canAccess(email());
}

Fixed in https://github.com/google/ground-platform/pull/758


Generated code suggestion can't be applied to the file correctly

Testing #6160
Initial code
preserveElements(indexes: number[]): void {
	this.preservedItems.clear();
	for (const index of indexes) {
		if (index >= 0 && index < this.items.length) {
			const item = this.items[index];
			this.preservedItems.add(item);
			if (!item.row) {
				this.insertItemInDOM(index);
			}
			this.updateItemInDOM(item, index);
		}
	}
}

new code
preserveElements(indexes: number[]): void {
	this.preservedItems.clear();
        let updatePreservedElements = false;
	for (const index of indexes) {
		if (index >= 0 && index < this.items.length) {
			const item = this.items[index];
			this.preservedItems.add(item);
			if (!item.row) {
				this.insertItemInDOM(index);
				updatePreservedElements = true;
			}
			this.updateItemInDOM(item, index);
		}
	}

	if (updatePreservedElements) {
            this.rerender();
        }
}

The generated code suggestion
        let updatePreservedElements = false;
        for (const index of indexes) {
            if (index >= 0 && index < this.items.length) {
                const item = this.items[index];
                this.preservedItems.add(item);
                if (!item.row) {
                    this.insertItemInDOM(index);
                    updatePreservedElements = true;
                }
            }
        }

        if (updatePreservedElements) {
            this.rerender();
        }

However when applied to the editor, the file was in a broken state

This has to do with the re-positioning of comments when the file changes.

Here's one of the things that can happen:

User opens a file and makes a comment on a line.
The line position changes because of lines added before the comment. VS Code updates where the decoration is shown, but the line number of the comment in the comment API stays the same.
At this point, everything looks visually correct, but the comment on the extension host no longer matches the line number that's used in the renderer.

In VS Code core, we're going to need to propagate range changes back to the extension.

Making this change could break extensions if they're using the VS Code CommentThread API as their data model. I'll need to discuss at the API sync. @chrmarti  FYI.

Thinking about it some more, I think each extension should handle this. Each extension might have a different idea of what file reversion is original. There is also a bug in VS Code that I'll fix, but otherwise, each extension should maintain a mapping of their comment's location to a location in a text document.

I think it would help extensions if VS Code just moved comments along as lines are added / removed. Are you saying you would need the previous revision to restore the correct position after the window reloads because the updated positions are not stored?

I'm not sure it's possible for VS Code to know where the right position is.

An extension knows that it should have a comment on line 3 based on revision A
Some revisions happen to the file, and now locally we're on revision C.
The extension knows what a revision means to it, and a revision could mean different things to different extensions (git commits, difference from file on disk, changes since the file was opened).
Using this knowledge, when the file is opened in VS Code, the extension can map the position in revision A to the position in revision C. If this is the first time the file has been opened in VS Code with these comments, then VS Code has no understanding of how to map a position in A to a position in C because it doesn't understand what A and C are.

GHPR already does step 4, and presumably other comment providing extensions do the same.
What VS Code core should definitely do is move the comment based on active editing of the file. Ex., there's a comment on line 3 and you edit the file in VS Code and insert 2 lines above that: the comment should move to line 5.


Note: C:\flutter.pub-cache\path\to\go\CloudFirestorePlugin.java uses unchecked or unsafe operations.

Steps to Reproduce

flutter upgrade
flutter pub get
flutter run --debug

Target Platform: Android
Target OS version/browser: Android
Devices: Emulator Pixel 3a (API 29, Android Q)
Logs

Note: C:\flutter\.pub-cache\hosted\pub.dartlang.org\cloud_firestore-0.13.0+1\android\src\main\java\io\flutter\plugins\firebase\cloudfirestore\CloudFirestorePlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Program type already present: io.flutter.BuildConfig
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: io.flutter.BuildConfig
	at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:131)
	at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:118)
	at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102)
	at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:444)
	at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:335)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:39)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:55)
	at org.gradle.workers.internal.DefaultWorkerExecutor$1.call(DefaultWorkerExecutor.java:105)
	at org.gradle.workers.internal.DefaultWorkerExecutor$1.call(DefaultWorkerExecutor.java:99)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
	at com.android.tools.r8.utils.t.a(:55)
	at com.android.tools.r8.D8.run(:11)
	at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:116)
	... 30 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: io.flutter.BuildConfig
	at com.android.tools.r8.utils.Reporter.a(:21)
	at com.android.tools.r8.utils.Reporter.a(:7)
	at com.android.tools.r8.utils.t.a(:36)
	... 32 more

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDexDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
     Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
     Program type already present: io.flutter.BuildConfig
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org

BUILD FAILED in 3m 14s
[!] The shrinker may have failed to optimize the Java bytecode.
    To disable the shrinker, pass the `--no-shrink` flag to this command.
    To learn more, see: https://developer.android.com/studio/build/shrink-code
Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

Flutter analyze

Analyzing bisma_certification...

   info - Name non-constant identifiers using lowerCamelCase -
          certification_repository\lib\src\entities\certification_entity.dart:12:16 - non_constant_identifier_names
   info - Name non-constant identifiers using lowerCamelCase -
          certification_repository\lib\src\entities\certification_entity.dart:22:10 - non_constant_identifier_names
   info - Name non-constant identifiers using lowerCamelCase -
          certification_repository\lib\src\models\certification.dart:13:16 - non_constant_identifier_names
   info - Name non-constant identifiers using lowerCamelCase -
          certification_repository\lib\src\models\certification.dart:23:10 - non_constant_identifier_names
   info - Name non-constant identifiers using lowerCamelCase -
          certification_repository\lib\src\models\certification.dart:34:12 - non_constant_identifier_names
   info - Unused import: 'package:flutter_spinkit/flutter_spinkit.dart' - lib\main.dart:5:8 - unused_import
   info - The declaration '_makePayment' isn't referenced - lib\src\pages\detail_page.dart:477:10 - unused_element
   info - The value of the local variable 'httpClient' isn't used - lib\src\pages\detail_page.dart:478:16 -
          unused_local_variable
   info - The value of the local variable 'datas' isn't used - lib\src\pages\detail_page.dart:511:9 -
          unused_local_variable
   info - Avoid using braces in interpolation when not needed - lib\src\pages\detail_page.dart:560:29 -
          unnecessary_brace_in_string_interps
   info - Unused import: 'package:auto_size_text/auto_size_text.dart' - lib\src\pages\home_content.dart:1:8 -
          unused_import
   info - Unused import: 'package:bisma_certification/src/pages/detail_page.dart' -
          lib\src\pages\home_content.dart:2:8 - unused_import
   info - Unused import: 'package:bisma_certification/src/utils/page_transition.dart' -
          lib\src\pages\home_content.dart:3:8 - unused_import
   info - Unused import: 'package:cached_network_image/cached_network_image.dart' -
          lib\src\pages\home_content.dart:6:8 - unused_import
   info - The value of the local variable 'device' isn't used - lib\src\pages\home_content.dart:17:9 -
          unused_local_variable
   info - The declaration '_logoutProcess' isn't referenced - lib\src\pages\home_page.dart:67:3 - unused_element
   info - The declaration '_buildCarousel' isn't referenced - lib\src\pages\home_page.dart:154:10 - unused_element
   info - The declaration '_initSP' isn't referenced - lib\src\pages\login_page.dart:33:3 - unused_element
   info - The declaration '_getStarted' isn't referenced - lib\src\pages\onboarding\onboarding_page.dart:27:8 -
          unused_element
   info - Unused import: 'package:sticky_headers/sticky_headers.dart' - lib\src\pages\profile_page.dart:4:8 -
          unused_import

20 issues found. (ran in 61.8s)

Flutter doctor

[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18362.10024], locale en-ID)
    • Flutter version 1.12.13+hotfix.5 at C:\flutter
    • Framework revision 27321ebbad (12 days ago), 2019-12-10 18:15:01 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at C:\Users\Richie\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

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

[√] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

• No issues found!

Note
This happen when I just upgrade the flutter. Also:

I use the latest cloud_firestore version (^0.13.0+1).
I use classpath 'com.google.gms:google-services:4.3.3'.

What should I do?

Honestly what I've been tried is:

Downgrading the cloud_firestore multiple times as well as the flutter version.
Every time I downgrade the flutter version, there has to be other issues added up.
Changing the minSdkVersion from 16 to 23 in the build.gradle file android\app level.

Hi @permanar
for what I can see the issue is related to a FlutterFire plugin,
please open the issue in the dedicated github.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
thank you

Hi,
Thanks for replying me and I am really sorry for the late reply.
Anyway thanks for the suggestion given but somehow, I managed to get out of this problem at that day just by running flutter clean command on my project.
I totally forgot to try clean the build, etc.
Thank you so much. Hope this helps someone! :)


Value mapping, Script Collection and Integration adapter artifacts Sync

Hi @engswee ,
Please let us know, will github flash pipeline supports Value mapping, Script collection and Integration adapter syncing into Github and movement to test tenant.
Thanks
Boopathi

Yes, flashpipe v3.0.0 onwards supports Value Mapping, Script Collection and Message Mapping as well.
https://equaliseit.com/go-go-flashpipe-major-version-v3-0-0-release/
Integration Adapter is not supported because the public API released by SAP does not have download functionality.
sync command automatically handles the different types, while update and deploy requires you to specify the artifact-type
You can check out examples in https://github.com/engswee/flashpipe-demo


libprotobuf version mismatch between the one installed as dependency and the one expected by the runtime

LocalAI version:
❯ brew info localai
==> localai: stable 2.24.0 (bottled)

Environment, CPU architecture, OS, and Version:
❯ uname -a
Darwin xxx 24.1.0 Darwin Kernel Version 24.1.0: Thu Oct 10 21:02:27 PDT 2024; root:xnu-11215.41.3~2/RELEASE_X86_64 x86_64

Bug descrption
LocalAI fails to load a model. The log (with debug enabled) reveals the root cause is apparently missing libprotobuf.29.0.0.dylib :
7:10PM INF Trying to load the model 'llama-3.2-1b-instruct:q4_k_m' with the backend '[llama-cpp llama-ggml llama-cpp-fallback silero-vad whisper huggingface]'
7:10PM INF [llama-cpp] Attempting to load
7:10PM INF Loading model 'llama-3.2-1b-instruct:q4_k_m' with backend llama-cpp
7:10PM DBG Loading model in memory from file: /usr/local/Cellar/protobuf/29.1/lib/models/llama-3.2-1b-instruct-q4_k_m.gguf
7:10PM DBG Loading Model llama-3.2-1b-instruct:q4_k_m with gRPC (file: /usr/local/Cellar/protobuf/29.1/lib/models/llama-3.2-1b-instruct-q4_k_m.gguf) (backend: llama-cpp): {backendString:llama-cpp model:llama-3.2-1b-instruct-q4_k_m.gguf modelID:llama-3.2-1b-instruct:q4_k_m assetDir:/tmp/localai/backend_data context:{emptyCtx:{}} gRPCOptions:0xc00012d688 externalBackends:map[] grpcAttempts:20 grpcAttemptsDelay:2 singleActiveBackend:false parallelRequests:true}
7:10PM DBG [llama-cpp-fallback] llama-cpp variant available
7:10PM INF [llama-cpp] attempting to load with AVX2 variant
7:10PM DBG Loading GRPC Process: /tmp/localai/backend_data/backend-assets/grpc/llama-cpp-avx2
7:10PM DBG GRPC Service for llama-3.2-1b-instruct:q4_k_m will be running at: '<IP_ADDRESS>:61927'
7:10PM DBG GRPC Service state dir: /var/folders/xg/22llfm_d22n6my9m8z860yzr0000gn/T/go-processmanager3823746076
7:10PM DBG GRPC Service Started
7:10PM DBG Wait for the service to start up
7:10PM DBG GRPC(llama-3.2-1b-instruct:q4_k_m-<IP_ADDRESS>:61927): stderr dyld[57693]: Library not loaded: /usr/local/opt/protobuf/lib/libprotobuf.29.0.0.dylib
7:10PM DBG GRPC(llama-3.2-1b-instruct:q4_k_m-<IP_ADDRESS>:61927): stderr   Referenced from: <1E15F316-EC9D-3E02-B82E-02FD2882F095> /private/tmp/localai/backend_data/backend-assets/grpc/llama-cpp-avx2
7:10PM DBG GRPC(llama-3.2-1b-instruct:q4_k_m-<IP_ADDRESS>:61927): stderr   Reason: tried: '/usr/local/opt/protobuf/lib/libprotobuf.29.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/protobuf/lib/libprotobuf.29.0.0.dylib' (no such file), '/usr/local/opt/protobuf/lib/libprotobuf.29.0.0.dylib' (no such file), '/tmp/localai/backend_data/backend-assets/lib/libprotobuf.29.0.0.dylib' (no such file), '/usr/local/Cellar/protobuf/29.1/lib/libprotobuf.29.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/protobuf/29.1/lib/libprotobuf.29.0.0.dylib' (no such file), '/usr/local/Cellar/protobuf/29.1/lib/libprotobuf.29.0.0.dylib' (no such file), '/tmp/localai/backend_data/backend-assets/lib/libprotobuf.29.0.0.dylib' (no such file)
7:11PM ERR failed starting/connecting to the gRPC service error="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing: dial tcp <IP_ADDRESS>:61927: connect: connection refused\""
7:11PM DBG GRPC Service NOT ready
7:11PM ERR [llama-cpp] Failed loading model, trying with fallback 'llama-cpp-fallback', error: failed to load model with internal loader: grpc service not ready

I am not sure why LocalAI decided to look for this particular version of libprotobuf. I do have 28.3 and 29.1 installed:
❯ pwd; ls
/usr/local/Cellar/protobuf
28.3 29.1

IMHO 29.1 was installed as a dependency of LocalAI but the runtime looks for 29.0
The workaround to get it to work was
cd /usr/local/Cellar/protobuf/29.1/lib
ln -s libprotobuf.dylib libprotobuf.29.0.0.dylib

BTW, while repeating the steps to post this issue I noticed it saves the model in a models folder relative to where LocalAI was started. Since I run it from /usr/local/Cellar/protobuf/29.1/lib/ where I was creating the symlink, it loaded the model in /usr/local/Cellar/protobuf/29.1/lib/models/llama-3.2-1b-instruct-q4_k_m.gguf
I don't know if this is by design, but having a fixed location is better IMHO. You could perhaps settle for something like <USER_HOME>/.localai/modules for example.


Loss implementation

Hi, Jure Zbontar, great work!
I am trying to re-implement the code. But I just find some inconsistence of the loss implementations (rather than the scale-loss).
In the paper, Eq.1 shows that the redundancy reduction item is computed on the cross-correlation matrix , and in the current implementation in this repo, it is also computed based on the  cross-correlation matrix c.
on_diag = torch.diagonal(c).add_(-1).pow_(2).sum().mul(self.args.scale_loss)
off_diag = off_diagonal(c).pow_(2).sum().mul(self.args.scale_loss)
 loss = on_diag + self.args.lambd * off_diag
But in the pseudocode implementation in Algorithm 1 in the official paper,  it seems that the loss is computed on the c_diff rather than c. Could you please illustrate more about this? Thanks a lot！

Hi Laura,
the psudocode in the paper does in fact show a different way of computing the Barlow Twins loss compared to the method we use in main.py. However, both ways of computing the loss should produce the same result.
Consider the following code snippet:
import torch

def off_diagonal(x):
    n, m = x.shape
    assert n == m
    return x.flatten()[:-1].view(n - 1, n + 1)[:, 1:]

c = torch.rand(3, 3)
lambd = 0.1

# compute loss as in the psuedocode
c_diff = (c - torch.eye(3)).pow(2)
off_diagonal(c_diff).mul_(lambd)
loss = c_diff.sum()
print('from pseudocode:', loss.item())

# compute loss as in main.py
on_diag = torch.diagonal(c).add_(-1).pow_(2).sum()
off_diag = off_diagonal(c).pow_(2).sum()
loss = on_diag + lambd * off_diag
print('from main.py:', loss.item())

Thanks for your quick reponse! I've tried, they produce the same results. Thanks a lot!


PDF rendering - some tests and an example

Hi
I've added some rough tests for PDF text rendering; these are not very complete but are a step forward.
I've also added an example showing usage of the PDF renderer in several ways.
This was contributed in reference to issue #155

Thanks for the contribution Rick, this is highly appreciated!


Area to left/right of touch bar on virtual keyboard layout should trigger esc/siri

On actual touch bars this area is, in fact, capacitive - at east on the left side, where the empty space can be used to trigger the escape key. It seems like the display is only cut short for symmetry.
Since there's no touch ID sensor on this virtual keyboard, my suggestion is to have both edge areas trigger their respective edge buttons - so escape and Siri by default.

Fixed in the latest release!


Error: Lock file is already being held

I'm using proper-lockfile in a Jest test suite which is executed in parallel across multiple processes.
My code
    import * as lockFile from 'proper-lockfile';
    import {readJsonSync, writeJSONSync} from "fs-extra";
    const startPort = 28000;
    const portFile = '/tmp/glut-integration-port.txt';

>   lockFile.lockSync(portFile, {stale: 30000});
    let port = startPort;
    try {
        port = readJsonSync(portFile, {throws: false}) || startPort;
        if (port > 50000) {
            port = startPort;
        }
        const thisPort = port + 1;
        writeJSONSync(portFile, thisPort);
    } finally {
        lockFile.unlockSync(portFile);
    }

When Jest is executed I get randomly the following error:
Error: Lock file is already being held

    at /Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:68:47
    at Object.newFs.<computed> [as stat] (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/adapter.js:20:13)
    at /Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:56:20
    at Object.newFs.<computed> [as mkdir] (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/adapter.js:17:24)
    at acquireLock (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:29:16)
    at RetryOperation._fn (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:233:13)
    at RetryOperation.Object.<anonymous>.RetryOperation.attempt (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js:112:8)
    at /Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:232:19
    at Object.newFs.<computed> [as realpath] (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/adapter.js:20:13)
    at resolveCanonicalPath (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:22:16)
    at lock (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/lockfile.js:224:5)
    at /Users/marc/bude/glut.ts/node_modules/proper-lockfile/lib/adapter.js:53:9
    at AsyncFunction.lockSync (/Users/marc/bude/glut.ts/node_modules/proper-lockfile/index.js:13:42)

Environment:
  npm: '6.9.0',
  node: '12.2.0',
  macOS 10.15.1

Also happens for me during npm install in my GitHub workflows.

I have playwright in my devDependencies
It happens when relaunching a Github workflow (not on first run)

npm ERR! code 1
npm ERR! path /Users/runner/work/server/server/node_modules/@jsenv/core/node_modules/playwright
npm ERR! command failed
npm ERR! command sh -c node install.js
npm ERR! /Users/runner/work/server/server/node_modules/proper-lockfile/lib/lockfile.js:68
npm ERR!                 return callback(Object.assign(new Error('Lock file is already being held'), { code: 'ELOCKED', file }));
npm ERR!                                               ^
npm ERR!
npm ERR! Error: Lock file is already being held
npm ERR!     at /Users/runner/work/server/server/node_modules/proper-lockfile/lib/lockfile.js:68:47
npm ERR!     at callback (/Users/runner/work/server/server/node_modules/graceful-fs/polyfills.js:299:20)
npm ERR!     at FSReqCallback.oncomplete (node:fs:199:5) {
npm ERR!   code: 'ELOCKED',
npm ERR!   file: '/Users/runner/Library/Caches/ms-playwright'
npm ERR! }

use pnpm iwindows10 node 16.13.0
 E:\Walker\Desktop\learn\vite\node_modules\.pnpm\proper-lockfile@4.1.2\node_modules\proper-lockfile\lib\lockfile.js:68
│                 return callback(Object.assign(new Error('Lock file is already being held'), { code: 'ELOCKED', file }));
│                                               ^
│ Error: Lock file is already being held
│     at<EMAIL_ADDRESS>
│     at callback<EMAIL_ADDRESS>
│     at FSReqCallback.oncomplete (node:fs:199:5) {
│   code: 'ELOCKED',
│   file: 'C:\\Users\\Walker\\AppData\\Local\\ms-playwright'
│ }

This is happening for us a lot with linux (Ubuntu) users, and for the same exact code it does not seem to EVER be a problem for other operating systems.


Unable to get coverage to display

I can't get coverage-gutters to render the gutters. After having done some tracing, I think the issue is in/around renderer.findIntersect(), as it always return "".
Information about my setup:

VS Code: 1.23.0 (OSX 10.13.4)
Coverage Gutters: 2.0.0
python: 2.7.14
python coverage: 4.5.1
pytest: 3.5.1
pytest-cov: 2.5.1
I'm generating cov.xml via pytest --cov=myprojectname --cov-report=xml:cov.xml

Snippet of cov.xml:
<coverage branch-rate="0" branches-covered="0" branches-valid="0" complexity="0" line-rate="0.7871" lines-covered="196" lines-valid="249" timestamp="1525805187668" version="4.5.1">
	<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
	<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
	<sources>
		<source>/Users/justfalter/code/myprojectname/myprojectname</source>
	</sources>
	<packages>
		<package branch-rate="0" complexity="0" line-rate="0.7871" name=".">
			<classes>
				<class branch-rate="0" complexity="0" filename="messages.py" line-rate="0.9691" name="messages.py">
					<methods/>
					<lines>
						<line hits="1" number="3"/>
						<line hits="1" number="4"/>
						<line hits="1" number="5"/>
						<line hits="1" number="7"/>
					</lines>
				</class>
			</classes>
		</package>
	</packages>
</coverage>

For example, findTopSectionForEditor calls findIntersect(base: editorFile, comparee: sectionFile):

editorFile: ###users###justfalter###code###myprojectname###myprojectname###messages.py
sectionFile: messages.py

subInt ends up being messages.py, here: https://github.com/ryanluker/vscode-coverage-gutters/blob/f06458d0ae307118fe6ea54e2efa187dc6bc08e7/src/renderer.ts#L140
But the function always seems to return "" here: https://github.com/ryanluker/vscode-coverage-gutters/blob/f06458d0ae307118fe6ea54e2efa187dc6bc08e7/src/renderer.ts#L142-L144

And, FWIW, everything works fine when after downgrading to version 1.3.1.

@justfalter ahh yes the new intersect / scoring system was added in 2.0 so that is definitely it. The bad part with this is I didnt want just names of files to match the editorFile so I added the requirement to have atleast one folder level in the filename. You can see an example of that in https://github.com/ryanluker/vscode-coverage-gutters/blob/master/example/python/cov.xml#L55 .
Are you able to generate your coverage with more file precision? having just the filename can make for incorrect coverage being added to the wrong editor if you dont have unique filenames across all workspaces.

@spodym might be able to weigh in, as well, on generating cov.xml with more precision.

@ryanluker I don't see a straightforward way to increase precision. I can point the coverage tool at the root of my repository, but it doesn't allow me to see the coverage analysis for files in that root (for example: https://github.com/ryanluker/vscode-coverage-gutters/blob/master/example/python/cov.xml#L11 ).
As you can see in the source for coverage XML (line 148: https://bitbucket.org/ned/coveragepy/src/506e670e23857674786236bbad60feee15ed5fd9/coverage/xmlreport.py?at=default&fileviewer=file-view-default#xmlreport.py-148), it really wants to make the path relative to one of the source directories. Ideally, they'd be using a single root to establish the relative paths.  I realize this isn't your problem, but I'm unfamiliar with any other tools that generate this kind of coverage XML to compare against.
What about detecting situations that would make for applying coverage to the wrong files?

More than one  in coverage XML have the same filename.
A  filename exists in more than one of the  paths.

@ryanluker I have a question. Is there use case when user will be using one coverage file in multiple workspaces? I have intuition that coverage file should be bounded to workspace it was found in.

If you take into account the , following the suggestion I made, you wouldn't have to care about who generated the XML.
I would bet that most people are only going to have a single source directory in their coverage XML.
See https://github.com/ryanluker/vscode-coverage-gutters/blob/master/example/python/cov.xml#L5-L7

@spodym part of the 2.0 refactor is that it consumes converge from everywhere in order to efficiently cache the results for later use. This extremely simplified the process of consuming lcov (.info or .xml) as the results could live together in one data structure (with copies of the same result for a file being merged, although that would be an extreme edge case).

@justfalter @spodym regarding the sources in the xml file. my understanding is that the cobertura parser (https://github.com/vokal/cobertura-parse) is supposed to add these to the filename in each section for downstream consumers to utilize. you can see in the snippet below, of the cache I grabbed at runtime, the difference between the cobertura parse and the lcov parse (https://github.com/davglass/lcov-parse) modules in how they give back the file pathing.
this.cache
Map(8) {, …}
[[Entries]]:Array(8)
length:8
0:{"/home/ryanluker/dev/vscode-coverage-gutters/example/node/test.js" => Object} {key: "/home/ryanluker/dev/vscode-coverage-gutters/exampl…", value: Object}
1:{"/home/ryanluker/dev/vscode-coverage-gutters/example/node/test-coverage.js" => Object} {key: "/home/ryanluker/dev/vscode-coverage-gutters/exampl…", value: Object}
key:"/home/ryanluker/dev/vscode-coverage-gutters/example/node/test-coverage.js"
value:Object {lines: Object, functions: Object, branches: Object, …}
branches:Object {hit: 16, found: 23, details: Array(23)}
file:"/home/ryanluker/dev/vscode-coverage-gutters/example/node/test-coverage.js"
functions:Object {hit: 3, found: 3, details: Array(3)}
lines:Object {found: 25, hit: 21, details: Array(25)}
title:""
__proto__:Object {__defineGetter__: , __defineSetter__: , hasOwnProperty: , …}
2:{"__init__.py" => Object} {key: "__init__.py", value: Object}
3:{"tests/test_sample.py" => Object} {key: "tests/test_sample.py", value: Object}
key:"tests/test_sample.py"
value:Object {title: "test_sample.py", file: "tests/test_sample.py", functions: Object, …}
branches:Object {found: 0, hit: 0, details: Array(0)}
file:"tests/test_sample.py"
functions:Object {found: 0, hit: 0, details: Array(0)}
lines:Object {found: 4, hit: 4, details: Array(4)}
title:"test_sample.py"
__proto__:Object {__defineGetter__: , __defineSetter__: , hasOwnProperty: , …}
4:{"tests/bar/__init__.py" => Object} {key: "tests/bar/__init__.py", value: Object}
key:"tests/bar/__init__.py"
value:Object {title: "__init__.py", file: "tests/bar/__init__.py", functions: Object, …}
branches:Object {found: 0, hit: 0, details: Array(0)}
file:"tests/bar/__init__.py"
functions:Object {found: 0, hit: 0, details: Array(0)}
lines:Object {found: 0, hit: 0, details: Array(0)}
title:"__init__.py"
__proto__:Object {__defineGetter__: , __defineSetter__: , hasOwnProperty: , …}
5:{"tests/bar/a.py" => Object} {key: "tests/bar/a.py", value: Object}
key:"tests/bar/a.py"
value:Object {title: "a.py", file: "tests/bar/a.py", functions: Object, …}
branches:Object {found: 0, hit: 0, details: Array(0)}
file:"tests/bar/a.py"
functions:Object {found: 0, hit: 0, details: Array(0)}
lines:Object {found: 6, hit: 3, details: Array(6)}
title:"a.py"
__proto__:Object {__defineGetter__: , __defineSetter__: , hasOwnProperty: , …}
6:{"tests/foo/__init__.py" => Object} {key: "tests/foo/__init__.py", value: Object}
7:{"tests/foo/a.py" => Object} {key: "tests/foo/a.py", value: Object}
size:8
__proto__:Map {constructor: , size: <accessor>, get: , …}

I would also encourage you both to open the output tab and get me copy while the extension is running, while you have watch mode turned on. You should get something like the image below, it will assist with seeing what the extension is getting for the file path as it consumes the sections from the two parsing modules.

@ryanluker You are correct.

The output is based on, and intended to be compatible with, https://github.com/davglass/lcov-parse
This is from https://github.com/vokal/cobertura-parse

lcov-parse is taking it's file attribute from lcov's SF part (SF:<absolute path to the source file>)
            case 'SF':
                item.file = parts.slice(1).join(':').trim();

The clean solution is to update cobertura-parse and extend paths to absolute paths. But I also see benefits of adding switch in this project for allowing less strict path matching.
Since I recently made small update in cobertura-parse I will make PR with absolute paths update later today.

@spodym sounds good, I am happy to remove the ### requirement as it won't be used very often anymore. I am thinking we will make a 2.0.1 release with these two changes, I should be able to release that tonight.

@spodym sounds good thanks!

@spodym I see that the commit was merged into master but no npm release yet? I can install the module from the git commit hash instead if the maintainer is being slow :package: .

@ryanluker Lets do it this way. I hope it will work properly :)

Perhaps related. I'm getting coverage gutters on my test classes (which I don't expect to be there). I place my source files in src/.../myfile.js and my tests are under src/__tests__/.../myfile.js.
If I rename my test file from src/__tests__/.../myfile.js to src/__tests__/.../myfile.test.js, then the coverage is removed (which is what I expect).
Is there a way to get it to only consider exact matches?
FYI, here's the log before and after the rename:
[1528325149168][coverageservice]: Loading 1 file(s)
[1528325149172][coverageservice]: Caching 44 coverage(s)
[1528325149172][coverageservice]: READY
[1528325149172][coverageservice]: RENDERING
[1528325149173][renderer][section file path]: .../src/.../myfile.js [exactness score]: 100
[1528325149174][renderer][section file path]: .../src/.../myfile.js [exactness score]: 22.35294117647059
[1528325149174][coverageservice]: READY
[1528325168004][coverageservice]: RENDERING
[1528325168006][renderer][section file path]: .../src/.../myfile.js [exactness score]: 100
[1528325168014][coverageservice]: READY

@supersonicclay yes that looks similar, the next release should help with this. Are you using xml or regular lcov by the way?

I'm using the default config. I have the following files in a ./coverage folder at the root of my workspace. I'm guessing it is pulling in ./coverage/lcov.info.

clover.xml
coverage-final.json
lcov-report
lcov.info

@supersonicclay hmm odd, when I do the next release QA I will see if I get similar results locally thanks for the extra info!

2.0.1 release is going out shortly and will have the improvements to the upstream xml parser included! thanks again for submitting the ticket.

@supersonicclay FYI this issue here is semi related to clover.xml #140


[SPARK-31150][SQL] Parsing seconds fraction with variable length for timestamp

What changes were proposed in this pull request?
This PR is to support parsing timestamp values with variable length second fraction parts.
e.g. 'yyyy-MM-dd HH:mm:ss.SSSSSS[zzz]' can parse timestamp with 0~6 digit-length second fraction but fail >=7
select to_timestamp(v, 'yyyy-MM-dd HH:mm:ss.SSSSSS[zzz]') from values
 ('2019-10-06 10:11:12.'),
 ('2019-10-06 10:11:12.0'),
 ('2019-10-06 10:11:12.1'),
 ('2019-10-06 10:11:12.12'),
 ('2019-10-06 10:11:12.123UTC'),
 ('2019-10-06 10:11:12.1234'),
 ('2019-10-06 10:11:12.12345CST'),
 ('2019-10-06 10:11:12.123456PST') t(v)
2019-10-06 03:11:12.123
2019-10-06 08:11:12.12345
2019-10-06 10:11:12
2019-10-06 10:11:12
2019-10-06 10:11:12.1
2019-10-06 10:11:12.12
2019-10-06 10:11:12.1234
2019-10-06 10:11:12.123456

select to_timestamp('2019-10-06 10:11:12.1234567PST', 'yyyy-MM-dd HH:mm:ss.SSSSSS[zzz]')
NULL

Since 3.0, we use java 8 time API to parse and format timestamp values. when we create the DateTimeFormatter, we use appendPattern to create the build first, where the 'S..S' part will be parsed to a fixed-length(= 'S..S'.length). This fits the formatting part but too strict for the parsing part because the trailing zeros are very likely to be truncated.
Why are the changes needed?

improve timestamp parsing and more compatible with 2.4.x
Does this PR introduce any user-facing change?

no, the related changes are newly added
How was this patch tested?

add uts

Test build #119767 has started for PR 27906 at commit 3e94191.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24496/
Test PASSed.

Test build #119768 has started for PR 27906 at commit 8ff8875.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24497/
Test PASSed.

Test build #119771 has started for PR 27906 at commit c58764d.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24500/
Test PASSed.

Test build #119767 has finished for PR 27906 at commit 3e94191.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119767/
Test FAILed.

Test build #119768 has finished for PR 27906 at commit 8ff8875.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119768/
Test FAILed.

Test build #119771 has finished for PR 27906 at commit c58764d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119771/
Test FAILed.

Test build #119784 has started for PR 27906 at commit b135dd5.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24514/
Test PASSed.

Test build #119784 has finished for PR 27906 at commit b135dd5.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119784/
Test FAILed.

retest this please

Test build #119790 has started for PR 27906 at commit b135dd5.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24520/
Test PASSed.

Test build #119790 has finished for PR 27906 at commit b135dd5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119790/
Test PASSed.

Test build #119854 has started for PR 27906 at commit 2686c2e.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24584/
Test PASSed.

cc @cloud-fan @maropu @MaxGekk @xuanyuanking, thanks

Test build #119855 has started for PR 27906 at commit a0e449a.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24585/
Test PASSed.

Test build #119856 has started for PR 27906 at commit 18338df.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24586/
Test PASSed.

Test build #119860 has started for PR 27906 at commit 81b69fd.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24590/
Test PASSed.

Test build #119854 has finished for PR 27906 at commit 2686c2e.

This patch fails Spark unit tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119854/
Test FAILed.

Test build #119855 has finished for PR 27906 at commit a0e449a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119855/
Test PASSed.

Test build #119872 has started for PR 27906 at commit 234f7c8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24600/
Test PASSed.

Test build #119860 has finished for PR 27906 at commit 81b69fd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119860/
Test PASSed.

Test build #119856 has finished for PR 27906 at commit 18338df.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119856/
Test PASSed.

Test build #119877 has started for PR 27906 at commit 64fa825.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24605/
Test PASSed.

Test build #119880 has started for PR 27906 at commit d4aea29.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24608/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24609/
Test PASSed.

Test build #119882 has started for PR 27906 at commit 18de1b7.

Test build #119886 has started for PR 27906 at commit e550f16.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24614/
Test PASSed.

Test build #119888 has started for PR 27906 at commit bb1a580.

Test build #119877 has finished for PR 27906 at commit 64fa825.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119877/
Test FAILed.

Test build #119872 has finished for PR 27906 at commit 234f7c8.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119872/
Test FAILed.

Test build #119880 has finished for PR 27906 at commit d4aea29.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119880/
Test FAILed.

Test build #119882 has finished for PR 27906 at commit 18de1b7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119882/
Test FAILed.

Hi, @yaooqinn and @cloud-fan .
This is created an improvement JIRA. Is this a regression in 3.0.0 or an improvement in 3.1.0?

Test build #119886 has finished for PR 27906 at commit e550f16.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119886/
Test PASSed.

Test build #119888 has finished for PR 27906 at commit bb1a580.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119888/
Test PASSed.

Hi @dongjoon-hyun, thanks for pointing that out. I'd say that this is a regression of 3.0.0.

Yea the JIRA should be reported as bug. The same query works in 2.4 but returns null in 3.0.

Test build #119909 has started for PR 27906 at commit d1ab415.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24635/
Test PASSed.

Test build #119914 has started for PR 27906 at commit 27095da.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24639/
Test PASSed.

Test build #119909 has finished for PR 27906 at commit d1ab415.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #119914 has finished for PR 27906 at commit 27095da.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119914/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119909/
Test FAILed.

Test build #119921 has started for PR 27906 at commit ec44083.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/24647/
Test PASSed.

Test build #119921 has finished for PR 27906 at commit ec44083.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/119921/
Test PASSed.

thanks, merging to master/3.0!


Departments field only show the ID, not their name on publication details page

Problem description
On the publication detail page, the "departments" fieldset shows a list of departments associated with the publication. Currently, only the ID is shown to the end user. This doesn't convey a whole lot of information as to what department is associated with the publication.
Cause
This is what we get from the REST API:
      "department": [
         {
            "tree": [
               {
                  "_id": "GUK"
               }
            ],
            "_id": "KR71"
         },
         {
            "tree": [
               {
                  "_id": "LA"
               },
               {
                  "_id": "UGent"
               }
            ],
            "_id": "LA61"
         }
      ],

Possible solutions

Consider expanding the object saved in Librecat to also store the name of the department, just like the "Project" field does, save the name when a department is asscoiated with a publication (this is how projects work)
Add an extra /department/:department_id route to the REST API and side-load the information when a publication is requested.

https://github.com/ugent-library/biblio-backend/pull/69

resolved by #69


Add support for IVCAP Queue services in the SDK

This pull request adds support for IVCAP Queue services in the SDK. It includes:

Implement LocalQueueAdapter and IvcapQueueAdapter for local and IVCAP queue operations
Include create_queue_adapter() in ivcap.py for queue adapter instantiation
Integrate QueueAdapter interface into ivcap_sdk_service/init.py and related files
Add examples/queue/Makefile and examples/queue/task_queue.py for task queue demonstration
Update Makefile to run task_queue.py example

The queue service support allows users to create, list, delete, enqueue, and dequeue messages from queues, enabling event-driven and decoupled communication between services. The task queue example showcases a practical application of using queues for task scheduling and processing in a distributed system.
Edit: I just noticed the git history is a bit cluttered. Review should focus on d3bec566a5f4d6a363fd827ec0a93bf891574f5d

I'm a bit confused about the interaction of QueueService, Queue, and QueueMessage? Is QueueService and Queue linked at this stage?

I'm a bit confused about the interaction of QueueService, Queue, and QueueMessage?

This unfortunately comes back to the overlap and confusing duplications between the message module and the queue module in IVCAP Core, which #414 intends to fix and will flow back through here.

Is QueueService and Queue linked at this stage?

No. QueueService currently maps directly to the Queue endpoint in IVCAP Core. At the moment QueueService methods return responses as Dicts, which closely mirrors the JSON output of the REST API.