Occupancy sensor

Any chance this integration could detect the new Caseta Occupancy Sensor?
Let me know if i can provide any logging or other details to best assist.

@plc if you have one, have you checked if the sensor reports its status through LIP/telnet?
I should be ordering one next week if all goes well; but if it doesn't report anything on LIP I might have to skip.  I wanted to use them for other (non-Lutron) purposes, just like my Picos.

i have not, but i’m happy to if you want to point me in the right direction of the commands. also do you have a donation box? happy to chip in for your motion sensor, especially since i use this plugin every day!

On May 2, 2020, at 09:30, jsb5151<EMAIL_ADDRESS>wrote:

@plc if you have one, have you checked if the sensor reports its status through LIP/telnet?
I should be ordering one next week if all goes well; but if it doesn't report anything on LIP I might have to skip. I wanted to use them for other (non-Lutron) purposes, just like my Picos.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

The motion sensors do not generate any events on the Telnet protocol used by this component. Refer to issue #6 for the long history of updates regarding this issue.


Add files via upload

Corrected NCT6798D ID and added NCT679BD
Supports Z370 & Z390

Hello, nice it worked for you. Could you please correct the indentation? We use Tabs instead of spaces (note https://github.com/acidanthera/VirtualSMC/pull/13/files).

Fixed tab

Hello, nice it worked for you. Could you please correct the indentation? We use Tabs instead of spaces (note https://github.com/acidanthera/VirtualSMC/pull/13/files).

That was very weird.  It looked fine in xcode but when I looked at it on my git hub it was messed up, even though I never used spaces!  I tried to fix multiple time in xcodes and commit but it didn't see the change.  I finally just edited the file directly.

Hi, it still looks very messed up. Check https://stackoverflow.com/questions/3216426/is-it-possible-to-set-indent-settings-in-xcode-per-project-or-per-file-even

Hi, it still looks very messed up. Check https://stackoverflow.com/questions/3216426/is-it-possible-to-set-indent-settings-in-xcode-per-project-or-per-file-even

That was very strange, 2 of the files were set to spaces and one to tabs.  Thank you for being patient with me.

It still hassling me.  Will try again

I am very perplexed.  I changed the spacing to tabs in 2 locations, general preferences and per file, made the changes and it is refusing to commit.  Is it possible it is not seeing spaces vs tabs it as a change?

No worries, I fixed it up locally and committed:
https://github.com/acidanthera/VirtualSMC/commit/09917026278b682e25d1875ec53a78a648b953a4
Thanks again for the fixes =)

I just figured it out when I got your note, have to say I was relieved, thank you again for your patience.
By the way, I'm missing individual core frequencies, is that configurable and can I modify the
IOKitPersonality for my board like in FakeSMC?  I want to remove unnecessary entries and change some labels.
Thanks!

Individual core frequencies are to be obtained with Intel Power Gadget, SMC has nothing to do to it (despite FakeSMC doing whatever it wants). Then your monitor software should read it with Intel Power Gadget API.
Similarly, entry configuration (the choice of which SMC keys are used) is also to be done by the client you are using, not within VirtualSMC. VirtualSMC reports the sensors your hardware actually has. I believe some HWMonitor (?) implementations can do that.
Also, this is not a support forum =)

Sorry and thank you!


Update Github Actions

Questions
Answers

Description?
Update Github Actions

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
Relative to PrestaShop/PrestaShop#26767

How to test?
N/A

Done in #30 by @jf-viguier


microstrain_inertial: 4.4.0-1 in 'iron/distribution.yaml' [bloom]

Increasing version of package(s) in repository microstrain_inertial to 4.4.0-1:

upstream repository: https://github.com/LORD-MicroStrain/microstrain_inertial.git
release repository: https://github.com/ros2-gbp/microstrain_inertial-release.git
distro file: iron/distribution.yaml
bloom version: 0.10.7
previous version for package: 4.3.0-1

microstrain_inertial_description

No changes

microstrain_inertial_driver
* ROS submodule update 10/07/2024 (#356 <https://github.com/LORD-MicroStrain/microstrain_inertial/issues/356>)
* ROS submodule update 08/23/2024 (#349 <https://github.com/LORD-MicroStrain/microstrain_inertial/issues/349>)
* Contributors: Rob

microstrain_inertial_examples
* ROS Adds example of providing NMEA over CV7-INS aux port (#351 <https://github.com/LORD-MicroStrain/microstrain_inertial/issues/351>)
  * Adds ROS CV7-INS NMEA aux port example
  * Adds example files to README
* Contributors: Rob

microstrain_inertial_msgs
* ROS submodule update 08/23/2024 (#349 <https://github.com/LORD-MicroStrain/microstrain_inertial/issues/349>)
* Contributors: Rob

microstrain_inertial_rqt

No changes

Holding for Iron sync


Prefer using PHP Traits for Laravel Eloquent Relationships (mostly on repeated relations like belong to User)

See https://tomgrohl.medium.com/using-php-traits-for-laravel-eloquent-relationships-7357901a01a4

Hey, thanks for the heads up. I'm closing this one as I don't think this should be considered a default guideline.


Automated cherry pick of #6669: Add docker credentials to windows CI to avoid rate limit

Cherry pick of #6669 on release-2.0.
#6669: Add docker credentials to windows CI to avoid rate limit
For details on the cherry pick process, see the cherry pick requests page.

/test-windows-all

Windows tests are failing

/test-windows-all

/test-windows-containerd-networkpolicy
/test-windows-containerd-conformance

Windows tests are failing

Fixed testbed certificate issue, @antoninbas now CI passed, we can merge it in release-2.0 branch.


CB-13417: Blog post for<EMAIL_ADDRESS>

Platforms affected
iOS
What does this PR do?
Adds a new blog post for<EMAIL_ADDRESS>release
What testing has been done on this change?
Previewed the page locally and double checked all links
Checklist

[x] Reported an issue in the JIRA database
[x] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
[ ] Added automated test coverage as appropriate for this change.

Thanks! Has been merged! Please close @surajpindoria


release

:tada: This PR is included in version grc-stamp-fronted-v1.5.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version grc-stamp-v1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


explanation improvements

Improvements to explanations and descriptions for easier handling of API specifications.

@svenbiellmann can I ask you to remove all trailing spaces according to the lint warnings

@svenbiellmann can I ask you to remove all trailing spaces according to the lint warnings

Trailing spaces already removed in pull request #72

@simonmeyerm Please review the adjustment in the description of the usage for /balance and /transactions


Heroku does not recognize my superuser

Needing to run heroku run python manage.py createsuperuser but then got told to apply migrations, too.

Applied migrations and remembered the correct superuser creds to log in


Introduce an E2E test for Keptn using cert-manager.io

Goal
Introduce a E2E test for Keptn using cert-manager.io, when keptn-cert-manager is disabled. This should test the functionality instroduced by this issue.
DoD

[ ] adapt installation action to disable keptn-cert-manager and therefore install cert-manager.io
[ ] execute current integration tests to check that functionality of Keptn remains the same with the usage of cert-manager.io

Pre-requisites

https://github.com/keptn/lifecycle-toolkit/issues/2635

Notes
⚠ This ticket should be merged into the cert-manager-io feature branch!
For more context, read the results of the research.

Interested. Is it possible to collaborate on this issue with other contributors?


Fix defaultable error message when an invalid named argument is used

Purpose
$subject
Fixes #25230
Check List

[X] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

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


request help: why not reuse the k8s control panel etcd

Issue description
Now the helm installation of apisix is using statefulset to deploy the etcd cluster, and I see the community is also not recommended, why not reuse the k8s control panel etcd
Also, I'd like to ask if apisix has support for monitoring the number of api interface calls
Environment

your apisix-ingress-controller version (output of apisix-ingress-controller version --long);
your Kubernetes cluster version (output of kubectl version);
if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a).

Yes, it is not recommended to reuse etcd of the k8s control plane, mainly for the following reasons:

If you want to reset or uninstall APISIX, data management is not easy

If you have a large amount of data, it will inevitably affect each other

I will close this issue, feel free to reopen it if you have any question.


Typo: "atomic::operator|;=" should be changed to "atomic::operator|="

In this document, the title "atomic::operator|;=" should be changed to "atomic::operator|=" (I guess it's simple typo but you know what I mean)

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

ID: b297703b-5d37-a7d1-945d-22c4791a5448
Version Independent ID: d642d241-72c1-74c8-8335-ca241679058b
Content: atomic Structure
Content Source: docs/standard-library/atomic-structure.md
Product: visual-cpp
Technology: cpp-standard-libraries
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

Sent a PR, will mark this issue as closed.

Thank you! Alice2O3 (Alice with an 'O') :-)


Add Netmiko send_command with ntc-templates textfsm support

I need to review this: https://github.com/napalm-automation/brigade/tree/dbarrosop/host_properties

Also need to get agreement on one task per Python module or not.

@ktbyers could you look at this PR? https://github.com/napalm-automation/brigade/pull/25/files#diff-3809cfaf6a7bf2bf113debc68df5541cR174
Would be nice to make it in a way where netmiko tasks can reuse the same connection.

@dbarrosop Yes, let me review...I was thinking the same i.e. that it would be good to allow a way for SSH connection reuse.

Will resubmit separately.


Possibly use byu.hr.manage_apps as a module

See issue #90 of that repo.

Comparing boilerplate_rs.krl with byu.hr.manage_apps.krl, note that the makeInstalledRulesetAnApp rule of the latter could also do the channel management tasks of the former.

Whenever a byname app is installed in a pico, we know that that pico already has the byu.hr.manage_apps ruleset
Channels belong to the pico, not to the ruleset that creates them!

This would reduce the size of boilerplate code by 19 lines as those rules can be omitted from the boilerplate, along with the binding of the channel_tags name in line 9..
The above does not require usage as a module.
Furthermore, the convenience functions could be provided by the module, saving another 10 lines of boilerplate.
A call  to these functions would have to pass along the RID, as apps are keyed by the RID. Assuming
    use module byu.hr.manage_apps alias app

the calls would look like:
      action_url = app:event_url(meta:rid,event_domain,"event_type")
      link_url = app:query_url(meta:rid,"name.html")
      home_url = app:main_url(meta:rid)

A generated boilerplate would look like
ruleset boilerplate_rs {
  meta {
    name "boilerplates"
    use module byu.hr.manage_apps alias app
    use module html.byu alias html
    shares boilerplate
  }
  global {
    event_domain = "boilerplate_rs"
    boilerplate = function(_headers){
      html:header("manage boilerplates","",null,null,_headers)
      + <<

Manage boilerplates

>>
      + html:footer()
    }
  }
}

Refactoring the HTML generating boilerplate, providing an html function that takes four arguments,

the tab title string,
a string of script, style, and other tags for inside the head,
a string of the tags of the body,
and the HTTP headers,

the boilerplate could be further simplified to these 16 lines, assuming a RID of hello-world, an app name of greetings, and a home page named hello:
ruleset hello-world {
  meta {
    name "greetings"
    use module byu.hr.manage_apps alias app
    shares hello
  }
  global {
    event_domain = "hello_world"
    hello = function(_headers){
      app:html("manage greetings", "",
<<

Manage greetings

>>, _headers)
    }
  }
}


Add param to qpy load for custom definitions fixing #7454

Summary
Adding parameter for qpy load method to support custom quantum Gate definitions
Details and comments

In response to issue #7454 , an optional parameter called custom_gate_dict was added to the qpy load method.

The reason was that in _parse_custom_instruction method in qiskit.circuit.qpy_serialization.py, a definition for the gate used in the original circuit is needed. The original method does not have access to the definitions made by the user

The optional parameter custom_gate_dict is a mapping of the name and the definitions of custom gates defined by the user

A unit test is also added

Example of resolved issue :

import io
import qiskit
import numpy as np
from qiskit.circuit import QuantumCircuit
from qiskit.circuit import qpy_serialization
from qiskit.circuit import Gate as QiskitGate
from qiskit.circuit.exceptions import CircuitError

class Gate1(QiskitGate):
    def validate_parameter(self, single_param):
        if not isinstance(
            single_param,
            (int, float, str, bool, dict, qiskit.circuit.ParameterExpression),
        ):
            raise CircuitError(f"parameter of type {type(single_param)} not supported")
        return single_param

class Gate2(QiskitGate):
    def validate_parameter(self, single_param):
        if not isinstance(
            single_param,
            (int, float, str, bool, dict, qiskit.circuit.ParameterExpression),
        ):
            raise CircuitError(f"parameter of type {type(single_param)} not supported")
        return single_param

ramsey = QuantumCircuit(2, 2)
ramsey.rx(np.pi / 2, 0)

gate1 = Gate1(name="wait", num_qubits=1, params=[10, "special"])
gate2 = Gate2(name="forward", num_qubits=1, params=[10, "unique"])

ramsey.append(gate1, [0])
ramsey.append(gate2, [1])
ramsey.rx(np.pi / 2, 0)

print("Original :\n", ramsey.draw())

with io.BytesIO() as fid:
    qpy_serialization.dump([ramsey], fid)
    b = fid.getvalue()

# the gates should be ordered by their names, as the gates may be multiple
with io.BytesIO(initial_bytes=b) as fid:
    circuits = qpy_serialization.load(
        fid, custom_gate_dict={"wait": Gate1, "forward": Gate2}
    )
    print("Reloaded :\n", circuits[0].draw())

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 11 (90.91%)  changed or added relevant lines in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.004%) to 83.138%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit/circuit/qpy_serialization.py
10
11
90.91%

Files with Coverage Reduction
New Missed Lines
%

qiskit/pulse/library/waveform.py
3
89.36%

Totals

Change from base Build<PHONE_NUMBER>:
-0.004%

Covered Lines:
52031

Relevant Lines:
62584

💛  - Coveralls

@TheGupta2012 Thanks for tackling this issue. Are you still working on it? Please let us know if you need any help.

Closing this PR as contributor is no longer responsive.
If contributor returns feel free to let us know if you would like us to re-open this PR 😃


Is there a way to save ConSinGAN model training progress?

Hi! Is there a way to save and to load the process of model training? For example, I use google colab for a faster model training, but maybe 30% of time the process interrupts , and I should start from the beginning again.

Hi, the networks are saved after each stage (see e.g. line 99 in training_generation.py). You could of course potentially store them more often. To restart from there you'll also have to save noise_amp (see here).
To resume training you can simply load the saved models (see e.g. in evaluate_model.py how to do this) and then continue training from there.


Custom training on my dataset

Thanks for this great works. I would like to know how to run training on my custom dataset ??
is there any guide for that ??

Hi, thanks for your interest.
To train HiSup on custom dataset, you can try steps below:

Prepare your dataset in COCO format
Add your dataset path in hisup/config/paths_catelog.py
Create your own config file and start training

Hope this helps.

Thanks for your help.  I will try .

I could start training but how to fine tune your models on my dataset ??
my images is 512 * 512 , how to edit the config to match my images dim ? what about augmentation ??

what about evaluation against val set after specific no of iterations or epoch ??

The IMAGE in the configuration file states the input image. The TARGET states the size of feature map. The ORIGIN states the output results. Since your images are 512*512, you could follow the config-files/inria_hrnet48.yaml which also processes images of the same size.
The augmentation techniques are defined in the https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/hisup/dataset/build.py#L22
The training code does not include validation. If you need it, you could add the loop of validation to the function in https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/scripts/train.py#L72

thanks alot.
could you tell me how to run inference using my own custom model ??
which needed changes along using the final config.ymal file that is existed in the output dir of training ??

For the testing, there are a few steps.
Firstly, hope you add the name and path of testing file to the hisup/config/paths_catalog.py
https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/hisup/config/paths_catalog.py#L9
Then you may need to assign the name of testing in the configuration file like this.
https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/config-files/crowdai-small_hrnet48.yaml#L28
You also have to write the test function for your own dataset and add it here.
https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/tools/test_pipelines.py#L93
If the size of testing images is not very large, you could follow the function named test_on_crowdai().
https://github.com/SarahwXU/HiSup/blob/69e0cb3c7039bd038139ae0b95ea4ef03b2e5162/tools/test_pipelines.py#L109
In short, it is highly suggested to follow the existing code for AICrowd or Inria dataset.

thank you very much, I will follow your guidelines.

Hello, did you manage to train and make inference on custom data?
I followed the steps you proposed @SarahwXU,
I managed to get inference and visualize using pretrained models on my dataset.
But after training on custom set, I could not get any polygon predictions. It only gives mask predictions and it results with error.
Any idea about this?
Thanks for the work you've done.

I am afraid that I cannot offer help with such information. Maybe you want to give some details such as the results of mask prediction, junction prediction, the training log, or the error message.


[AMBARI-24155] Ranger and KMS tab still present in Customize ServicesPage even after going back and deselecting them from Choose ServicesPage

What changes were proposed in this pull request?

Navigate to Customize ServicePage of UI install wizard by selecting all services from ChooseServicesPage.

Populate credentials tab

Switch to Databases tab, Noticed that Ranger and Ranger KMS have multiple properties to be filled in

Now go back to Choose Services page and deselect Ranger and Ranger KMS

Proceed through wizard to reach Customize ServicesPage

Ranger and KMS sub tabs are still present with errors at Databases tab.
(None of the ranger/KMS credential properties are present in Credential tabs)

Now even if we go back and choose Ranger and KMS - update all necessary properties for Ranger - Test Connection is hung with error

How was this patch tested?
UI unit tests:
21791 passing (23s)
48 pending

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

The test failures are not related to this patch.


Updating table column properties does not propagate to sql stats

Updating a column as "summable" on the "List Table Column" view, does not automatically create a sum sql metric. Instead the sum sql metric has to be added manually.

@alanmcruickshank if you save the Table aren't these created automagically?

Notice: this issue has been closed because it has been inactive for 622 days. Feel free to comment and request for this issue to be reopened.


Does this issue closed?

#363
I will use this package for store token.
but, I just worried about this issue.

It is no issue. Please check #363


Add more tests to zkapp command logic

Explain your changes:

Add more unit tests to zkapp command logic.
These tests exercise the function, which applies zkApp commands to a ledger. They verify important properties, like the order in which updates are applied, in what ways they change the accounts in the ledger and what are failure conditions for different types of updates.

Explain how you tested your changes:

The CI runs these tests.

[x] Make sure the tests are actually being run in the CI.

Checklist:

[x] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[x] All tests pass (CI will check this if you didn't)
[x] Serialized types are in stable-versioned modules
[x] Does this close issues? List them

Closes #12530

!ci-build-me

!ci-build-me

!ci-build-me


reproduce command

Issue to read python native classes from .YML files, in method Experiment.from_yml().  Safe_load does not allow that

not an issue anymore


Single left square bracket behaves differently in search and substitute

Describe the bug
Related Neovim bug: https://github.com/neovim/neovim/issues/15691. Single left square bracket behaves differently in search and substitute.
To Reproduce
Detailed steps to reproduce the behavior:

Run vim --clean (or gvim --clean, etc.)
Insert [[[[[[.
Run command :s/[/(/g.
Square brackets are highlighted when only :s/[ is typed, but :s/[/(/g fails. Searching /[ also matches.

Expected behavior
:s/[/(/g replaces [ with (. Text becomes ((((((.
Environment:

Vim version:

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled *)
Included patches: 1-3441
Compiled by Arch Linux
Huge version without GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       +tcl/dyn
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
-balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
-browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     +perl/dyn          +title
+channel           +ipv6              +persistent_undo   -toolbar
+cindent           +job               +popupwin          +user_commands
-clientserver      +jumplist          +postscript        +vartabs
-clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +virtualedit
+cmdline_hist      +langmap           +python/dyn        +visual
+cmdline_info      +libcall           +python3/dyn       +visualextra
+comments          +linebreak         +quickfix          +viminfo
+conceal           +lispindent        +reltime           +vreplace
+cryptv            +listcmds          +rightleft         +wildignore
+cscope            +localmap          +ruby/dyn          +wildmenu
+cursorbind        +lua/dyn           +scrollbind        +windows
+cursorshape       +menu              +signs             +writebackup
+dialog_con        +mksession         +smartindent       -X11
+diff              +modify_fname      -sodium            -xfontset
+digraphs          +mouse             -sound             -xim
-dnd               -mouseshape        +spell             -xpm
-ebcdic            +mouse_dec         +startuptime       -xsmp
+emacs_tags        +mouse_gpm         +statusline        -xterm_clipboard
+eval              -mouse_jsbterm     -sun_workshop      -xterm_save
+ex_extra          +mouse_netterm     +syntax
+extra_search      +mouse_sgr         +tag_binary
-farsi             -mouse_sysmouse    -tag_old_static
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.34/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -o vim -lm -ltinfo -lelf -lacl -lattr -lgpm -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.34/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/5.34/core_perl/CORE -lperl -lpthread -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm

OS: Arch Linux
Terminal: kitty 0.23.1

I believe this was discussed before. I believe Vim is being a bit smart when searching and detects that /[ the user is actually trying to match a square bracket and not a regex collation. This breaks, when doing a substitution, perhaps because of the delimiter or such.
If I remember correctly we did not want to change that.

See :help E769.


Get Project Westminster Application prepared for Store submission

I've reserved the name in the Windows Store. All the logo/image assets need finishing off and any other peripheral resources so that the application is ready to be submitted to the Windows Store.
Live tiles would have been nice in the initial release, but they're going to have to wait until the rest of the MongoDB/Localisation update launches so we can add the XML feed.
Not sure how/if we should do Notifications on new builds.

Due the recent problems with WuTest, I don't see any problems with pushing notifications to the users. An extra features could be that you can select the 'source-type(s)' what you want to see as notifications ...


chore: add e2e test

What this PR did?

Add E2E test with Cypress framework
Add User login test
Integrate GitHub Action
Test TiDB Dashboard latest features and lower version compatibility.

I have merged https://github.com/pingcap/tidb-dashboard/pull/1083. You can use common scripts now.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@037bc50). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master   #1109   +/-   ##
========================================
  Coverage          ?   7.05%
========================================
  Files             ?      32
  Lines             ?    1943
  Branches          ?       0
========================================
  Hits              ?     137
  Misses            ?    1795
  Partials          ?      11

Flag
Coverage Δ

be_integration_test_latest
7.05% <0.00%> (?)

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

Continue to review full report at Codecov.

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

@shhdgit PTAL whether it is possible to have same compatibility matrix. This can be improved in future PRs. Now integration test has latest + v4.0.1 and E2E has nightly + v5.0.0. It would be better to make them identical.

@shhdgit PTAL whether it is possible to have same compatibility matrix. This can be improved in future PRs. Now integration test has latest + v4.0.1 and E2E has nightly + v5.0.0. It would be better to make them identical.

Ok

/merge


common signing interface + ed25519 dependency change

Changes:

Replaced ed25519-dalek with ed25519-consensus to resolve #753 .
~Added secp256k1 support to resolve #162~ moved to #914
Added common signing interface to resolve #225 .
Removed old rand dependency.

depends on #889

pls update wasm

pls update wasm

I'm gonna fix the clippy error I introduced from the split then merge this part

merged manually


Object reference not set to an instance of an object

I tried to send a signed message with attachment.  All columns are less than or equal to 68 characters wide, so I'm surprised to see a "long lines" warning dialog.  I choose the "sign anyway" option and I get the attached error.

Reinstalling of the lastest version solved that issue for me.
Diese Nachricht wurde mobil versendet und ist daher recht kurz gehalten.

Am 14.09.2015 um 13:13 schrieb Iris Ward<EMAIL_ADDRESS>I tried to send a signed message with attachment. All columns are less than or equal to 68 characters wide, so I'm surprised to see a "long lines" warning dialog. I choose the "sign anyway" option and I get the attached error.
—
Reply to this email directly or view it on GitHub.

Huh, reinstalling did the trick.  I wonder what happened that made that necessary.  I'll shout if it happens again; thanks :)


Allow disk-based persistence to be completely disabled

PR Branch Destination
This adds a new --inMemoryStorage option which allows the disk-based extent storage to become memory based and the LokiJS persistence settings to use only memory.
I'm happy to break this up into smaller PRs if you'd like.
This addresses the following feature request (also by me): https://github.com/Azure/Azurite/issues/2227
Summary of changes:

Add design spec for this feature. I added a new docs structure mimicking how we do public specs on NuGet team.
Introduce --inMemoryStorage option and plumb it through the code
Add MemoryExtentStore as an alternative to FSExtentStore
Fix some flaky tests (flaky prior to my change, judging by the AzDO CI build history)
Refactor QueueServer and TableServer creation to a test factory, allowing centralized configuration.
Add steps to the ADO build pipeline to run all tests with --inMemoryStorage right after disk-based.

Always Add Test Cases
All test cases (except 1) work with the --inMemoryPersistence option. The one test failing is skipped for --inMemoryPersistence. It makes sense that it fails because it requires reading a checked-in legacy LokiJS disk persistence.
Design spec
The render design spec is avalable here: https://github.com/joelverhagen/Azurite/blob/in-memory/docs/designs/2023-10-in-memory-persistence.md
For comments, it's available along with the rest of the PR here:
https://github.com/Azure/Azurite/pull/2228/files#diff-638244b70a10f551a0a6a66d691f8d88cf555fa0b9da1710e3d3bac119c05c39
Performance

Method
Mean
Error
StdDev

InMemory_Blob
1,860.0 us
25.45 us
21.25 us

InMemory_Queue
1,562.3 us
26.89 us
25.15 us

InMemory_Table
975.7 us
8.65 us
7.23 us

Disk_Blob
5,505.8 us
91.37 us
89.74 us

Disk_Queue
5,327.1 us
104.47 us
111.78 us

Disk_Table
963.6 us
11.34 us
9.47 us

Unsurprisingly, blob and queue are much faster without writing extents to disk.

@joelverhagen
Thanks for the contribution!
Would you please share the reason for this change?
In which scenario we would like to have data cached in memory instead of disk?
And Azurite not only support saving data in disk, Azurite also allows save blob metadata in SQL, will the change also disable save data in SQL? (IF so, the parameter name/description might need change)
Besides that, have you tested all APIs of all services (B/T/Q) works with this change? If we plan to add this, we should have this kind of test environment covered in pipeline https://github.com/Azure/Azurite/blob/main/azure-pipelines.yml
And is there any limitation (like blob size) for the change? If so, we should mention it in the Readme.md file.
And could you share how Azurite will handle it when out of memory in this case, what's the typical error?

Would you please share the reason for this change?

This is intended for CI testing scenarios where Azurite is started at the beginning of the pipeline, some tests are run, and then the CI pipeline ends.
Generally, I find myself using Azurite for cases where the I don't care much if the storage is lost or, if even annoys me to have to clean up leftover storage containers. Today, in my project NuGet/Insights (which I've used as a general test for Azurite as a side-goal) I have a step that cleans up containers, queues, and tables based on a test name convention. This is workable, and necessary for a test with real Azure Storage, but for CI pipelines it would be nice just to stop the node process and know all clean-up is done.
https://github.com/NuGet/Insights/blob/5d0b5ed62a71b10d93d77f5135b4876a1b1bf4dc/test/Worker.Logic.Test/TestSupport/TestDataTest.cs#L87-L114
Additionally, I've found that some of my tests run surprisingly slow and found that it was related to how queue messages are persisted in Azurite. A disk write is done per enqueue and dequeue which means there's a lot more IO than if LokiJS was used to persist message content, as Loki only writes periodically -- and this is noticeable with the current perf difference between Table and Queue write-then-read flows.

In which scenario we would like to have data cached in memory instead of disk?

In short, CI runs where we start Azurite, run tests, then (optionally) stop Azurite.

And Azurite not only support saving data in disk, Azurite also allows save blob metadata in SQL, will the change also disable save data in SQL? (IF so, the parameter name/description might need change)

It should still work. It does allow --inMemoryPersistence to work with SQL, where extent metadata is stored in SQL and the extents themselves are stored in memory. A weird combination for sure but the previous mode should work fine just by not specifying --inMemoryPersistence. From what I can tell, the FSExtentStore is used for SQL which also is a bit strange to me. It's essentially local extent storage and remote metadata storage. Anyways, happy to adjust the behavior however you'd like.

Besides that, have you tested all APIs of all services (B/T/Q) works with this change?

Yes, I did some test hacks to run all the tests I could with this change, but I'm not sure exactly how you'd like to get full coverage. Should we run all tests with and without the --inMemoryPersistence flag? That would double the number of tests but get very good coverage. Or we could run a subset with --inMemoryPersistence? Some representative subset? Happy to follow a suggestion here or I can give it a try on my own.

Besides that, have you tested all APIs of all services (B/T/Q) works with this change? If we plan to add this, we should have this kind of test environment covered in pipeline https://github.com/Azure/Azurite/blob/main/azure-pipelines.yml

Great idea! I'll give that a try.  Maybe this addresses the previous point.

And is there any limitation (like blob size) for the change? If so, we should mention it in the Readme.md file.

I'll take this as a TODO. It's certainly related to the amount of memory available to the node process.

And could you share how Azurite will handle it when out of memory in this case, what's the typical error?

I'll take this as a TODO. I am not sure how node operates when it's low on memory. My guess is big allocs can fail and trigger GC and some severe memory shortage would cause the process to crash.

And could you share how Azurite will handle it when out of memory in this case, what's the typical error?

I'll take this as a TODO. I am not sure how node operates when it's low on memory. My guess is big allocs can fail and trigger GC and some severe memory shortage would cause the process to crash.

I did testing. The approach is surprisingly scalable. When physical memory is consumed, virtual memory is provided by the OS. I was not able to get any "out of memory" errors. I included a screenshot in the design doc.

@joelverhagen
Thanks for the contribution!
We might will need some time to review/test the code change and the doc.
Will update you later.

Great, thanks @blueww! Let me know if there's any updates I should make or questions I can answer. I'm happy to jump on a Teams call too if you think that will help ease communication.

Hi @joelverhagen,
I have done some sanity check with the PR:

I try to upload multiple 3GB blobs to Azurite run with "Azurite --inMemoryPersistence"

My machine is Windows 10 with 32GB memory with ~46GB virtual memory.
There are no OOM on my machine after I uploaded 16 * 3GB blob, when I upload the 17th 3GB blob, following error happens and Azurite exists. The behavior should changes between difference OS.
It might not be good to eat almost all memory. Should we provide a way to limit the memory usage in this case (like 1/2 of current available memory + virtual memory).

<--- Last few GCs --->

[49684:00000229E11C69C0]   456817 ms: Mark-sweep (reduce) 195.0 (242.0) -> 195.0 (209.5) MB, 123.2 / 0.0 ms  (average mu = 0.033, current mu = 0.025) external memory pressure; GC in old space requested
[49684:00000229E11C69C0]   456893 ms: Mark-sweep (reduce) 195.0 (209.5) -> 195.0 (208.5) MB, 75.7 / 0.0 ms  (average mu = 0.019, current mu = 0.000) external memory pressure; GC in old space requested

<--- JS stacktrace --->

FATAL ERROR: Committing semi space failed. Allocation failed - JavaScript heap out of memory
 1: 00007FF6F8A4D51F node_api_throw_syntax_error+175743
 2: 00007FF6F89D2E66 v8::internal::wasm::WasmCode::safepoint_table_offset+59654
 3: 00007FF6F89D4B72 v8::internal::wasm::WasmCode::safepoint_table_offset+67090
 4: 00007FF6F947AAB4 v8::Isolate::ReportExternalAllocationLimitReached+116
 5: 00007FF6F9465E12 v8::Isolate::Exit+674
 6: 00007FF6F92E7C6C v8::internal::EmbedderStackStateScope::ExplicitScopeForTesting+124
 7: 00007FF6F92F20CC v8::internal::Heap::PageFlagsAreConsistent+3612
 8: 00007FF6F92E4707 v8::internal::Heap::CollectGarbage+2039
 9: 00007FF6F92FB0C3 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath+2099
10: 00007FF6F92FB96D v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath+93
11: 00007FF6F930B1A3 v8::internal::Factory::NewFillerObject+851
12: 00007FF6F8FFC285 v8::internal::DateCache::Weekday+1349
13: 00007FF6F9518051 v8::internal::SetupIsolateDelegate::SetupHeap+558193
14: 00007FF6F94CEA38 v8::internal::SetupIsolateDelegate::SetupHeap+257624
15: 00007FF67977349A

After uploaded 11*3GB blobs , when Azurite exist (with ctrl+c), it use > 2 minutes to release all used memory and exist. Could we accelerate this? Or at least should mention it in doc to make everyone know about that. And not sure will any bad thing happen when kill Azurite before it's full exist.

The debug log (run with "--debug") looks disappear when run Azurite with "Azurite --inMemoryPersistence --debug debug.log" the debug log won't be generated in the current folder.

Without "--inMemoryPersistence" the debug log will be generated in current folder.
If specify full path of the debug log, the debug log will also be generated like "--debug c:\temp\debug.log"

To keep data alignment, we should not allow user to start Azurite with saving metadata to SQL (when environment variable "AZURITE_DB" is set) or specify the location parameter ("--location" or "-l").

Great feedback, thank you!

It might not be good to eat almost all memory. Should we provide a way to limit the memory usage in this case (like 1/2 of current available memory + virtual memory).

I see os.totalmem() and os.freemem() available in the Node.js runtime. I don't see any way to probe the amount of virtual memory available. What do you think about adding a --extentMemoryLimit <bytes> option that allows the MemoryExtentStore to be limited in size? I don't see a way to limit the LokiJS persistence and now that I think about it any high memory usage of LokiJS would already be happening today.
If this option is left unspecified, it can dynamically limit the storage to say 50% of the currently available memory by querying os.freemem(). This would be lower than the allowance including virtual memory but perhaps that's fine in order to keep this simple.

After uploaded 11*3GB blobs , when Azurite exist (with ctrl+c), it use > 2 minutes to release all used memory and exist. Could we accelerate this?

I faced the same. For my case, I believe it was due to the OS releasing memory even after the process was terminated. Because the process was terminated already and the memory releasing was still happening, I wasn't able to find a way to speed this up. Perhaps this will be less of concern if --extentMemoryLimit is implemented.
If you are seeing the release happen prior to the process completion, then perhaps we would improve the performance by concatenating the buffers provided to the memory extent store (in order to reduce the number of total buffers to release) but I feel that it's better to reduce copying memory for runtime performance and reducing the need for contiguous memory instead of optimizing for the speed to release memory at process end (which I generally imagine is a non-goal or at least low priority goal compared to other performance measures -- correct me if I am wrong).

The debug log (run with "--debug") looks disappear when run Azurite with "Azurite --inMemoryPersistence --debug debug.log" the debug log won't be generated in the current folder.

I wasn't able to reproduce this problem. I ran npm run azurite -- --inMemoryPersistence --debug debug.log and the debug.log appeared just fine.

To keep data alignment, we should not allow user to start Azurite with saving metadata to SQL (when environment variable "AZURITE_DB" is set) or specify the location parameter ("--location" or "-l"), or at least omit the sql and location with a warning message.

Could you explain again what you mean here? Are you saying we shouldn't allow the combination of SQL metadata persistence and --inMemoryStorage? I'm totally fine with that, if I'm understanding you properly.

Great feedback, thank you!

It might not be good to eat almost all memory. Should we provide a way to limit the memory usage in this case (like 1/2 of current available memory + virtual memory).

I see os.totalmem() and os.freemem() available in the Node.js runtime. I don't see any way to probe the amount of virtual memory available. What do you think about adding a --extentMemoryLimit <bytes> option that allows the MemoryExtentStore to be limited in size? I don't see a way to limit the LokiJS persistence and now that I think about it any high memory usage of LokiJS would already be happening today.
If this option is left unspecified, it can dynamically limit the storage to say 50% of the currently available memory by querying os.freemem(). This would be lower than the allowance including virtual memory but perhaps that's fine in order to keep this simple.

I agree. And we should have good doc and API responds when memory is eat up. Like all write request will return failure with an error message to indicate the memory is eat up and user can increase the limitation by some way.

After uploaded 11*3GB blobs , when Azurite exist (with ctrl+c), it use > 2 minutes to release all used memory and exist. Could we accelerate this?

I faced the same. For my case, I believe it was due to the OS releasing memory even after the process was terminated. Because the process was terminated already and the memory releasing was still happening, I wasn't able to find a way to speed this up. Perhaps this will be less of concern if --extentMemoryLimit is implemented.
If you are seeing the release happen prior to the process completion, then perhaps we would improve the performance by concatenating the buffers provided to the memory extent store (in order to reduce the number of total buffers to release) but I feel that it's better to reduce copying memory for runtime performance and reducing the need for contiguous memory instead of optimizing for the speed to release memory at process end (which I generally imagine is a non-goal or at least low priority goal compared to other performance measures -- correct me if I am wrong).

I think at least we should have good doc to indicate the behavior.

The debug log (run with "--debug") looks disappear when run Azurite with "Azurite --inMemoryPersistence --debug debug.log" the debug log won't be generated in the current folder.

I wasn't able to reproduce this problem. I ran npm run azurite -- --inMemoryPersistence --debug debug.log and the debug.log appeared just fine.

Sorry, looks I can't repro it now.

To keep data alignment, we should not allow user to start Azurite with saving metadata to SQL (when environment variable "AZURITE_DB" is set) or specify the location parameter ("--location" or "-l"), or at least omit the sql and location with a warning message.

Could you explain again what you mean here? Are you saying we shouldn't allow the combination of SQL metadata persistence and --inMemoryStorage? I'm totally fine with that, if I'm understanding you properly.

The blob content/metadata will be saved in current folder by default, and when location parameter ("--location" or "-l") is specified, will be saved in the location folder, when environment variable "AZURITE_DB" is set, blob meta data (not content) will be saved in SQL.
So when specify "--inMemoryPersistence":

location parameter will have not use, we should report warning for the parameter is not used and continue running. (or report error and stop running?)
When environment variable "AZURITE_DB" is set, will be blob meta data be saved to SQL, and blob content still in memory? IF so, in restart Azurite then blob metadata and blob content data will be not aligned. So we should block user from use both SQL and "--inMemoryPersistence" , or omit the SQL setting when user "--inMemoryPersistence" with a warning.
Feel free to let me know if you still have any concern/ question.

Besides that, our team will do more review/test with the PR, so more comments might will be added later.
One important thing is, the code change should not make any regression, which means when "--inMemoryPersistence" is not specified, Azurite behavior should not have any change from before in any case.

I agree. And we should have good doc and API responds when memory is eat up. Like all write request will return failure with an error message to indicate the memory is eat up and user can increase the limitation by some way.

Done.

I think at least we should have good doc to indicate the behavior.

Updated the README section that documents the option to mention this.

location parameter will have no use, we should report warning for the parameter is not used and continue running. (or report error and stop running?)

Made it error out. --location + --inMemoryPersistence causes an error. --extentMemoryLimit without --inMemoryPersistence causes an error.

We might can just omit the SQL setting with a warning (Or report error and stop running?).

AZURITE_DB + --inMemoryPersistence causes an error.

One important thing is, the code change should not make any regression, which means when "--inMemoryPersistence" is not specified, Azurite behavior should not have any change from before .

This was my goal. The UTs still pass without any changes and in-memory persistence disabled and I did a test of a bunch of manual scenarios with the CLI and VS Code extension and this appears to be the case.

Hey @blueww! I believe I have addressed all of your comments. Please let me know if more is needed 😃

@joelverhagen
I have tested repeated upload and delete blobs with Azurite run with "--inMemoryPersistence". But the test result is not expected, it looks the deleted blob won't be clear up from memory. Would you please help to look?
Test Scenario:
Upload 100MB * 10 blobs, then delete all 10 blobs. Then upload 100MB* 10 blobs again, and delete them again. ...
I tried to repeat 1000 times, but failed after ~15 times.
Test Result:
After upload/delete 100MB*10 blobs for ~15 times, will meet following error :
Set-AzStorageBlobContent : Cannot add an extent chunk to the in-memory store. Size limit of<PHONE_NUMBER>0 bytes will be exceeded HTTP Status Code: 409 - HTTP Error Message: Cannot add an extent chunk to the in-memory store. Size limit of<PHONE_NUMBER>0 bytes will be exceeded
ErrorCode: MemoryExtentStoreAtSizeLimit
ErrorMessage: Cannot add an extent chunk to the in-memory store. Size limit of<PHONE_NUMBER>0 bytes will be exceeded
RequestId:53834723-e10f-48f9-aa9d-35330109a991
Time:2023-11-13T08:33:50.957Z
At line:6 char:9
+         Set-AzStorageBlobContent -Container $containerName -Blob "tes ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzStorageBlobContent], StorageException
    + FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.Blob.SetAzureBlobContentCommand

The memory usage chart (I wait > 15 minutes after error happen) :

For you reference, my test script:
I run it from Powershell, need first install Az.Storage module.
$ctx = New-AzStorageContext -ConnectionString "AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://<IP_ADDRESS>:10000/devstoreaccount1;QueueEndpoint=http://<IP_ADDRESS>:10001/devstoreaccount1;TableEndpoint=http://<IP_ADDRESS>:10002/devstoreaccount1;"

$containerName = "test"
New-AzStorageContainer -Name $containerName -Context $ctx

for ($i =0 ; $i -le 1000; $i++ )
{
    Echo "create Blobs"
    for ($j=0 ; $j -le 10; $j++)
    {
        Set-AzStorageBlobContent -Container $containerName -Blob "testblob_$($i)_$($j)" -File C:\temp\testfile_102400K_0 -Context $ctx -Force | ft
    }
    echo "Delete blobs"
    for ($j=0 ; $j -le 10; $j++)
    {
        Remove-AzStorageBlob -Container $containerName -Blob "testblob_$($i)_$($j)"  -Context $ctx -PassThru -Force | ft
    }
}

@blueww - the default blob GC is 10 minutes (https://github.com/Azure/Azurite/blob/49d1065952306c25ce76f84e041cd1acd2e951ac/src/blob/utils/constants.ts#L21). From your memory chart, I see growth in memory only 3-4 minutes after the process start. It is expected to face this error if you have met the limit before the BlobGCManager runs. If you were to attempt the upload after 10 minutes from process start, you should see success. I see a spike in CPU right around the 10 minute mark so I'm guessing the blob GC actually happened but your uploads did not continue after you faced an error (~3-4 minute mark).
Regarding the memory consumption, I wasn't able to reproduce this behavior. I changed the GC period to 5 minutes to ease testing and set an extent limit of 5 GB.

(I am not sure what tool you used, but it looks like a visualization of system perf counters)
A debug log will shed light on this. You'll want to look for a line like this:
info: BlobGCManager:markSweep() Deleted unreferenced 650 extents, after excluding active write extents.

It's possible that Node isn't releasing the memory even after the blob GC occurs. I am not an expert in Node.js GC but after a bit of reading it seems like it could be related to the default max-old-space-size value selected on your machine. It seems Node.js won't perform some of the more expensive GC steps if the current memory consumption is lower than this threshold which may explain the behavior you're seeing. The part of the code that is impacted by this PR is the integration with the blob and the queue GC. If you see the markSweep log line similar to the above, then it's working as I designed it. That being said, if you provide a debug log it might help me understand what you're seeing.
A way you could run a similar test for the existing disk-based persistence. I tried with a ramdisk on Ubuntu WSL (steps: https://askubuntu.com/a/453755) and similarly encountered failures (HTTP 500 not 409 of course) at my 5 GB ramdisk limit. However in that case the blob GC didn't find any extents at all. I tried many versions of Azurite (historical tags like v3.10.0 with the same condition:
info: BlobGCManager:markSweep() Got 0 extents.

So an alternate explanation is that there is an existing bug in the blob GC manager that you encountered. But we need a debug log to know.

@joelverhagen
Thanks for the investigation!
I use the tool Perfmon to show the chart of memory/cpu.
I have tested following 3 scenario, and this time looks GC works in all scenarios:
Scenario 1

upload 100*100MB blobs, them delete them
Wait for 10 minutes
repeated step 1, step 2.

Scenario 2

Upload 200*100MB blobs (after upload ~150 blobs will get OOM error) and delete them,
wait 10 minutes
repeated step 1, step 2.

Scenario 3

Upload 10*100MB blobs  and delete them,
Repeat step 1 for 20 times (after repeat 15 times will get OOM error)
wait 1000 seconds
repeated step 1~3.
We can see the "Private Bytes" won't drop immediately after GC, this is different from other 2 scenarios. But it will drop in the begin of next round blob upload.

Besides that, to avoid customer issues like why deleted blob content still occupy memory, do you think we should mention how GC works in Readme.md section "Use in-memory storage"?

Sure, I'll do that.

We can see the "Private Bytes" won't drop immediately after GC, this is different from other 2 scenarios. But it will drop in the begin of next round blob upload.

Generally I've seen this behavior in several GC'd runtimes. In my head it's basically "GC sometimes does the hard work only when memory pressure is faced" (i.e. lazily) -- which is when the next round of blobs come in for this case. But this I my gut check and not specific expertise on the Node GC.

@joelverhagen
Thanks for the quick update!
I will do some final review, and should can merge this PR soon.

Fixes #1331
Fixes #1332


Backend returned status 4 (stop printer)

Hello! First off, thanks for all the efforts in maintaining this project.
I'm using 3 instances of CUPS (v2.2.7) running on Ubuntu (v18.04) to send print jobs to a group of printers (~24 printers). Infrequently (every 800? jobs), I'm seeing that the printer will be paused in CUPS and all further requests to print will just queue up. All queued jobs will print successfully once I resume the printer in CUPS.
I enabled debug logging and waited until it happened, and noticed that 2 of the instances reported the printer was paused. I grabbed the logs from both, and found the logs describing the issue:
D [07/Feb/2020:22:17:05 +0000] [Job 15] final_content_type=\"application/pdf\", document_format=\"application/pdf\"
D [07/Feb/2020:22:17:05 +0000] [Job 15] Validate-Job IPP/2.0
D [07/Feb/2020:22:17:05 +0000] [Job 15] printer-uri=\"ipp://<IP_ADDRESS>:631/\"
D [07/Feb/2020:22:17:05 +0000] [Job 15] requesting-user-name=\"root\"
D [07/Feb/2020:22:17:05 +0000] [Job 15] job-name=\"<redacted>.pdf\"
D [07/Feb/2020:22:17:05 +0000] [Job 15] document-format=\"application/pdf\"
D [07/Feb/2020:22:17:05 +0000] [Job 15] Adding standard IPP operation/job attributes.

I [07/Feb/2020:22:17:05 +0000] [Job 15] Backend returned status 4 (stop printer)
D [07/Feb/2020:22:17:05 +0000] Discarding unused job-state-changed event...
I [07/Feb/2020:22:17:05 +0000] [Job 15] Printer stopped due to backend errors; please consult the error_log file for details.

While similar to https://github.com/apple/cups/issues/5578, the difference here is that in this case it appears that the Validate-Job IPP command completes successfully. Any idea why the backend is existing with status 4 if the Validate-Job seems to be completing successfully? Do you still think that it is network related (dropped packets, etc)?
Any ideas on how to remedy this issue, or at least prevent the printer from being paused? I have tried setting the ErrorPolicy to retry-job in cupsd.conf, but it doesn't seem to be respected.
One additional piece of info - I'm programatically deleting the file that I issue the print command with after CUPS lp command exits successfully. Will the file be fully read and passed to the printer prior to CUPS lp returning successfully, or could that be a potential issue?

@kiambogo No, the file from lp is copied to the spool directory, so it is 100% safe to delete afterwards.
The Validate-Job request is failing on the printer with a status that says "this printer is broken". We are looking at alternatives for this sort of situation over in the OpenPrinting CUPS project - see issue #111 and add your comments so we can improve things...


Support referring to distributed slices declared in sub-modules

As far as I can tell, if a distributed slice is declared anywhere beside the crate root, the element macro can't be used from any other scope.
Here's a simple example, adapted from the distributed_slice test:
mod declaration {
    use linkme::distributed_slice;

    #[distributed_slice]
    pub static SLICE: [i32] = [..];
}

mod usage {
    use linkme::distributed_slice;

    #[distributed_slice(crate::declaration::SLICE)]
    pub static N: i32 = 9;
}

mod alt_usage {
    use linkme::distributed_slice;

    use crate::declaration::SLICE;

    #[distributed_slice(SLICE)]
    pub static N: i32 = 9;
}

Both usage and alt_usage fail to compile:
$ cargo test
   Compiling linkmetest v0.1.0 (/home/daboross/linkmetest)
error[E0433]: failed to resolve: could not find `SLICE` in `declaration`
  --> src/main.rs:11:45
   |
11 |     #[distributed_slice(crate::declaration::SLICE)]
   |                                             ^^^^^ could not find `SLICE` in `declaration`

error: cannot find macro `SLICE!` in this scope
  --> src/main.rs:20:25
   |
20 |     #[distributed_slice(SLICE)]
   |                         ^^^^^
   |
   = help: have you added the `#[macro_use]` on the module/import?

warning: unused import: `crate::declaration::SLICE`
  --> src/main.rs:18:9
   |
18 |     use crate::declaration::SLICE;
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0433`.
error: Could not compile `linkmetest`.

To learn more, run the command again with --verbose.

I'm assuming this case simply isn't supported. But since this seems potentially quite useful, I'm opening this issue to track it.

I believe the cause for this is the usage of macro_rules! macros, and the fact that when exported using #[macro_export], they're always exported from the crate root, regardless of the module they're declared in. This works as long as the static is also exported from the crate root, but as soon as it's declared in a sub-module, it's hard to make this work.

Small note:
This does work if you use both crate::SLICE (the macro) and crate::declaration::SLICE (the static). Which is kind of hard to do unless usage and declaration happen to be in different crates, because referring to a macro_export by path in the same crate is difficult? But you can make it work, like say...
mod declaration {
    #[macro_use]
    mod scope {
        #[linkme::distributed_slice]
        pub static SLICE: [i32] = [..];
    }

    pub use scope::*;
    pub use SLICE;
}

mod usage {
    #[linkme::distributed_slice(crate::declaration::SLICE)]
    pub static N: i32 = 9;
}

We should fix #[distributed_slice] to generate the right reexports like that. Want to send a PR?

Hey, really appreciate that all of you took the time to figure this out and implement a fix :bowing_man:.
Also very grateful to @dtolnay for:

Authoring so many crates that do difficult things
So much effort is put into ergonomics (usage, errors) and documentation, in every crate
Responding so quickly across many repos


Make aggregations parallel SAFE

In order for postgres to execute parallel execution plan, the aggregation function needs to be marked as SAFE.
Reading this documentation it requires the function to specify a combiner:
https://www.postgresql.org/docs/current/sql-createaggregate.html#:~:text=An aggregate can optionally support partial,PARALLEL SAFE to enable parallel aggregation.
Would be nice if this extension can support that!

I will look into this.

fixed by #63

@andyndang The change is in the master. Would you be willing to try this before the next release?

@andyndang 1.6.0-rc1 release candidate is out there. The vote is open. You are welcome to participate.

Full release notes are available here: https://github.com/apache/datasketches-postgresql/releases/tag/1.6.0


TSX to JSX, Vue support

Hello there, I've been looking for a TS to JS transpiler and found this one that looks fast, well-made, and feature-full.
I want to transpile files from TSX to JSX, as well as from TypeScript Vue files into JavaScript Vue files. Vue seems too specific for this project, I might try to hack around with it with SWC4J anyway, but my main concern is for JSX.
Would you be interested in an option for the transpiler to choose the target language? I'd love to de-type my files without modifying them all the way down to JS.
On a side note, is there a way to get the file extension from a Swc4jMediaType? Can setSpecifier automatically compute the file name if not provided?

Hi @WarningImHack3r ,
I think it's possible to write a plugin for Vue 3. I don't think hacking swc4j will help because the transpile() comes directly from swc. The recommended approach is to write swc4j plugins in Java. There are tutorials about how to write plugins.
Regarding the target language, if you call transpile(), you will always get JS code.  Swc4j doesn't set restrictions at all. It's up to the applications to make the decision. Of course, it would be great if you could create a generic plugin that transforms TSX to JSX. I would suggest you submit pull requests so that the community could benefit from the work. Or, if you want me to do so, please ping me at discord.
Regarding the file type detection, I think it's quite easy and highly customizable so that the freedom should be given to the applications.
Hope these make sense. Please let me know if you have any questions.

First off, thanks for your quick and comprehensive response!

I think it's possible to write a plugin for Vue 3. [...] There are tutorials about how to write plugins.

Oh yes indeed, I didn't see that in the documentation. I went straight to Transpile without looking at the other options. I'll take a look now.

Regarding the target language, if you call transpile(), you will always get JS code.  Swc4j doesn't set restrictions at all. It's up to the applications to make the decision.

Can you point me to an example of this? The transform() docs only mention ECMAScript targets, not language targets

Of course, it would be great if you could create a generic plugin that transforms TSX to JSX. I would suggest you submit pull requests so that the community could benefit from the work.

Yes of course. For both Vue and JSX, if I come to make a plugin for it, it will be open source and available on GitHub.

Or, if you want me to do so, please ping me at discord.

I can't bother you with that unless you know it will take you 5 minutes :D

Regarding the file type detection, I think it's quite easy and highly customizable so that the freedom should be given to the applications.

Yeah that's what I currently did, just wondering if it could be built-in as the table describing the bindings is in the docs

Hope these make sense. Please let me know if you have any questions.

Thanks for that!

Can you point me to an example of this? The transform() docs only mention ECMAScript targets, not language targets

There are tutorials for transform() as well. Regarding plugins, they apply to parse(), transform(), transpile() the same way so that any tutorials are worth reading.

Yes of course. For both Vue and JSX, if I come to make a plugin for it, it will be open source and available on GitHub.

Thank you in advance. I look forward to the pull requests.

I can't bother you with that unless you know it will take you 5 minutes :D

I think that (code + test + doc) would take at least a week to reach production quality.

Yeah that's what I currently did, just wondering if it could be built-in as the table describing the bindings is in the docs

If it's generic enough, why not also contribute it to the community?

There are tutorials for transform() as well. Regarding plugins, they apply to parse(), transform(), transpile() the same way so that any tutorials are worth reading. transform() just directly converts the transformed AST (by plugins) to code. If the AST has TypeScript annotation, the code is TypeScript. If the AST has JSX Elements, the code is JSX. It's plugins' decisions at all. The ES target is just a hint for swc on how to convert the AST to code for backward compatibility.

So that means that if I change the AST's language through PluginHost.process() it will change the target language? If so, how can I change the AST language?

I think that (code + test + doc) would take at least a week to reach production quality.

Fair enough, I can't ask you to do it then :D

If it's generic enough, why not also contribute it to the community?

It's in Kotlin (not Java) and I don't know if you want it in your codebase, that's why I quickly did it myself. If you want it I can make these toString()s for all enums no problem

So that means that if I change the AST's language through PluginHost.process() it will change the target language? If so, how can I change the AST language?

In transform(), there is no concept called target language. It just directly casts AST to code. You put a TsTypeAnn number after an Ident a, you get let a: number. That's TS. If you remove that TsTypeAnn, you get let a. That's JS.

It's in Kotlin

That's fine. swc4j is written in Java 8 for maximum compatibility so that it cannot take any Kotlin code. I wonder if you could post the Kotlin code here later, and I would rewrite it in Java. Thank you.

In transform(), there is no concept called target language. It just directly casts AST to code. You put a TsTypeAnn number after an Ident a, you get let a: number. That's TS. If you remove that TsTypeAnn, you get let a. That's JS.

I see, that's clever!! I'm going to try this out (and probably make a PR to clarify the docs on that point)

I wonder if you could post the Kotlin code here later, and I would rewrite it in Java.

Don't worry, I'm going to do it myself and push a PR for that
Thanks for your help overall!


Refs 645: use only runAsUser

Summary
I think that runAsNonroot is not needed (and may conflict)  if we specify runAsUser
Testing steps

closing in favor of https://github.com/content-services/content-sources-backend/pull/374


add doc for DENO_NO_PROMPT

https://github.com/denoland/deno/pull/14209

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

Thanks!

We shouldn't have landed this PR yet, the PR in deno repository hasn't been merged yet.

Oh, sorry. Will revert


chore(service): Sort service methods in alphabetical order

@kahboom do we want to sort all methods (static/non-static) in alphabetical order like this?

Nah it's fair preference, and the originator has to be on first priority to set the preference :)


Add border to layout model and use it in Flexbox example notebook

As discussed with @jdfreder and @ellisonbg.

:+1:


fix: Bug where header menu did not appear after switching

What does this pull request change?
Fixes bug where one can not select application again after switching.
Did this by changing from eds.Menu to eds.Popover.
Looks a bit different now.

Why is this pull request needed?
Issues related to this change
#771

I whipped up slight tweak to your popover, just some style changes. have a look :+1:
#777

I whipped up slight tweak to your popover, just some style changes. have a look 👍
#777

😄

Perhaps should we make the highlight color the same as rest of plugins do? More the light green and gray for consistency?
And would a border around the popover be nice in order to separate it from the rest of the content?

@pbullhove actually, we should probably wrap the button text in a <Typography> tag, which will give it the same style as other texts used in the app.

@henrikbossart
Okay, nice, thanks for the Typography tip.
I'll fix the tests, and push the newest changes for you to review after.


Yvette Colomb: Watch dogsnaturallymagazine.com

Yvette Colomb requests the watch of the watch_keyword dogsnaturallymagazine.com. See the Metasmoke search here

!!/approve


samples/manager wont work when serviceAccount option specified

Environment details

OS: Windows 10 Enterprise (10.0.18363)
Node.js version: 12.16.2
npm version: 6.14.4
@google-cloud/iot version: "^2.0.0" from master

Steps to reproduce

go to samples/manager
npm install
execute
node manager.js listDevices devices -p PROJECT -c REGION -s PATH-TO/credentials.json

(node:9576) UnhandledPromiseRejectionWarning: Error: 400 undefined: Getting metadata from plugin failed with error: invalid_grant
    at Object.callErrorFromStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\call.js:30:26)
    at Object.onReceiveStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\client.js:175:52)
    at Object.onReceiveStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:341:141)
    at Object.onReceiveStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:304:181)
    at Http2CallStream.outputStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\call-stream.js:116:74)
    at Http2CallStream.maybeOutputStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\call-stream.js:155:22)
    at Http2CallStream.endCall (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\call-stream.js:141:18)
    at Http2CallStream.cancelWithStatus (c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\call-stream.js:450:14)
    at c:\project\nodejs-iot-master\samples\manager\node_modules\@grpc\grpc-js\build\src\channel.js:225:36
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

Works only when GOOGLE_APPLICATION_CREDENTIALS environment variable is set to the same path.

I've confirmed this, when the samples were migrated to the new client library, the code for setting the client library up with a parametrized path was disconnected.
I think the right resolution here is to remove the parameter and require the path be set in an environment variable to match default application credentials for Cloud authentication.
If you're needing a quick work-around for the examples CLI, replace getClient with:
const getClient = async serviceAccountJson => {
  // the getClient method looks for the GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS
  // environment variables if serviceAccountJson is not passed in
  const iotClient = new iot.v1.DeviceManagerClient({
    keyFilename: serviceAccountJson
  });
  return iotClient;
};

Then in the functions, replace the newClient code with:
  const newClient = (client != null) ? client :
      new iot.v1.DeviceManagerClient({ /* optional auth parameters. */ });

I'll consider updating the samples, the challenge is that there's some complex code used for testing that would require a refactor if we changed the return type of getClient.

It looks like there's an acceptable solution to the problem identified here, and we're no longer making updates to the nodejs IoT samples for bugs with priority 2.


New Djrill admin

A client asked me a feature: to see the message sent-status in the django admin.  It was great to see this feature in Drill.
Logging into Mandrill to look up a message status is not ideal. Definitely not for a client. Mandirll also keeps messages only for 30 or 90 days.
I've found no existing django solution yet. Django mailer and django-mailer2 don't do it. Djrill showing me was great. Alas, the interface is not showing me message contents, and soon it will be removed in 2.0.
There were good reasons for removing the Djrill admin site. But there's also good reason for adding a new lightweight one.
How would it be possible to add a lightweight admin that shows a list of messages sent?
Requirements:

Lightweight. No django admin changing and major dependency issues. Based on Mandrill api calls. Django mailer uses a cron job for regular interval tasks, that might be option.
Table with messages with mandrill sent-status, ordered by sent-date. Clickeable to show message content.
Try-catch statements in case Mandrill/connection is down.

I'm willing to contribute

Djrill's current admin simply calls existing Mandrill APIs and then formats the JSON results in a nice web page, inside Django's admin site. Djrill is definitely not keeping track of sent messages or their status on its own.
It would be pretty straightforward to copy Djrill's admin into your own app, and add a view for message status as reported by Mandrill (e.g., using their messages/search API). That's about as lightweight as it gets, but I'm not sure it meets your other requirements.
If you want to keep track of all of the messages ever sent (beyond the 30-90 days that Mandrill maintains), you'd need to add Django models to store the message information in the database. I feel that's beyond the scope of Djrill, which is meant to be a relatively thin translation layer between the Django and Mandrill email APIs.
But django-mailer already does a lot of this -- it keeps track of all messages sent using any Django email backend (including Djrill), as models in your database. It wraps the backend send in a try/catch, so that it can retry sends that didn't go through the first time. You can view the message log in Django admin -- including whether each message was successfully handed off to Mandrill.
I've been using django-mailer together with Djrill for a few years now, and (with minor wrinkles) it seems to work fine. What it doesn't do is keep track of the Mandrill message-id for sent emails, so there's no way to look up a message's detailed status, open and clickthrough, etc. in Mandrill.
You might consider building on django-mailer to add the functionality you need: add a model to keep track of the Mandrill message-id (with a OneToOneField relating it to django-mailer's MessageLog model), and a custom admin details view that displays the HTML from the original message (stored in MessageLog.message_data) and that queries Mandrill for clickthrough, etc.

I see two ways for me to achieve this:
Option 1) Extending Djrill admin with clickable message content. That's the minimum requirement. It requires an extra API call to Mandrill and change of the views.
Option 2) Extending django-mailer with a Mandrill message status. I could maybe copy some API calls from Djrill but for the rest have to do most integration myself.
Which path is best from your perspective? I'm kinda hesitating to extend django-mailer because it would fragment the package more and create another project to maintain. Mandrill is not something everyone uses (though should maybe) so It wouldn't be accepted to integrate into the main Pinax package.

I'm actually suggesting an option 3: create your own app that has exactly the features you (or your client) want, and add that to your Django INSTALLED_APPS alongside djrill (and alongside django-mailer, too, if you decide its functionality is useful for your needs).
One of the nice things about Django's architecture is it encourages mixing and matching small, focused packages (Django "apps") within your project. So you can make an app that just implements these admin features -- nothing more, nothing less.
Let's say your new app would be called "django-mandrill-admin". (Creative, I know.) And for simplicity, let's say it's just going to add an admin view that displays a list of sent messages from Mandrill's search API and lets the user click them to see details. You can always add more views later.
django-mandrill-admin doesn't really care whether or not Djrill is installed, right? It could probably use the same settings.MANDRILL_API_KEY for calling Mandrill's JSON APIs, but there's nothing in Djrill's own code you'd need. (Bonus: that means your app would work fine with Djrill 2.0, when we drop Djrill's admin views. And it would work equally well with Mandrill SMTP integration, if you choose not to use Djrill at all.)
To add arbitrary HTML views to Django's admin, you'll want something like jsocol's django-adminplus. (Djrill borrowed its admin view code from that project. There's a Django 1.8 branch under active development.) Note that django-adminplus is another Django reusable app you add to your INSTALLED_APPS and then build alongside -- you don't need to fork it or anything like that.
The sent-messages list implementation is something like this (untested code; error handling omitted):
@admin.site.register_view('mandrill_admin_sent')  # using django-adminplus
class SentMessagesView(TemplateView):
    template_name = "mandrill_admin/sent.html"

    def get_context_data(self, **kwargs):
        # Call Mandrill messages/search API, and add result to template context
        response = requests.post(
            "https://mandrillapp.com/api/1.0/messages/search.json",
            data = {"key": settings.MANDRILL_API_KEY})   # add additional params here
        context = super(SentMessagesView, self).get_context_data(**kwargs)
        context['sent_messages'] = response.json()
        return context

And your mandrill_admin/sent.html template could then iterate over sent_messages to build the list. (Here's an example from Djrill's admin -- it's a tags list, rather than message list, but you get the idea.)
Then to implement a MessageDetailView, you'd do something similar, calling Mandrill's messages/info and/or messages/content APIs.
Finally, once you come up with something you like, you could even release it as a Django reusable app. (And if you do, we'd be happy to link to it from the Djrill docs.)

Also, I got an out-of-band question about why someone might want to use both django-mailer and Djrill. The answer is, they serve different purposes. (And since they're both designed as mix-and-match Django reusable apps, it's easy to use them together.)
django-mailer solves two problems: (1) making email sending asynchronous, so that it doesn't delay responding to users' http requests, and (2) retrying email sends later if the first attempt fails. (Although Mandrill's uptime is excellent, the connectivity between my servers and Mandrill isn't always, because, internet. So catching network errors and retrying them later is important.)
Djrill solves a different problem: sending Django EmailMessages through Mandrill's API (rather than, say, through SMTP). It doesn't care how you're scheduling sending or handling error retries; Djrill's only purpose is talking to the Mandrill API.
The project where I'm using both adopted django-mailer long before we started using Mandrill. But since django-mailer works fine with Djrill, there's never been a reason to switch. A lot of people use Celery for async Django email, which also works fine with Djrill. And there's at least one other option that works with pluggable email backends.

Thanks a lot for the information and suggestions. I can take it from there to develop it


Create maintainer_nomination.md

Signed-off-by: Sysroot24<EMAIL_ADDRESS>

This doesn't appear to have any changes included, and it's not clear why we would want to delete this file.


Typo

Hi @lucasmogari,
Thank you for your contribution! We really value the time you've taken to put this together.
Before we proceed with reviewing this pull request, please sign the Typesafe Contributors License Agreement:
http://www.typesafe.com/contribute/cla

Thanks!


Add command aliases for reminder commands

#40
Changes

FilterListCommand: f l
ReminderCreateCommand: r

ReminderClearCommand: r c
ReminderDeleteCommand: r d

Codecov Report
Base: 69.88% // Head: 69.73% // Decreases project coverage by -0.14% :warning:

Coverage data is based on head (8d8a20f) compared to base (fd4ace3).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #92      +/-   ##
============================================
- Coverage     69.88%   69.73%   -0.15%
- Complexity      683      725      +42
============================================
  Files           105      107       +2
  Lines          2125     2250     +125
  Branches        245      257      +12
============================================
+ Hits           1485     1569      +84
- Misses          567      605      +38
- Partials         73       76       +3

Impacted Files
Coverage Δ

...java/seedu/address/logic/commands/HomeCommand.java
0.00% <ø> (ø)

...u/address/logic/commands/ReminderClearCommand.java
0.00% <ø> (ø)

...u/address/logic/commands/ReminderCommandGroup.java
0.00% <ø> (ø)

.../address/logic/commands/ReminderDeleteCommand.java
0.00% <ø> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
71.42% <ø> (ø)

...eedu/address/logic/parser/FilterCommandParser.java
83.72% <ø> (ø)

...dress/logic/parser/ReminderCommandGroupParser.java
0.00% <ø> (ø)

...rc/main/java/seedu/address/logic/LogicManager.java
64.10% <0.00%> (-6.74%)
:arrow_down:

...rc/main/java/seedu/address/model/ModelManager.java
67.38% <0.00%> (-0.46%)
:arrow_down:

src/main/java/seedu/address/model/Model.java
100.00% <0.00%> (ø)

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Outstanding Functionality

Description
Functionality still to be finished.
Items

[x] Hook up move song up/down in playlist
[ ] Hook up Edit song - reuse create dialog
[x] Hook up Delete song - popup confirmation dialog
[x] Hook up move to top functionality
[ ] Favorites view and side navigation hook up

Associated commits:

https://github.com/ka65359/kai-kong-music-lib/commit/ea51d95adf393e42f7eabaac7c08cdb9534b725a - Move up, down, and to top
https://github.com/ka65359/kai-kong-music-lib/commit/0157513ce224e5f62f61a24d72643ed0ff193fc5 - Basic delete functionality
https://github.com/ka65359/kai-kong-music-lib/commit/64062a32c04741013473e15db6dc743f46e5b84e - Confirmation dialog for delete


Add LABELS env variable for labels to apply when creating issues.

Add LABELS as an environment variable that you can use to configure the labels to assign when creating issues.
Fix oddly named environmental variable: GITHUB_Repo => GITHUB_REPO
Fix the double / in the README.md source field.
Signed-off-by: Ville Aikas<EMAIL_ADDRESS>

Thanks @nsmith5
Added back to double-slash. I created a label policy-failure in mono repo, and then wired that to Cloud Run.
PTAL.

@vaikas @nsmith5 this is still something we want?

@cpanato I thought I did? 🤔 This is what my local git log shows:
commit 455e30a4189ccb377e98d2f9bbcec4f49631d8bd (HEAD -> labels, origin/labels)
Author: Ville Aikas<EMAIL_ADDRESS>Date:   Tue Mar 28 08:29:09 2023 -0700

    include var.labels.

    Signed-off-by: Ville Aikas<EMAIL_ADDRESS>
commit 559d44fa3ef9c20020d5fcec91d031b35dee2fa0
Author: Ville Aikas<EMAIL_ADDRESS>Date:   Thu Aug 18 09:32:31 2022 +0300

    Address PR feedback, configure Cloud Run with policy-failure label.

    Signed-off-by: Ville Aikas<EMAIL_ADDRESS>
commit 4cbe9ec375bda46a45446caa383550f245d44d66
Author: Ville Aikas<EMAIL_ADDRESS>Date:   Mon Aug 15 11:01:18 2022 +0300

    Add LABELS env variable for labels to apply when creating issues.

    Signed-off-by: Ville Aikas<EMAIL_ADDRESS>
commit d4fb744a9654372a0b201af553518b4caebfb7a6 (upstream/main)
Author: dependabot[bot]<EMAIL_ADDRESS>Date:   Tue Mar 28 14:14:14 2023 +0200

    Bump actions/setup-go from 3.5.0 to 4.0.0 (#36)

@cpanato not sure what I did wrong there :) Ahaha, you had made some changes, checks out.


Suming lists

Find a way so that:
[1, 2, 3] + [4, 5] = [5, 7, 3]
for the AGGREGATE when variable returns list.

For now, the model returns only floats, no returning of lists is possible.


script not running - "Error: Error: osascript is not allowed assistive access."

Workflow version
2023.2
Alfred version
5.1.4 (2195)
macOS version
14.3 (23D56)
Debugger output
[07:03:16.388] Banner Be Gone[Keyword] Processing complete
[07:03:16.389] Banner Be Gone[Keyword] Passing output '' to Run Script
[07:03:16.566] ERROR: Banner Be Gone[Run Script] /Users/duran/Library/Caches/com.runningwithcrayons.Alfred/Workflow Scripts/3295EF82-BC33-420B-BE91-E1D409075EF7: execution error: Error: Error: osascript is not allowed assistive access. (-1719)
[07:03:22.362] Logging Stopped.

More details
Ran the keyword "notclear", and expected notification banner to clear, but it did not clear.
I added terminal to the accessibility privileges, but couldn't figure out where this osascript was to add it to the accessibility list.

Alfred is already part of the accessibility list, for reference

Alfred is already part of the accessibility list, for reference

Remove it and regrant permissions, because that definitely looks like one of those situations where the permissions are broken (unfortunately becoming a thing on macOS).

Appreciate the help! I'm getting the following new error now:

[22:35:56.924] Banner Be Gone[Keyword] Processing complete
[22:35:56.932] Banner Be Gone[Keyword] Passing output '' to Run Script
[22:35:57.177] ERROR: Banner Be Gone[Run Script] /Users/duran/Library/Caches/com.runningwithcrayons.Alfred/Workflow Scripts/F3F6E1DD-C76D-4B71-861D-9DB9FD14024F: execution error: Error: Error: Invalid index. (-1719)

For that one, see https://github.com/alfredapp/banner-be-gone-workflow/issues/1#issuecomment-1757290826.
I’ll also need a video.

OK, I think I got it to work! My computer was refusing to index spotlight correctly-- although I think I still have some issues indexing the "Library" folder-- so I just wiped my computer and restored it using Time Machine. I think the Data SSD was corrupted for some reason.
That being said, although the index issue still pops up for me, apparently this script works fine now. Thanks for your help.


Do you guys check your email?

Do you guys check your email?

Can you go to this channel if you expect substrate related chat?

What are other means to get into contact?

Probably go to this page: https://www.parity.io/contact/


Fix remaining unsafe string path creations

https://github.com/rapidsai/tpcx-bb/pull/80 resolved most path issues, but we still can hit this when we circumvent the scheduler and mainline API and use delayed cudf reads.

This is the root cause of #128

Closed by https://github.com/rapidsai/tpcx-bb/pull/130


CB-11153: Use encryptionKeyUrl stored in CB vault to create DES.

CB-11153: Use encryptionKeyUrl stored in CB vault to create DES.
This PR has following changes-

Validates if the encryptionKeyUrl is present in Azure cloud.
Creates the DiskEncryptionSet.

Is this a draft PR? If so, please change the type to that.

@juhi-09  Will check the thing in the afternoon. Till then, I have one comment regarding the commit message.  Currently it shows "Note: The branch name differs from the JIRA - this is done in order t… ". Could you please remove that whole comment so that the "CB-11872 Implement ..." line becomes the title?
The note regarding the different branch name must not be part of the commit message, for the commit itself will be part of multiple branches eventually (master and subsequent release branches). You can mention that instead here in the PR, that is where it makes sense.


Restructure-cli

With the introduction of a new compiler and runner for vertex, I feel the need to restructure the CLI a bit. This is a draft PR (docs and tests still need to be updated).
Running

Before

fondant run pipeline.py --local

After

Mode is not longer a positional argument, Pipeline/reference is moved to the end (similar to docker).
 fondant run local pipeline.py

Help

Before

Arguments are not isolated per mode which makes it which argument belongs to which mode (e.g. extra volumes not needed for KFP)
❯ fondant run -h
usage: fondant run [-h] (--local | --kubeflow) [--output-path OUTPUT_PATH] [--extra-volumes EXTRA_VOLUMES [EXTRA_VOLUMES ...]] [--build-arg BUILD_ARG] [--host HOST] ref

positional arguments:
  ref                   Reference to the pipeline to run, can be a path to a spec file or a module containing the pipeline instance that will be compiled first (e.g. pipeline.py)

options:
  -h, --help            show this help message and exit
  --local
  --kubeflow
  --output-path OUTPUT_PATH, -o OUTPUT_PATH
                        Output directory
  --extra-volumes EXTRA_VOLUMES [EXTRA_VOLUMES ...]
                        Extra volumes to mount in containers
  --build-arg BUILD_ARG
                        Build arguments to pass to `docker build`. Format {key}={value}.
  --host HOST           KubeFlow pipeline host url

After

❯fondant run -h

positional arguments:
  {local,kubeflow}
    local           Local runner
    kubeflow        Kubeflow runner
  ref               Reference to the pipeline to run, can be a path to a spec file or a module containing the pipeline instance that will be compiled first (e.g. pipeline.py)

options:
  -h, --help        show this help message and exit

To further deep dive
❯ fondant run local -h
usage: fondant run local [-h] [--output-path OUTPUT_PATH] [--extra-volumes EXTRA_VOLUMES [EXTRA_VOLUMES ...]] [--build-arg BUILD_ARG]

options:
  -h, --help            show this help message and exit
  --output-path OUTPUT_PATH, -o OUTPUT_PATH
                        Output path of compiled pipeline
  --extra-volumes EXTRA_VOLUMES [EXTRA_VOLUMES ...]
                        Extra volumes to mount in containers
  --build-arg BUILD_ARG
                        Build arguments for `docker build`

Ok, this looks good to me @PhilippeMoussalli.


cleanup signatures (remove heavy heartbeats)

https://microsofthealth.visualstudio.com/Health/_workitems/edit/119217

/azp run


Node transpile function is not maintaining put bodies

I'm building an api that is using a postman schema as the base. We transpile it to openapi spec to allow for an autogenerated webpage. I noticed that in the transpilation. That the Update routes have no bodies in them
There are bodies in the postman

Which don't seem to make it after the transpile.

Compared to the post routes that seem to fill out the schema after the transpiling.

My current solution is to just take the transpiled code and placing the parameters from the post route into the put routes. It's working now. So I won't really be worried about this for now.

@ScriptAlchemist For the request in Postman, make sure you're selecting "JSON" as the type, save it, and try again. Also, make sure the request doesn't have an example with an empty request body.  I don't remember if I implemented request body schema merging in that scenario.

@kevinswiber So I had one example where it was sending an empty object. On purpose because it's supposed to have it fail based on validation.
So adding in a json object seems to make it work. Thanks.
I'm not sure if that's the better solution though. Cause inside of the postman doc that I give others. It's going to have a technically incorrect example. So maybe I'll just programmatically delete it after


Changed footer section of profile and practice pages

Changed the footer section of profile and practice pages
In regards to issue #69
These are the profile and practice pages after the change :

Add copyright year 2022 after copyright symbol in all pages.

I have added the copyright year similar to the About Page. Do let me know if there are any correction/changes

All done 👍


Deleting a document from a folder does not do that.

Deleting a doc that's in a folder from the system seems to work correctly.
But deleting a doc using the "remove from folder" option apparently does nowt.
When I tested in qa0 I got the following log output;
/var/log/nginx/access.log
<IP_ADDRESS> - - [19/Jan/2017:11:47:09 +0000] "DELETE /api/folder/f:oae:ry8v4mRUl/library HTTP/1.1" 200 2 "https://oae.oae-qa0.oaeproject.org/folder/oae/ry8v4mRUl" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36"
<IP_ADDRESS> - - [19/Jan/2017:11:47:09 +0000] "GET /api/folder/f:oae:ry8v4mRUl/library?limit=12 HTTP/1.1" 200 797 "https://oae.oae-qa0.oaeproject.org/folder/oae/ry8v4mRUl" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36"

/opt/oae/server.log
[2017-01-19T11:47:09.462Z]  INFO: oae-preview-processor/9530 on qa0: Starting preview folder generation process (folderId=f:oae:ry8v4mRUl)
[2017-01-19T11:47:09.972Z]  INFO: oae-preview-processor/9530 on qa0: Folder preview processing done (folderId=f:oae:ry8v4mRUl)

I also note that SK attempted to reproduce with a private folder, which exhibited different behaviour.
Sk'll no doubt comment on that :)

Played around with this a bit and apparently it's not an issue with the folder's visibility, but on whether the content item was first added to/created in 'My library' and then moved to the folder or created directly in the folder. Content items that are created in a folder directly are not deleted from that folder properly (although they still show up in 'My library', so the folder is not their only location on OAE). This affects both uploaded files and created content items like links or text documents.


feat: Enhance text selection menu in reader

Just to note. This custom solution is greatly undeveloped, even though it "kinda" works, I'd replace it with new library/solution as fast as there is one.

Just to note. This custom solution is greatly undeveloped, even though it "kinda" works, I'd replace it with new library/solution as fast as there is one.

Yeah, I've read a few threads on Google's Issue Tracker related to that. In most of them, they mentioned that they would implement a proper selection menu, similar to what was available in the XML view system, for Compose in future releases. Well, fast forward two years, and we're still stuck with just one "copy" option. So yeah, it's better than nothing. Thanks for that! I wanted to do something similar but always felt too lazy to look into it, or I was occupied with something else most of the time.
Btw, your reader options/settings also look neat! Don't mind if i pick some of those haha

Well, fast forward two years, and we're still stuck with just one "copy" option.

Yeah, that's what annoys me. The topic has minimal movement, same with scrollbar, but for scrollbar there at least is a library..
To make this selection container, I literally spent about a week of reading wiki, stackoverflow and some other sources. This is super inconvenient and had to be fixed and improved long time ago.

Btw, your reader options/settings also look neat!

Really? I plan on reworking them, I feel like your app's settings look much better :D

Don't mind if i pick some of those haha

Well I also am interested in some of your design decisions. I prefer traditional Material3, but your has some interesting decisions ;)

Yeah, that's what annoys me. The topic has minimal movement, same with scrollbar, but for scrollbar there at least is a library..

Exactly, and they keep deprecating existing solutions in favor of half-baked things. For example, they've marked TextToolbar as deprecated without even providing any API to replace it, at least in Compose. I'm not sure about XML since you don't really need custom implementation in XML most of the time.

To make this selection container, I literally spent about a week of reading wiki, stackoverflow and some other sources.

Thanks for your efforts! If I hadn't stumbled upon your code, I wouldn't have worked on this anytime soon due to the similar experience you had to go through.

Really? I plan on reworking them, I feel like your app's settings look much better :D

Yep! I specifically liked settings like line & paragraph spacing and similar things. The settings related to the reader were organized neatly in a bottom sheet.

Well I also am interested in some of your design decisions. I prefer traditional Material3, but your has some interesting decisions ;)

In my previous open-source app (GreenStash), I had mostly used traditional Material 3 design components, so I wanted to try something different with this one. :)

Yep! I specifically liked settings like line & paragraph spacing and similar things. The settings related to the reader were organized neatly in a bottom sheet.

I try extend customization to it's limits as I there is not really too much to do with plain text. As for organization I follow one simple rule — all settings should be easily accessible from Settings screen. I try to not make some random options in some screen you would need to search for 10 minutes to find, and seems like it's working as of now.

Yep! I specifically liked settings like line & paragraph spacing and similar things. The settings related to the reader were organized neatly in a bottom sheet.

I try extend customization to it's limits as there is not really much to do with plain text. As for organization I follow one simple rule — all settings should be easily accessible from Settings screen. I try to not make some random options in some screen you would need to search for 10 minutes to find, and seems like it's working as of now.

Yep, I also need to improve and add more options to my reader settings. It's very barebones right now, haha