RFC: Establish some terminology

We currently mix some terms in the documentation and in the code. The goal of this issue is to define some terminology which is understandable by new users as well as by experts. Please feel free to comment below to suggest terms or to share your opinions. The current draft will be at the end of this description:

pipeline
1. pipeline
Triggered by events like webhooks, crons or manual events
formerly known as build
PRs targetting renaming (renaming done with them)

#1224
#1296

2. workflow
formerly known as multi-pipeline pipeline
matrix
A pipeline which is executed with multiple options (a matrix) creates multiple workflows (see 2.)
partly known as axes / axis
workspace
Through the time of a workflow a workspace is shared between all steps. This folder normally contains the repository data and all data that was generated by previous steps of the same workflow.
3. step
A single job with a series of commands executed in a sequence.
executed steps are sometimes called procs, jobs or tasks in code
PRs targetting renaming (renaming done with them)

#1331

components
agent
Runs pipelines and sends results back to server
server
Head of woodpecker deployment which serves the ui, talks to remotes and sends pipeline execution tasks to agents
cli
A cli tool which can interact with a server and can run additional commands like linting, running pipelines without a server (locally), ...
misc
container
formerly known as docker container
container image
formerly known as docker image
forge
formerly known as SCM, VCS or remote
See https://en.wikipedia.org/wiki/Forge_(software)
PRs targetting renaming (renaming done with them)

#1357

Extendable parts
plugin
A step of a pipeline can use a plugin to run an automated series of commands which can be adjusted by plugin settings
Extension / Addon
A remote service (normally http) which can be configured to replace some internal service. #783

So sth like pipeline => ... => (multiple) matrix => step ?

well technicall matrix wil generate ... | should we still differentiate between them?

What do you think about naming the second level stage like drone, gitlab, jenkins?

So it would be a pipeline containing multiple stages like binaries containing steps like clone?
In case of a matrix a stage would contain multiple matrixes?

for 2. can we just go with "workflow" ? @woodpecker-ci/maintainers

I think workflow would be a nice word for multi-pipelines / steps-list / stages.

Pipeline
Workflow (instead of stage)
Step (or maybe job, task, proc)

normal pielines have only one workflow, so the old terms where miss-used in the past ...
... we should make that clear

How should we name the 3. level?
Current options are:

step
task
job
proc

step

Is it too late to contribute?
My concern is that there is no destiction between the execution of something and the definition of something.
One point of view (without knowing anything about the names used in the code) would be to put here some simple sentences, which can be used in the docs to explain, what woodpecker is doing:

"Woodpecker executes workflows on your code"
"Code is stored in repos"
"Repos are hosted on a forge"
"The execution of a workflow is triggered by some event"
"Events can be triggerd by a forge, manually in the UI, by cron or using the cli"
"A workflow is executed on a commit (defined state) of your code"
"A workflow consists of one or more jobs / stages"
"Jobs / stages are isolated from eachother and have their own workspace"
"Jobs/ stages  consist of steps/tasks"
"Tasks / steps share a common workspace"
"A job can be configured with a matrix, which results in the execution of  the job for each value in the matrix"
"A Job execution can have a status / result / outcome"
"Each workflow execution (build?) gets an execution number (build numer?)"
"All jobs in a workflow share the execution number of the workflow"
"Jobs or steps can be executed in parallel"
"Steps are defined either by plugins or by a series of commands run in a container"
"Stages/jobs are defined in a yaml file"
"Workflows comprise the yaml files of all stages/jobs stored directly inside .woodpecker directory in the code"

project could be an alternative for code.

Thanks for the template ... about the core terminology it's already decided, I updated your text acordingly:

"Woodpecker executes pipelines on your code"
"Code is stored in repos"
"Repos are hosted on a forge"
"The execution of a pipelines is triggered by some event"
"Events can be triggerd by a forge, manually in the UI, by cron or using the cli"
"A pipelines is executed on a commit (defined state) of your code"
"A pipelines consists of one or more workflows"
"workflows are isolated from eachother and have their own workspace"
"workflows  consist of steps/tasks"
"Steps share a common workspace"
"A workflow can be configured with a matrix, which results in the execution of  the workflows for each value in the matrix"
"A workflow execution can have a status / result / outcome"
"Each pipelines execution gets an execution number"
"All Steps in a workflow share the execution number of the workflow and have there own number too"
"Steps can be executed in parallel"
"Steps are defined either by plugins or by a series of commands run in a container"
"Workflows are defined in a yaml file"
"Pipeline comprise a yaml or all files of all workflows stored directly inside .woodpecker directory in the code"
"A pipeline has at least one workflows"
"Workflows can depend on each other"

Why is this different:

"Steps can be executed in parallel"
"Workflows can depend on each other and are executed in parallel if possible"

Only because today you have group:on a step and depends_on: on a workflow (trying to use new terminology). Wouldn't it make sense to have the same systemactic for both? Or is this something for #567?
The numbering is not clear to me:

"Each pipeline~s~ execution gets an execution number"

and:

"All Steps in a workflow share the execution number of the workflow and have there own number too"

Don't all workflow executions share the execution number of the pipeline execution? At least on triggers a pipeline
Will this terminology have an impact on #567 and the environment variables? If it is helpful, I can check the environment variables in the docs and map it to this terminology.
And one more to add to the simple sentences:

Workflow and step executions can be based on some conditions

I think we should now add a glossary to to the docs and then, we can close this issue :)

followup ->  #1724


Use StaticJsonRpcBatchProvider with wagmi and rainbow kit

the default json provider spams rpc requests on the pool detail. I tried to leverage the StaticJsonRpcBatchProvider, but can't figure out how to coerce the types

https://github.com/wagmi-dev/wagmi/blob/main/packages/core/src/providers/jsonRpc.ts
resolved


Support for GS1 SSCC barcodes

I can see that you support GS1-128 barcodes.
Would it be to specialized/"high level" to support Serial Shipping Container Code (SSCC-18)
Something like:
GS1_SSCC.new(data, application_identifier, extension_digit, company_prefix)

It would then automatically calculate the check digit and set the subset type to C
Example:
GS1_SSCC.new('000113256', '00', '3', '5712852')

would produce<PHONE_NUMBER>0001132567 - where 7 is the check digit calculated.

I've recently deprecated explicit support for GS1-128; everyone should use Code128 directly instead, also for this type.


Add typescript support

Hey!
Can you add typescript support please ?

Sure great idea! Keep an eye out for it in the next release.


Ensure output is saved when running from run_file

Currently, if you run the model not from the front-end, the output does not get saved in a pickle file. Easier if it were.

We could probably steal the code from the back end. Something like this:
    for scenario in scenarios:

        # Update scenario log
        scenarios_log[scenario] = {}
        scenarios_log[scenario]['run'] = datetime.datetime.timestamp(datetime.datetime.now())
        scenarios_log[scenario]['description'] = "Test Scenario, provided by Cambridge Econometrics"
        scenarios_log[scenario]['years'] = [str(x) for x in model.timeline]
        print(scenarios_log)

    # Save output for all scenarios to pickle
    #TODO Setup way to retain older results?
    results =  model.output
    os.makedirs(os.path.dirname(f"{rootdir}\\Output\\"), exist_ok=True)     # Create Output folder if it doesn't exist
    with open('Output\Results.pickle', 'wb') as f:
        pickle.dump(results, f)
    # Save metadata on current model run
    with open("{}\\Output\\Scenarios.json".format(rootdir), 'w') as f:
        json.dump(scenarios_log, f)`

I also wrote a script that could go into the support folder that also allows you to select core variables if you want to save space. We could combine it with the above if desired

@pv-camecon, we are having some trouble calibrating the Gamma values for the FTT-P update through the frontend. The issue seems to be that there is not Output/Gamma.pickle file which the front end is trying to load in line 974 of FTT_backend.py. Could this be down to the fact that gamma output is also not being saved like the main ouput?


Eliminate unapproved prebuild exclusions

https://github.com/dotnet/source-build/issues/4188
After updating arcade I am seeing new prebuilts, which are not in baseline.
microsoft/vstest#4915 (checks)
.packages/microsoft.dotnet.arcade.sdk/9.0.0-beta.24156.2/tools/SourceBuild/AfterSourceBuild.proj#L80
.packages/microsoft.dotnet.arcade.sdk/9.0.0-beta.24156.2/tools/SourceBuild/AfterSourceBuild.proj(80,5): error : (NETCORE_ENGINEERING_TELEMETRY=AfterSourceBuild) 3 new pre-builts discovered! Detailed usage report can be found at /__w/1/s/artifacts/sb/prebuilt-report/baseline-comparison.xml.
See aka.ms/dotnet/prebuilts for guidance on what pre-builts are and how to eliminate them.
Package IDs are:
Microsoft.AspNetCore.App.Ref.8.0.1
Microsoft.NETCore.App.Host.linux-x<IP_ADDRESS>
Microsoft.NETCore.App.Ref.8.0.1
This is becuase 8.0.0 of those were added to prebuilts.xml in our repo, when they should not have been, in https://github.com/microsoft/vstest/pull/4856/files PR.
Investigate how to get rid of them.
@evangelink if you have any ideas I am all ears.

I am just seeing the comments on the related PR so I see that what I said is not accurate. I have no idea how to fix that.

@nohwnd I think this issue is now stale.

Yup. the exclusions were okayed, because we are excluding net8 bits when building for net9, and we cannot avoid restoring the net8 bits.


Upgrade travis python

Description
upgrade python on travis to newest version to get rid of SNI SSL issues with aws install and calls

This looks fine, but I wonder if there's a more elegant solution.
Looking at the logs of a recent build, it seems the Travis VMs use Ubuntu Trusty (and that's likely to change to Xenial soon). According to the Travis docs, it comes with both python 2.7.13 & 3.6.1 and also pyenv. It defaults to python 2.7.13 though.
So, as suggested in this Stackoverflow answer, we should be able to just use pyenv global 3.6 to switch to the already-installed python 3.6.1.
Could you please try that? If it works, we'll save ourselves a redundant download and install. :-)

I can.  When I looked at the build env logs it looked like it wasn't installed (-) next to it.

:tada: This PR is included in version 2.2.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Display test failures in the gradle check status report.

Signed-off-by: Daniel (dB.) Doubrovkine<EMAIL_ADDRESS>Description
Display test failures in the gradle check status report.
I tested this by hard-coding a few failed build URIs, so hopefully this doesn't break everything, but to actually open the PR we need a pull request target to work.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dblock I think we could use community provided test reporters, fe [1], what do you think?
[1] https://github.com/marketplace/actions/test-reporter

@dblock I think we could use community provided test reporters, fe [1], what do you think?
[1] https://github.com/marketplace/actions/test-reporter

Yeah that's a good idea. Would need to fetch the test results from gradle check to use.

Also I agree there are probably better ways to do this but this seems like a quick and easy improvement that can be done now

@andrross This PR is just a lazy feature, you can click on the gradle check and see the test failures. So I don't feel particularly compelled to merge it, but if you think it's useful, maybe you can convince @reta of its benefits? :)

@andrross This PR is just a lazy feature, you can click on the gradle check and see the test failures. So I don't feel particularly compelled to merge it, but if you think it's useful, maybe you can convince @reta of its benefits? :)

haha @dblock , I am absolutely not against it, just wanted to make integration of such a feature as simple as possible (using available Github actions but it seems like we need to allow external actions on repository explicitly)

The test-reporter action seems to put the results on the github action screen (which you'd have to click to get to) and doesn't seems like it would add much value given that we have a handy link to the test results anyway. Am I misinterpreting that?
I like that this solution ends up being very in-your-face about the flaky failures and you don't have to click anything to see what failed. Might be more motivation to help drive these down :)

The test-reporter action seems to put the results on the github action screen (which you'd have to click to get to) and doesn't seems like it would add much value given that we have a handy link to the test results anyway. Am I misinterpreting that?
I like that this solution ends up being very in-your-face about the flaky failures and you don't have to click anything to see what failed. Might be more motivation to help drive these down :)

@andross fair enough, let's give it a try?


Specifying package name

My scheme contains name space as following http://www.foo.com/Public/Services
As a result java classes were generated in package com.foo.public.services
But public is java keyword.
As a result I cannot build my project.
How can I specify package name?
I use version of the plugin 0.4

As of version 1.0 you should be able to achieve this by providing the -p parameter (https://cxf.apache.org/docs/wsdl-to-java.html) via the options property:
wsdl2java {
  options.addAll("-p", "my.pck.name")
}


test

From<EMAIL_ADDRESS>on September 20, 2006 16:43:41
What steps will reproduce the problem? 1. 2. 3. What is the expected output? What do you see instead? What version of the product are you using? On what operating system? Please provide any additional information below.
Original issue: http://code.google.com/p/gperftools/issues/detail?id=2

From<EMAIL_ADDRESS>on September 20, 2006 10:57:37
nothing was reported.
Status: Invalid
Owner: ---


Fix stupid docker image path issue

Eugene 🔒 trace of add_authors.sql
In the below trace, a lock is considered dangerous if it conflicts with application code queries, such as SELECT or INSERT.
We should aim to hold dangerous locks for as little time as possible. If a dangerous lock is held while doing an operation that does not require it, we should split the migration into two steps.
For example, it often will make sense to add a new column in one migration, then backfill it in a separate one, since adding a column requires an AccessExclusiveLock while backfilling can do with a RowExclusiveLock which is much less likely to block concurrent transactions.
Overall Summary

Started at
Total duration (ms)
Number of dangerous locks

2024-05-05T19:31:37.380840903+00:00
1007
2 ❌

All locks acquired

Schema
Object
Mode
Relkind
OID
Safe
Duration held (ms)

public
books
AccessExclusiveLock
Table
16415
❌
1002

public
books_pkey
AccessShareLock
Index
16421
✅
1002

public
books
ShareRowExclusiveLock
Table
16415
❌
1002

public
books
AccessShareLock
Table
16415
✅
1002

Dangerous locks found

AccessExclusiveLock would block the following operations on public.books:

SELECT
FOR UPDATE
FOR NO KEY UPDATE
FOR SHARE
FOR KEY SHARE
UPDATE
DELETE
INSERT
MERGE

ShareRowExclusiveLock would block the following operations on public.books:

UPDATE
DELETE
INSERT
MERGE

Statement number 1 for 5 ms
SQL
create table authors(id serial primary key, name text not null);

Locks at start
No locks held at the start of this statement.
New locks taken
No new locks taken by this statement.
Statement number 2 for 0 ms
SQL
alter table books alter column title set not null;

Locks at start
No locks held at the start of this statement.
New locks taken

Schema
Object
Mode
Relkind
OID
Safe

public
books
AccessExclusiveLock
Table
16415
❌

Hints
Validating table with a new NOT NULL column
ID: make_column_not_nullable_with_lock
The column title in the table public.books was changed to NOT NULL. The statement blocks until all rows in the table are validated to be NOT NULL, unless a CHECK (title IS NOT NULL) constraint exists, in which case it is safe. Split this type of change into steps:

Add a CHECK (title IS NOT NULL) NOT VALID; constraint.
Validate the constraint in a later transaction, with ALTER TABLE ... VALIDATE CONSTRAINT.
Make the column NOT NULL

Statement number 3 for 0 ms
SQL
alter table books add column author_id integer not null;

Locks at start

Schema
Object
Mode
Relkind
OID
Safe

public
books
AccessExclusiveLock
Table
16415
❌

New locks taken
No new locks taken by this statement.
Hints
Running more statements after taking AccessExclusiveLock
ID: holding_access_exclusive
The statement is running while holding an AccessExclusiveLock on the Table public.books, blocking all other transactions from accessing it. Once holding AccessExclusiveLock we should immediately commit the transaction. Any extra steps necessary are better done in a separate transaction.
Statement number 4 for 1 ms
SQL
alter table books add foreign key (author_id) references authors(id);

Locks at start

Schema
Object
Mode
Relkind
OID
Safe

public
books
AccessExclusiveLock
Table
16415
❌

New locks taken

Schema
Object
Mode
Relkind
OID
Safe

public
books_pkey
AccessShareLock
Index
16421
✅

public
books
ShareRowExclusiveLock
Table
16415
❌

public
books
AccessShareLock
Table
16415
✅

Hints
Validating table with a new constraint
ID: validate_constraint_with_lock
A new constraint books_author_id_fkey was added to the table books. The constraint is of type FOREIGN KEY and is valid. The statement blocks until all rows in the table are validated for the constraint. It is safer to add constraints as NOT VALID and validate them later, to avoid holding dangerous locks for a long time. Constraints that are NOT VALID affect all new inserts and updates, but not existing data. Adding the constraint initially as NOT VALID, then validating with ALTER TABLE ... VALIDATE CONSTRAINT ... in a later transaction minimizes time spent holding dangerous locks.
Running more statements after taking AccessExclusiveLock
ID: holding_access_exclusive
The statement is running while holding an AccessExclusiveLock on the Table public.books, blocking all other transactions from accessing it. Once holding AccessExclusiveLock we should immediately commit the transaction. Any extra steps necessary are better done in a separate transaction.
Statement number 5 for 1001 ms
SQL
select pg_sleep(1);

Locks at start

Schema
Object
Mode
Relkind
OID
Safe

public
books
AccessExclusiveLock
Table
16415
❌

public
books_pkey
AccessShareLock
Index
16421
✅

public
books
ShareRowExclusiveLock
Table
16415
❌

public
books
AccessShareLock
Table
16415
✅

New locks taken
No new locks taken by this statement.
Hints
Running more statements after taking AccessExclusiveLock
ID: holding_access_exclusive
The statement is running while holding an AccessExclusiveLock on the Table public.books, blocking all other transactions from accessing it. Once holding AccessExclusiveLock we should immediately commit the transaction. Any extra steps necessary are better done in a separate transaction.
Statement number 6 for 0 ms
SQL
select * from books;

Locks at start

Schema
Object
Mode
Relkind
OID
Safe

public
books
AccessExclusiveLock
Table
16415
❌

public
books_pkey
AccessShareLock
Index
16421
✅

public
books
ShareRowExclusiveLock
Table
16415
❌

public
books
AccessShareLock
Table
16415
✅

New locks taken
No new locks taken by this statement.
Hints
Running more statements after taking AccessExclusiveLock
ID: holding_access_exclusive
The statement is running while holding an AccessExclusiveLock on the Table public.books, blocking all other transactions from accessing it. Once holding AccessExclusiveLock we should immediately commit the transaction. Any extra steps necessary are better done in a separate transaction.


zabbix agent: set panic on not existed provider optionally

Add use case support:
On same host (zabbix node) running more than one agent applications and sending different data to zabbix (I mean different metric providers).

So rather than trying to change the behavior of the agent, is there a way that we can alter your usage scenario so that the change is not required?
It concerns me to make the agent work in a way that isn't "correct", even if that functionality is made optional.
I'd like to better understand your scenario, so that maybe we can find a solution that will work for everyone?


Separating the protocol from the ledger

This noisy :drum: PR creates an new package cardano-protocol-tpraos and moves the following into it:

Block Header and associated types and helper functions
Operational Certificate types and helper functions
Overlay Schedule support
The following rules: PRTCL, OCERT, OVERLAY, Updn

@nc6 do you think now is an okay time to merge this possibly disruptive PR?

Yep, seems reasonable to me!


Fix: Adds  property to all connector csproj files

Adds  to all connector projets that were missing it.
Moved it to a global position in all connectors that only had it on debug

This should do more good than harm... In it goes! 🚀


docs: kep to propose a pull reconciliation model

What this PR does / why we need it:
KEP: Design the new kubefed architecture to use a pull reconciliation mode.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:
There are certain open questions I'd bring during our next sig meeting such as:

Should the daemons have write access to update the status of the federated resources in the control-plane cluster ? Or we prefer to follow the endpoint approach where the control-plane polls that info from each daemon on each cluster.

Awsome @hectorj2f ! Thanks.
/cc @shashidharatd

I'll make some changes to the current approach to adjust to the latest request and suggestions..

The overall design looks very similar as https://github.com/open-cluster-management (work subproject) which is the open source version of IBM MCM. It seems we could merge those two tracks.

@hectorj2f @jieyu ^^^

Thanks @luckyfengyong. I'll have a look at https://github.com/open-cluster-management.

There doesn't seem to be any outstanding discussions and this LGTM so let's merge :tada:
/approve
/lgtm

@hectorj2f thanks for doing this.
I don't have any major additional comments as of now and given the PR is already merged, I would defer more fine grained comments to the implementation PRs, when they land.
I have only 1 request (to who ever is reviewing and/or committing the changes).
I don't see the need of multiple commits, especially with vague or repeated commit messages as have gone into this PR. It simply pollutes the commit history and does not at all help with maintainability. Let stick to clear commit history and splitting the commit into another only if its really warranted.
I think k8s community guideline is a very good reference for us to maintain the standard here too and general squashing guideline is probably the best official way to allude as to what I am trying to indicate.. :)

@irfanurrehman I am aware of the k8s community guidelines. I don't know how we got a duplicated commit message. Obviously it was not intentional, as you can see the commit log in other merged PRs. We should have squashed that one's, my mistake.

Agree with @irfanurrehman. In addition, I found some branches seem should not be there, like:

hectorj2f/kep_kubefed_pull_reconciliation
hectorj2f/split_controllermanager_properties

@hectorj2f , I guess you need to fork kubefed and push new branch to your fork repo and then send the PR. I don't think it's the right way to push branches directly to upstream.

@RainbowMango that fork of this repository is there since the beginning https://github.com/hectorj2f/kubefed. Please check the rest of PRs done against this repository. I use it to create PRs, unfortunately it is true this PR was wrongly created and discussed over a wrong remote. I was planning to close the PR but that was late at the point of discussion, and I didn't want to restart the whole thread.

Sorry, I take responsibility for not checking commit history before merging. Thank you @irfanurrehman for pointing that out - I will do better next time.


undefined method `route_instance_path' on adding comments

When trying to add admin notes, using active_admin 0.3.2 and rails 3.0.10, the following Exception is thrown on the redirect after posting the comment:
NoMethodError in Admin::CommentsController#show: undefined method 'route_instance_path' for nil:NilClass
Stack trace show the responsible code to be:
activeadmin (0.3.2) lib/active_admin/comments.rb:47
This seems to be caused by the changes made in commit 7c2b355bd01ae0bb76b1af1c240d9ea13b617f43, reverting the commit makes it work again.
Please tell if you need the full framework trace.

Hey, I'm experiencing the same error but in a different flavour.
When posting a comment in the comment panel inside the resource "show" i get
undefined method 'route_instance_path' for nil:NilClass
in
activeadmin (0.3.2) lib/active_admin/comments.rb:47:in _callback_before_79'`
I'm not using active_reload.
I'm using activeadmin 0.3.2 on Rails 3.1.1

I'm having the same problem described by @cosenmarco.
My environment is this: https://gist.github.com/1437310

I'll re-open the bug as it seems to affect others, but try adding some useful debug info as to why route_instance_path is not defined.

same problem.
NoMethodError in Admin::CommentsController#show
undefined method `route_instance_path' for nil:NilClass
when adding a comment. Thanks


Update app-insights-overview.md

The following hasn't been explained any where in the doc, so I've clarified it through a FAQ:
"What's the difference between Application Insights Agent and SDKs?
Application Insights Agent is the easiest to enable; you only need to install the agent, there is no need for code changes or advanced configurations. Alternatively, you can manually instrument your code using Application Insights SDK. This means that you have to manage the updates to the latest version of the packages by yourself. Use SDK if you need to make custom dependency calls or API calls that are not captured by default with the agent."

@AaronMaxwell
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Execute permissions for dbms_lock

I installed logger_3.1.0 yesterday and after installation completed successfully I ran some of the demos. When I ran demo_set_level I got an error indicating that the run_long_batch procedure had errors. It was because the user schema didn't have execute permissions on the sys.dbms_lock package. I'm wondering if this should be added to the permissions checks that are run prior to installation?
I'm also wondering if you might need to do some broader execute permissions checks for some of the other dbms_* packages that are used? Or are all of those done via the existing permissions checks?

Yes, the demo requires access to sys.dbms_lock. Since these are only demo scripts we won't be adding any additional permission checks as they are not installed in the DB (they're just scripts that you download).
For objects that are installed in the DB, permission checks are performed.

OK, I was confused. I didn't realize (look closely enough) to see that the
demo script created the procedure that was not compiling. I thought that
was part of the installation script. My mistake.
I assume that procedure can be pulled out safely?
Earl
On Wed, Sep 30, 2015 at 10:45 PM martindsouza<EMAIL_ADDRESS>wrote:

Yes, the demo requires access to sys.dbms_lock. Since these are only demo
scripts we won't be adding any additional permission checks as they are not
installed in the DB (they're just scripts that you download).
For objects that are installed in the DB, permission checks are performed.
—
Reply to this email directly or view it on GitHub
https://github.com/OraOpenSource/Logger/issues/146#issuecomment-144618813
.

@elewis33 Yes, you can drop that procedure safely. It's just for demo purposes and no part of Logger relies on it.


datepick doesn't work properly in form

Bug, feature request, or proposal:
bug
What is the expected behavior?
when i click the calendar button, pop up the calendar,and select the date
What is the current behavior?
when i click the calendar button, the form ngSubmit function will be exec
What are the steps to reproduce?
just put a Datepicker component in form
<md-dialog-content>
    <form (ngSubmit)="onSubmit()" #dialogForm="ngForm">
        <md-input-container>
            <input mdInput [mdDatepicker]="myDatepicker" name="mydatep">
            <button mdSuffix [mdDatepickerToggle]="myDatepicker"></button>
        </md-input-container>
        <md-datepicker #myDatepicker [touchUi]="true"></md-datepicker>

        <md-dialog-actions [attr.align]="actionsAlignment">
            <button md-raised-button color="primary" md-dialog-close (click)="dialogClose()"> Close </button>
            <button type="submit" md-raised-button color="accent" [disabled]="!dialogForm.form.valid"> OK </button>
        </md-dialog-actions>
    </form>
</md-dialog-content>

What is the use-case or motivation for changing an existing behavior?
It isn't working properly in form, and it is work properly outside form
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 4.2.0-beta.0
material 2.0.0-beta.5
os win10
typescript 2.3.1
Browsers: Chrome 58.0.3029.110 (64-bit)
Is there anything else we should know?

I Fix that problem using type attribute in button date picker
<button type="button" mdSuffix [mdDatepickerToggle]="picker">


How to modify "integer" column format?

Currently trying to figure out how to modify an integer column so that it does not display decimal points.
For example one of my columns consists of 7 digit numbers and currently is being displayed as 5.014.546. How can I change this so that it is displayed without the decimal points?

Solved: Just needed to unpack the editablegrid-2.0.1-b25.js and modify the js.


Must have a custom scale controller

Until this extension is supported by the Functions scale controller we will need logic to handle scale.
Something (a web app or a web job, running in the same App Svc?) will need to check the "queue length" in Kafka topic(s) configured and determine if the current number of Function instances are keeping up adequately.
If we're falling behind, we need to scale out.
If we're ahead, or have drained the queue then we need to scale back in.
@jeffhollan & @anirudhgarg can you please add some details to this requirement that will get us to a MVP scale controller.

This is being worked out in a related and private repo.  Will link to this issue from there.

Does this mean we won't need a custom scaler if we plan on hosting this in Azure in an App Service (until Consumption is supported)?

Correct

Awesome. Might just close this one then :)
Or, leave it open until we verify we can deploy this custom scaler in to an App Svc environment.

Do we need to expose statistics or additional information to the scaler or is it going directly to the source?

The App Svc environment won't have a custom scaler - it will rely on auto-scaling which scales based on CPU and memory.  So the short term solution (sans that private repo thing I linked above) is rely on CPU metrics to drive scaling.
Allowing you to use a customer scaler in something like App Service or even consumption is on the backlog of Functions, but in a way that it's hard to know what an ETA would be.  I don't expect this calendar year.  If there's enough customer demand probably the quickest route is we provide support on the Azure Functions consumption scale controller - that's a much more straight forward path. Not easy, but easier than customer scalers.

Not sure I understand how CPU metrics will help figure out that our Function is falling behind.

Also I'm sorry I thought this comment was in this repo but I added to the other:
Also it's expected for the short term in the Azure service this trigger will only work on the App Service Plan with autoscaling. Getting kafka scaling logic in the Azure Functions multi-tenant scale controller is still being evaluated based on customer need. Since Kafka is generally not exposed publicly it's still to be seen if there is interest in a multi-tenant non-VNet connected Kafka trigger. Once we have VNet enabled triggers or potentially custom trigger support or enough customer interest we can consider supporting and providing in the Azure Functions service scale controller.

Hmmmm, This is why I was thinking that we'd need something that would check the queue length and scale our App Svc accordingly.
I know @anirudhgarg and I discussed this briefly when we met.
Even if I scale the App Svc (that hosts my Functions) manually how will this know to go spin up additional instances of the Function? Something needs to tell it to go spin up new instances, or tear down instances that exist (or does the App Svc plan not do this, and just keeps instances sitting idle waiting for work?)

You aren't wrong - but there's no feature or existing way to do this today.  So there's nothing we can build that could check the queue length and then use that detail to drive scaling decisions of an app service plan.

Hi guys,
Just found this thread and I’m not sure if the approach you guys are talking about is the most natural way to scale Kafka consumers.  Not that your ideas aren’t great, they just seem more aligned to something like Azure Service Bus than Kafka.
Queue length shouldn’t ideally be used to decide how many instances to spin up as that will compromise ordered processing of messages if you have multiple instances processing against a given partition.  Rather the best way to handle this is to see how many partitions for the given topic the consumer is lagging against and to spin up an instance for each.  The difficulty here is that in order to achieve the consumption at scale you really want for the function that is assigned to a given partition to hang around for awhile and process lots of messages rather than just one, thus taking advantage of librdkafka’s batching logic.
Have been running Kafka consumers very successfully in WebJobs but without any dynamic scaling.  If you guys crack this problem in functions then this would be amazing.  It might be worth paying attention to KNative’s approach but I suspect the way it works there is via an observer container that then decides how many worked containers to spin up.  Without the observer I think you guys are going to have to be mega-creative to come up with a good solution that is a natural fit for Kafka.
Again apologies if all of this is obvious to you guys.  Not trying to poke holes but am instead keen to see a great solution eventuate out of this.  I’ll definitely use it!
Cheers
Johann

Thanks @jcooper1982. Very good points. We currently only have one consumer per partition to ensure we keep ordered delivery intact. In terms of how many instances we need etc. this is where we're a bit stuck right now. Current thinking is that we need some kind of observer, but what should it observe on?

Hi @ryancrawcour, consumer lag for the consumer group per partition is definitely the right thing to observe because then you can spin up one instance per partition which the consumer is lagging against, ensuring you only have just enough active functions running at a given time.  Is it actually possible to build a custom observer for Kafka in the functions engine?
I believe there is an admin client in the latest Confluent SDK, though I haven’t played with it yet, which you might be able to get consumer lag out of.  Alternatively you could get it from consumer statistics.
A trick I’ve done before (have written a Kafka .Net SDK wrapping confluent) is to have multiple threads within a consumer with logic to stage messages in memory if they share a key with a message already being processed.  This obviously requires some throttling controls to ensure you don’t overrun memory but does offer you the best of all worlds.  I’ll be happy to contribute (probably not for a few weeks) if you guys are keen to enable this as an option.  This was an optional feature in my SDK as well.

Thanks @jcooper1982 we'd value your contributions whenever you get to it.

Hi @jcooper1982 thanks for your feedback!
Current design:

Let librdkafka manage partition assignment
Adding new hosts will rearrange partitions. Scaling up to Topic.PartitionCount
Order is guaranteed at partition level

I believe this is a good general implementation, assuming you have well distributed partition load and processing.
However, if partitions are unbalanced we would have to manage partition assignments manually and spawn new hosts to handle lagging partitions in isolation. I am not sure it makes sense, as the problem source is most likely a sub-optimal partition strategy.
Does it make sense?

Hi @fbeltrao, yup that sounds like a perfectly good and standard design.  I will go through the code over the next few weeks and provide more feedback then too.
The main question is how will you decide whether to add new hosts or not?  An extreme option is to always have one host per partition which will mean rapid processing but inefficient costing and you might as well go for continuous WebJobs.  Alternatively you need some intelligence that decides that scale up is necessary and I suppose you have a few options below.
-Scale out based on the number of partitions for the consumer group which have consumer lag.  As previously mentioned this could be done using the admin client if this function is supported, or via consumer statistics.  This would be the ultimate option in terms of cost effectiveness yet supporting high throughput.
-Scale out based on CPU usage (doesn't really make much sense because CPU usage doesn't indicate that there is work to do on other partitions) or some other arbitrary measure.
-Scale out if the current set of hosts is busy since that is an indicator that there are active messages on the topic but is no guarantee that there will be any work for an additional host to do.
The other issue is the short lifespan of functions.  I suppose your scaling engine will need to account for the fact that a function can only run for so long if it's running within a consumption based plan.  The extension is going to have to have smarts to auto shutdown in a clean fashion and the engine is going to need to decide whether to instantly spin up another host because there's still more work to do.

I wouldn't worry about the function execution time, because the limit your are talking about is for the custom code that will be triggered by this extension. AFAIK the listening part does not have a limit, and will be shutdown only if the scale controller decides to scale it down.

Fantastic.  Will dive into this a bit deeper soon and will hopefully have a better appreciation for the underlying architecture of Azure functions by then since I only understand this at a conceptual level right now.
Will also speak with my (soon to be new) employer about what level of collaboration they are willing to commit, since the SDK I wrote for them will likely have quite a few reusable parts here that could add a lot of value.

Just updating this - we have a way now to create a custom trigger to run in VNet enabled plans (premium).  We should be able to make this trigger run well in the Premium plan (Linux and Windows) now

Azure Functions Premium now supports scaling based on Kafka topic length.
Support in KEDA exists


Remove old pedersen hash code after refactor migration

We have a lot of old Pedersen code that will been superceded by the pedersen hash refactor project https://hackmd.io/XYBiWhHPT9C1bo4nrtoo0A?view
All code TODOs that contain old Pedersen code, marked for deletion will be linked against this issue.

Closing this as pedersen hash refactor has been completed


Disable web worker on firefox 8-9 localhost using feature detection

This turns on worker support by default, but turns it off again if there is an exception while creating the worker. This is necessary, as on Firefox 8-9 creating a worker from a localhost:// url throws an error.
This does not turn on worker support for the tests. It's turned off explicit.
See meta issue #782.

@pdfjsbot test


Updated Models Repository tests

Moved tests for the azure-iot-modelsrepository package over to latest test recording/proxy infrastructure

API change check
API changes are not detected in this pull request.


Adapted for most recent networkx version

Adapted for most recent networkx version

Ok I saw that you developed for networkx 2.0dev:
https://networkx.github.io/documentation/development/reference/generated/networkx.Graph.get_edge_data.html
My code works also for networkx 1.11:
https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.MultiDiGraph.get_edge_data.html
Nevertheless, this change should work for both versions.
On pypi both versions are listed:
https://pypi.python.org/pypi/networkx/

Hello,
Thanks, it should improve support for networkx 2.0, but edges iteration is still an issue, isn't it ?
Best


Sub-auction maximum outputs are too large

With some input assets and a short enough auction time, tendermint sometimes rejects auctions with the complaint that the maximum output amount is 'more than 53 bits wide' which corresponds to a mask of 0x003FFFFFFFFFFFFF
If the sub-auctions are exceeding the maximum output size of an auction, there are not enough sub-auctions.

cc @erwanor
At the moment, we're copying pcli's implementation for generating auctions. @erwanor, have you seen this error in pcli as well? Just want to make sure it's not a web-specific bug. Maybe the logic should take the max/min outputs into account when deciding how many sub-auctions to create?

Related to #1124, this isn’t caused by the web extension, it’s a hard limit on how much input we allow per auction. The node software doesn’t expect values that are beyond 2^52 - 1.
This should only happen when using an asset with an extreme base denom like test_usd. So beyond handling the error elegantly, there aren’t action items to implement.


Require updates on shortcut keys for "comment out code"

Microsoft Visual Studio Community 2019
Version 16.5.4
Initially, the text editor toolbar was not shown and required some digging around to enable it. Please add this instruction to the tutorial in the near future. Also, even though the shortcut keys to comment (Ctrl+K, Ctrl+C) does comment out the blocked codes, the Studio indicates that the shortcut command  Ctrl+E, Ctrl+C is another way to comment out the code.

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

ID: d7651b1f-ceaf-cccf-a47d-bee98d8806e0
Version Independent ID: ecb6330d-4205-1b65-4fbf-ddb6552b3890
Content: Introduction to editing for C# developers - Visual Studio
Content Source: docs/get-started/csharp/tutorial-editor.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @TerryGLee
Microsoft Alias: tglee

@Antonio-Kim Thanks for letting us know; we'll check in to getting this tutorial updated and report back soon.


Fix incorrect API usage in RewritePatterns (round 1)

Incorrect API usage was detected by D144552.

LGTM but let's be sure @benvanik approves those.


Unexpected equality behavior between some types

integer=1
stringeter="1"
floateger=1.0

puts integer == stringeter # false
puts integer == floateger # true
puts stringeter == floateger # false

#puts integer >= stringeter
#puts integer >= floateger
#puts stringeter >= floateger

Also here https://play.crystal-lang.org/#/r/8udm
On Crystal 0.33.0. The last three puts lines (when uncommented) are compilation errors as one might expect. The first three puts lines are not. Should they be? I think in a statically and strongly typed language, they should.

I'm sure there's been discussion of this before but github's issue search is useless :(

I'm not sure if there's a dedicated thread about this. But #5829 for example touches this and should explain why equality is defined between any two types. It doesn't necessarily need to be like that, both ways could be taken. But we've come so far with the current behaviour and it's unlikely to change such a fundamental concept at this point.

Btw. some other methods enjoy the same type flexibility: ===, !=, =~ , !~ (see #5829) and some collection methods (see #988, #1764). Hash lookup methods also don't have type restrictions, but that will probably change (#8893). There's also an open discussion about making <=> generally applicable (#8953).

Ok, thanks for the explanation.

How do you implement [1, "a"].includes?("a") if you can't freely compare any two types?
Maybe we can introduce another operator to compare types in a non type safe way. Then the general collection methods can use it, but when using == it will be type safe. Same goes for <=> and possibly others.

I wouldn't discard this possibility.

That seems worth a try, though IDK if it's worth changing the language this late

For the type-safety, I think it might be worth it.

I've been thinking about this for a longer time, but the looming 1.0 triggered me to write this issue in a bit of a hurry. I don't think it'll be done at all if it's not done before 1.0 because it's probably a rather big change for existing code.
FWIW, my experience is that enabling these comparisons causes actual bugs in a lot of existing financial code. Of course, Crystal doesn't fortunately go full crazy and have 1=="1" => true like some not-to-be-named languages do, but 1==1.0 => true seems like a risky one as well due to well-known properties of floats that nobody knows about :)
puts 6.0-0.9-0.1 == 5 # true
puts 6.0-0.8-0.1-0.1 == 5 # false

To answer your question (and give my opinion) I think they should. The compiler is out great friend, more bugs it can catch, the better the developer is in the long run.

I'm confused what the action item or even discussion topic of this issue is at this point. Could somebody please clarify by updating the issue description to something sane? Or better yet close this off and write a proper proposal for whatever it is?


[WIP]Add containers org link

Add link to containers repo.  But really, need to build new images with
fresh packages.
Signed-off-by: Brent Baude<EMAIL_ADDRESS>

LGTM but reminder that these generated images CAN NEVER BE USED IN PODMAN CI.

Wait - why close? The change is a good one, I think it would be good to merge, I just meant that we need to make sure we never open a podman PR that uses these images.


Focal modulation networks for studying the Earth system

Dear Jwyang, would you add a pointer to refer to our work with Focal Modulation in the context of Earth system?
Project page: https://hakamshams.github.io/Focal-TSMP/
Preprint: https://egusphere.copernicus.org/preprints/2023/egusphere-2023-2422/
Code: https://github.com/HakamShams/Focal_TSMP
Thank you for your work!

thanks for sharing! Added.


make a command line tool

We have a lib/ directory, so we should have a bin/ directory to go along with it.
It would be handy to have hogan generate compiled functions on the command line. I see @bradleywright already has something going there.

It's not a command line utility just yet.. but I'm also working on something here: https://github.com/danielstocks/hedgehog

What I've got going:
https://github.com/bradleywright/hogan.js/tree/command-line-compiler
prints out the compiled templates on STDOUT. I've got a few issues though:

There's no easy way in the existing Hogan.js to map template names to the outputted function - this would be essential if you just wanted to write your Javascript once (since you're skipping the blah.render(context) phase when compiling - it returns the render function).
There's no easy way of handling included templates as dependencies.

So to elaborate:
If I have Javascript for my site that looks like this:
var tpl = Hogan.compile(templateContent);
var myRenderedHTML = tpl.render(context);

I can't really easily deal with that code when it's compiled, as:

I don't want to compile the template, it's already compiled
I don't have the text content of the template, since it's been compiled
I don't have a tpl instance because Hogan isn't included

So I'm sort of stuck. Ideally what I want is something like:
var renderedContent = tpl.loadAndRender(context,
                                        'mainTemplateName.mustache',
                                        [some other partials]);

and it can look up the compiled stuff in a dictionary:
var compiledTemplates = {
    'mainTemplateName.mustache': function()...
}

This way I can write my on-site JS exactly once and only compile for production as part of my build process - i.e the templates read off the file system and turned into an object on build.
Does that make sense?

OK, I think what you want to do is the same thing @danielstocks and I were looking at in this gist: https://gist.github.com/1518202 (which I agree points to some needed API work)
Issue 14 points out that the file is structured in a way that makes this a pain. I agree, and we could also do with splitting out the module system boilerplate.

Yeah, that's pretty much what I want to do. I do a similar thing with Mustache.js in development and mustache-trimmer to compile for production for my work, which works pretty well.

on the split_up branch, I have an initial separation of the compiler and the template object. Some rarely used functions in the template object still require the compiler--I will continue to break up that circular dependency. The constructor for Hogan.Template is now
new Hogan.Template(renderFunction, text, Hogan);

with the latter two parameters optional. Will this do the trick?

I merged some build system changes along with split_up into master.

I combined your approaches here https://gist.github.com/1536490. That seemed to work for me.
@sayrer would your change to the Hogan.Template constructor allow me to replace lines 21-22 with line 24?

@kasperp the constructor is already closer to that on master (see my last comment). will that do the trick?

I added a working command line script of the above comments.
Improvements:

Use the internal Hogan template cache instead of using a separate variable
Handle dependencies between includes and parent templates better

A canonical template loader/fetcher would be nice, since then this script could just call that (so client JS code wouldn't need to change).

Oh, it runs as follows:
hogan-compile path/to/templates/*.mustache

So not very smart.

@sayrer sorry is missed that the constructor was alreay in the master. That did the trick for me -- thanks. I've updated the gist https://gist.github.com/1536490 to reflect the change.
@bradleywright so to use your complied template i would have to write something like
new Hogan.Template( HoganTemplates.mytemplate ).render( { foo: "bar"} )

In the gist I've made I put the constructor call in the compiled templates allowing the use to be a little simpler.
templates.mytemplate.render( {foo: "bar" } )

Are there any pros and cons for doing it one way or the other?

@kasperp: like this:
HoganTemplates['myTemplate'].render({foo:'bar'});

the HoganTemplates object contains compiled Hogan template objects.

Whoops, sorry: you were completely right, my code was doing the old rather than the new thing. It's fixed now.

@bradleywright, cool.
I wasn't sure if you returned the function to provide flexibility or prevent unnessary object creation. But obviously I also prefer to keep the usage of the compiled template as simple as poosible by returning the Template object.

So what did you want me to do with my fork, if anything? Did you want me to pull request it as is? Don't have a lot of time to work on it this week...

Pull request sounds good. we can continue to work on it from there.

I'll close this for now. We can do further work in new (most welcome) pull requests.


feat(module:date-picker): support standalone component

PR Checklist
Please check if your PR fulfills the following requirements:

[✔] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[✔] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[✔] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?
What is the new behavior?
Updated Date picker component to work as a standalone component.
Does this PR introduce a breaking change?
[ ] Yes
[✔] No

Other information

Let's delete the BidiModule again :)
https://github.com/NG-ZORRO/ng-zorro-antd/issues/8229#issuecomment-1839810931

Let's delete the BidiModule again :)
#8229 (comment)

Sure, I will get back to you as soon as I can :)

Let's delete the BidiModule again :)
#8229 (comment)

Changes have been made


Cherry pick Fix validation for offsets of StructArrays to active_release

Automatic cherry-pick of 078bc10

Originally appeared in https://github.com/apache/arrow-rs/pull/942: Fix validation for offsets of StructArrays

Codecov Report

Merging #946 (a132be6) into active_release (dff1411) will increase coverage by 0.04%.
The diff coverage is 98.95%.

@@                Coverage Diff                 @@
##           active_release     #946      +/-   ##
==================================================
+ Coverage           82.35%   82.39%   +0.04%
==================================================
  Files                 168      168
  Lines               48575    48668      +93
==================================================
+ Hits                40005    40102      +97
+ Misses               8570     8566       -4

Impacted Files
Coverage Δ

arrow/src/array/builder.rs
86.64% <80.00%> (+0.03%)
:arrow_up:

arrow/src/array/array_binary.rs
93.41% <100.00%> (+0.28%)
:arrow_up:

arrow/src/array/data.rs
80.72% <100.00%> (+1.16%)
:arrow_up:

arrow/src/compute/kernels/take.rs
95.23% <100.00%> (+0.14%)
:arrow_up:

arrow/src/array/transform/mod.rs
85.47% <0.00%> (+0.13%)
:arrow_up:

parquet_derive/src/parquet_field.rs
66.21% <0.00%> (+0.22%)
:arrow_up:

arrow/src/datatypes/datatype.rs
66.38% <0.00%> (+0.42%)
:arrow_up:

arrow/src/error.rs
15.55% <0.00%> (+2.22%)
:arrow_up:

Continue to review full report at Codecov.

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


Insertion ordered parameters

Summary
The information of the insertion order of parameters is present in the QuantumCircuit but actively discarded at several points. This PR changes this behaviour and updates the circuit to return parameters as list in the order of insertion. This is in agreement of dictionaries since Python 3.6, whose content is insertion ordered.
This feature is required for backward compatibility in Aqua's refactor of the variational forms, resp. the Ansatz object.
Details and comments
Since Python 3.6 dictionaries are insertion ordered, i.e. retrieving the keys of a dictionary will return an iterable mirroring the order in which the keys are inserted. In the QuantumCircuit, parameters are stored in a dictionary so the information of the insertion order is present.
Currently, we discard this information at two points:

if QuantumCircuit.parameters is called we return a set of the parameters, which can change the order
if we create a Gate or Instruction out of a circuit (by calling to_gate/instruction()), the parameters are actively sorted by name

The new behaviour ensures that parameters are insertion-sorted by

returning a list, not set, of the parameter dictionary keys
not re-sorting the parameters of the circuit

This feature mirrors the behaviour some users might expect and is necessary for changes in Aqua introduced by the Ansatz object.

For context, the initial Parameter implementation avoided setting insertion order to be parameter order to avoid ambiguities when building and composing parameterized circuits (especially if the user did not know the circuit was parameterized).

How does name-sorting avoid ambiguities that are not avoided with insertion-ordering?

Are these approaches (parameter in a list, or a ParameterVector) difficult or not feasible for the ansatz use case?

I think it's possible to implement the Ansatz with an additional list for bookkeeping. The insertion-ordering is also mainly required for backward compatibility and better visualization of the circuits.
The more elegant solution, however, is achieved with insertion-ordering. I think that's also the more natural method to store them. For instance converting a circuit to a gate and back to a circuit changes the parameter order of the initial circuit. And since the user never specified any sorting it is unexpected to happen (at least was for me, when programming the Ansatz 😄).

(I started typing this up before yesterday's discussion, so most of this has already been covered, but I'll add here for completeness.)

For context, the initial Parameter implementation avoided setting insertion order to be parameter order to avoid ambiguities when building and composing parameterized circuits (especially if the user did not know the circuit was parameterized).

How does name-sorting avoid ambiguities that are not avoided with insertion-ordering?

I agree sorting by name seems fairly arbitrary (and I agree it's worth changing), but it is consistent with regards to how the circuit was constructed. e.g. If I have two equivalent circuits, that were generated by different means, their name-sorted parameter list will always be the same.
(To maybe belabor the point, the reason this is important is that it helps to avoid a whole class of bugs that depend on how an object was created. e.g. When converting to a DAG and back, when editing gates or circuit operations in place, when reversing a circuit, etc., if tracking insertion order by dict, the order of operations becomes important in a way that wouldn't necessarily be obvious to someone not familiar with the parameters code.)

Are these approaches (parameter in a list, or a ParameterVector) difficult or not feasible for the ansatz use case?

I think it's possible to implement the Ansatz with an additional list for bookkeeping. The insertion-ordering is also mainly required for backward compatibility and better visualization of the circuits.

I'd be interested to find out more about how insertion ordering helps with backwards compatibility (just for a better understanding of the old and new ansatz structure on my part. We can talk this over offline if that's easier.)

The more elegant solution, however, is achieved with insertion-ordering. I think that's also the more natural method to store them. For instance converting a circuit to a gate and back to a circuit changes the parameter order of the initial circuit. And since the user never specified any sorting it is unexpected to happen (at least was for me, when programming the Ansatz 😄).

I agree providing a specified ordering (for circuit.parameters and circuit.to_gate().params) is better than returning a set (specifically because sets are harder to work with and more likely to confuse users).

Linked a PR above for which this has implications. Changes made to circuit should also be reflected in Schedule to maintain a consistent interface


Original XMLHttpRequest object in response

@StefanoMagrassi I added the xhr to the response object via the new sendFull function as per the other PR.
The only issue I can see is that the Error state can't get access to it. Not sure how much of an issue that is.

@gcanti what do you think about this PR? It seems ok to me

@bmazzarol @StefanoMagrassi Response already contains a headers field
export interface Response<Body> {
  url: string
  status: {
    code: number
    message: string
  }
  headers: Record<string, string>
  body: Body
}

however looks like there's a bug here https://github.com/gcanti/elm-ts/blob/0ae79d05427bfc0e433bbdef224a9180e24beb61/src/Http.ts#L144

@bmazzarol after talking with @gcanti about the Response headers bug, I decided to open a new PR (#50) which fixes the issue without exposing the underlying XMLHttpRequest object (that is a kind of implementation detail).
I hope it will help you.

@StefanoMagrassi works for me, will close this in favour of #50 and eagerly await 6.0 release


Slow search experience

User 1 creates a new entry in a collection
User 2 only shows that update in her list 4 minutes later

To be clarified on if refreshing helps
Should we implement light polling

@woodpig07 can you maybe give your ideas on what could be good approach.
Few notes:

We probably need socket.io/polling anyway, I'd prefer websocket for events of all modifications to the repo. Additional benefit is that we could leverage it for notifications like Chopper edited collection entry "Test Entry".
We  probably need some kind of iterative indexing.
One option is that we do this on commit/commit basis. This means backend knows it has indexed up to commit-x and date-y. When it gets request to re-index it will fetch newest commit number and check what files have been changed between the two commits. It then (re)-indexes those files.
We need to update how we trigger indexing.

As a short term solution that targets the usecase where file-changes happen through jekyllpro-cms:

add websocket on file-changes and re-fetch index on event
when file is modified through jekyll-cms update the index for that file
drawback: changes done directly in github still require full hard-refresh of index.

I agree on the use of socket.io to notify frontend about the modification to repo, but I believe it would act like a publish/subscribe service for the index document in mongodb, not directly triggered by user commits.
Currently we only update the index in a passive way by refreshing the app page. I had built a webhook to update index incrementally based on commit data, I'd like very much to take advantage of that for a real-time (or near real-time) experiences.
Proposed work flow:

User 1 browses on cms.jekyllpro.com/repo, the App presents the files extracted from the index saved in database, and websocket client start to listen on change events.
Somewhere User 2 make a change to the repo, the webhook catches it and starts to update index quickly as it only has to process the files related to this commit.
After it successfully write to database, socket.Io publishes it to client, then frontend requests to load latest index data, all the users on cms.jekyllpro.com/repo will see the updated file list/content.

I had built a webhook to update index incrementally based on commit data, I'd like very much to take advantage of that for a real-time (or near real-time) experiences.

Is this already in the repo? Can @haishanh leverage that already?
About using GH webhook I think we should primarily design without requiring this since this will require manual setup from the user side. Instead I would recommend this:

Modify index-refresh task to be incremental:

store commit number of last-refreshed index in db
fetch the latest commit nunber from github
return immediately if last commit is same as in db
use "Compare two commits" endpoint to get list of changed files
Index the changed files and write down the new commit-id to database
Send websocket event when index updates

Trigger index-refresh on:

Setup polling on frontend every minute to trigger index-refresh
When file is being modified through our API trigger index-refresh

Set up websocket to listen for index-updates for this repo

@woodpig07 do you think this would be ok?

Talked with @haishanh
Technical approach (first steps):

Refactor the collections field to be an object with file path as a key.
Add the lastIndexedCommit field to the database (per repo+branch)
Implement logic to trigger re-indexing, fetch the changed files from GitHub API and index the files.

Sorry for delaying...
This issue is becoming very critical now, as the sbux website repo have over 360 entries. And it's extremely slow at displaying all content after new entry is added.
In this PR https://github.com/Wiredcraft/jekyllpro-cms/pull/61
I've added a new API endpoint /api/repository/updated-collections, which will only return modified/removed entries if there are changes between 2 commits. The frontend will call this API every 8sec.
The Socket.IO is not implemented yet.
As this issue is becoming a blocker for the marketing team. I'd like to land the PR ASAP.
@JuhaS @woodpig07 Can you help review the PR?

@haishanh please go ahead merge your PR, I left a few suggestions there, hope that's helpful.

not relevant anymore


HoodRega

![Uploading 106256041...]

![Uploading 106256041...]

We like the stonk, but plz no spam. :-(

We like the stonk, but plz no spam. :-(


PS Move won't pair

Hi, I try to pair my cech-zcm2e ps move controllers using latest build of Psmoveservice from this repository. I use Asus BT400 bluetooth and 2 PS eye's (ps3). My controllers go successfully through pairing process in PS move config and then get wiped out. I have a Win 10 OS. Here is the full log:
[2019-11-26 00:20:44.355]: main - Starting PSMoveService v0.9-alpha 9.0.1 (protocol v0.9-alpha 9.0.0)
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\USBManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\USBManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\NetworkManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\NetworkManagerConfig.json"
[2019-11-26 00:20:44.379]: USBAsyncRequestManager::startup - Requested LibUSBApi
[2019-11-26 00:20:44.380]: USBAsyncRequestManager::startup - Creating LibUSBApi
[2019-11-26 00:20:44.387]: USBAsyncRequestManager::startup - Initialized USB API
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\DeviceManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\DeviceManagerConfig.json"
[2019-11-26 00:20:44.401]: DeviceManager::startup - Platform Hotplug API is ENABLED
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\ControllerManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\ControllerManagerConfig.json"
[2019-11-26 00:20:44.512]: bluetooth_get_host_address - Found a bluetooth radio
[2019-11-26 00:20:44.515]: bluetooth_get_host_address - Retrieved radio info
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\TrackerManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\TrackerManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\HMDManagerConfig.json"
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\HMDManagerConfig.json"
libusb: error [init_device] device '\.\USB#VID_1415&PID_2000&MI_01#6&366DF79D&0&0001' is no longer connected!
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
[2019-11-26 00:20:44.607]: PSMoveController::open - Opening PSMoveController(\?\hid#vid_054c&pid_0c5e&col01#6&13bc36b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030})
[2019-11-26 00:20:44.612]: PSMoveController::open -   with EMPTY serial_number
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\dc_af_68_ee_de_2b.json"
[2019-11-26 00:20:44.623]: WorkerThread::start - Starting worker thread: PSMoveSensorProcessor
Config file name: "C:\Users\kvabok\AppData\Roaming\PSMoveService\dc_af_68_ee_de_2b.json"
[2019-11-26 00:20:44.629]: DeviceTypeManager::update_connected_devices - Device device_id 0 (PSMove) opened
libusb: error [init_device] device '\.\USB#VID_1415&PID_2000&MI_01#6&366DF79D&0&0001' is no longer connected!
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
[2019-11-26 00:20:44.642]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p13) - Operation not supported or unimplemented on this platform
[2019-11-26 00:20:44.646]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p14) - Operation not supported or unimplemented on this platform
[2019-11-26 00:20:44.649]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p14) - Operation not supported or unimplemented on this platform
[2019-11-26 00:20:44.652]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p13) - Operation not supported or unimplemented on this platform
[2019-11-26 00:20:44.656]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p13) - Entity not found
[2019-11-26 00:20:44.658]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b1_p14) - Entity not found
[2019-11-26 00:20:58.844]: ClientConnection::start - Starting client connection id 0
[2019-11-26 00:20:58.846]: ClientConnection::send_connection_info - Sending connection id to client 0
[2019-11-26 00:21:01.89]: AsyncBluetoothPairDeviceRequest - Found a bluetooth radio
[2019-11-26 00:21:01.91]: AsyncBluetoothPairDeviceRequest - Retrieved radio info
[2019-11-26 00:21:01.94]: AsyncBluetoothPairDeviceRequest - Assigned host address 5c:f3:70:89:2b:e0 to controller id 0
[2019-11-26 00:21:01.96]: ServerRequestHandler - Async bluetooth request([Pair] ID: 0 Conn: 0) started.
[2019-11-26 00:21:01.97]: AsyncBluetoothPairDeviceRequest - Making radio discoverable
[2019-11-26 00:21:02.394]: AsyncBluetoothPairDeviceRequest - No Bluetooth device found matching the given address: dc:af:68:ee:de:2b
[2019-11-26 00:21:03.807]: AsyncBluetoothPairDeviceRequest - No Bluetooth device found matching the given address: dc:af:68:ee:de:2b
[2019-11-26 00:21:05.222]: AsyncBluetoothPairDeviceRequest - Bluetooth device found matching the given address: dc:af:68:ee:de:2b
[2019-11-26 00:21:05.226]: AsyncBluetoothPairDeviceRequest - Bluetooth device matching the given address is the expected controller type
[2019-11-26 00:21:06.648]: BluetoothAuthCallback - Not authenticated
[2019-11-26 00:21:06.649]: BluetoothAuthenticateDevice - Failed to authenticate!
[2019-11-26 00:21:08.61]: AsyncBluetoothPairDeviceRequest - Bluetooth device found matching the given address: dc:af:68:ee:de:2b
[2019-11-26 00:21:08.65]: AsyncBluetoothPairDeviceRequest - Bluetooth device matching the given address is the expected controller type
[2019-11-26 00:21:10.808]: BluetoothAuthCallback - Bluetooth device authenticated!
[2019-11-26 00:21:10.810]: BluetoothAuthenticateDevice - Successfully paired.
[2019-11-26 00:21:12.220]: AsyncBluetoothPairDeviceRequest - Connection attempt: 0/80
[2019-11-26 00:21:12.224]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:12.227]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:12.229]: AsyncBluetoothPairDeviceRequest - Checking HID service
[2019-11-26 00:21:12.232]: AsyncBluetoothPairDeviceRequest - HID service not enabled, attempting to enable
[2019-11-26 00:21:15.248]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:15.250]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:15.253]: AsyncBluetoothPairDeviceRequest - Verification attempt 0 / 5
[2019-11-26 00:21:15.255]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:15.257]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:15.261]: AsyncBluetoothPairDeviceRequest - HID service not enabled
[2019-11-26 00:21:15.263]: AsyncBluetoothPairDeviceRequest - Verified failed. Re-establish connection
[2019-11-26 00:21:15.266]: AsyncBluetoothPairDeviceRequest - Connection attempt: 0/80
[2019-11-26 00:21:15.268]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:15.571]: AsyncBluetoothPairDeviceRequest - Connection attempt: 1/80
[2019-11-26 00:21:15.575]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:15.878]: AsyncBluetoothPairDeviceRequest - Connection attempt: 2/80
[2019-11-26 00:21:15.880]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:16.183]: AsyncBluetoothPairDeviceRequest - Connection attempt: 3/80
[2019-11-26 00:21:16.186]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:16.490]: AsyncBluetoothPairDeviceRequest - Connection attempt: 4/80
[2019-11-26 00:21:16.494]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:16.795]: AsyncBluetoothPairDeviceRequest - Connection attempt: 5/80
[2019-11-26 00:21:16.799]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:17.101]: AsyncBluetoothPairDeviceRequest - Connection attempt: 6/80
[2019-11-26 00:21:17.104]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:17.407]: AsyncBluetoothPairDeviceRequest - Connection attempt: 7/80
[2019-11-26 00:21:17.411]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:17.713]: AsyncBluetoothPairDeviceRequest - Connection attempt: 8/80
[2019-11-26 00:21:17.716]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:18.18]: AsyncBluetoothPairDeviceRequest - Connection attempt: 9/80
[2019-11-26 00:21:18.22]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:18.24]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:18.29]: AsyncBluetoothPairDeviceRequest - Checking HID service
[2019-11-26 00:21:18.31]: AsyncBluetoothPairDeviceRequest - Verification attempt 0 / 5
[2019-11-26 00:21:18.35]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:18.36]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:18.40]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:18.45]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:18.351]: AsyncBluetoothPairDeviceRequest - Verification attempt 1 / 5
[2019-11-26 00:21:18.353]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:18.354]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:18.356]: AsyncBluetoothPairDeviceRequest - HID service not enabled
[2019-11-26 00:21:18.358]: AsyncBluetoothPairDeviceRequest - Verified failed. Re-establish connection
[2019-11-26 00:21:18.361]: AsyncBluetoothPairDeviceRequest - Connection attempt: 0/80
[2019-11-26 00:21:18.363]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:18.664]: AsyncBluetoothPairDeviceRequest - Connection attempt: 1/80
[2019-11-26 00:21:18.666]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:18.968]: AsyncBluetoothPairDeviceRequest - Connection attempt: 2/80
[2019-11-26 00:21:18.970]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:19.272]: AsyncBluetoothPairDeviceRequest - Connection attempt: 3/80
[2019-11-26 00:21:19.276]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:19.578]: AsyncBluetoothPairDeviceRequest - Connection attempt: 4/80
[2019-11-26 00:21:19.582]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:19.884]: AsyncBluetoothPairDeviceRequest - Connection attempt: 5/80
[2019-11-26 00:21:19.886]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:20.188]: AsyncBluetoothPairDeviceRequest - Connection attempt: 6/80
[2019-11-26 00:21:20.194]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:20.497]: AsyncBluetoothPairDeviceRequest - Connection attempt: 7/80
[2019-11-26 00:21:20.500]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:20.802]: AsyncBluetoothPairDeviceRequest - Connection attempt: 8/80
[2019-11-26 00:21:20.807]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:21.110]: AsyncBluetoothPairDeviceRequest - Connection attempt: 9/80
[2019-11-26 00:21:21.113]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:21.415]: AsyncBluetoothPairDeviceRequest - Connection attempt: 10/80
[2019-11-26 00:21:21.418]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:21.720]: AsyncBluetoothPairDeviceRequest - Connection attempt: 11/80
[2019-11-26 00:21:21.724]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:22.26]: AsyncBluetoothPairDeviceRequest - Connection attempt: 12/80
[2019-11-26 00:21:22.30]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:22.333]: AsyncBluetoothPairDeviceRequest - Connection attempt: 13/80
[2019-11-26 00:21:22.338]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:22.640]: AsyncBluetoothPairDeviceRequest - Connection attempt: 14/80
[2019-11-26 00:21:22.644]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:22.946]: AsyncBluetoothPairDeviceRequest - Connection attempt: 15/80
[2019-11-26 00:21:22.950]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:23.253]: AsyncBluetoothPairDeviceRequest - Connection attempt: 16/80
[2019-11-26 00:21:23.257]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:23.560]: AsyncBluetoothPairDeviceRequest - Connection attempt: 17/80
[2019-11-26 00:21:23.563]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:23.865]: AsyncBluetoothPairDeviceRequest - Connection attempt: 18/80
[2019-11-26 00:21:23.868]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:24.170]: AsyncBluetoothPairDeviceRequest - Connection attempt: 19/80
[2019-11-26 00:21:24.175]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:24.477]: AsyncBluetoothPairDeviceRequest - Connection attempt: 20/80
[2019-11-26 00:21:24.482]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:24.785]: AsyncBluetoothPairDeviceRequest - Connection attempt: 21/80
[2019-11-26 00:21:24.788]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:25.93]: AsyncBluetoothPairDeviceRequest - Connection attempt: 22/80
[2019-11-26 00:21:25.97]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:25.398]: AsyncBluetoothPairDeviceRequest - Connection attempt: 23/80
[2019-11-26 00:21:25.400]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:25.702]: AsyncBluetoothPairDeviceRequest - Connection attempt: 24/80
[2019-11-26 00:21:25.707]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:25.709]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:25.713]: AsyncBluetoothPairDeviceRequest - Checking HID service
[2019-11-26 00:21:25.715]: AsyncBluetoothPairDeviceRequest - HID service not enabled, attempting to enable
[2019-11-26 00:21:28.733]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:28.736]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:28.738]: AsyncBluetoothPairDeviceRequest - Verification attempt 0 / 5
[2019-11-26 00:21:28.741]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:28.744]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:28.747]: AsyncBluetoothPairDeviceRequest - HID service not enabled
[2019-11-26 00:21:28.749]: AsyncBluetoothPairDeviceRequest - Verified failed. Re-establish connection
[2019-11-26 00:21:28.753]: AsyncBluetoothPairDeviceRequest - Connection attempt: 0/80
[2019-11-26 00:21:28.756]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:29.59]: AsyncBluetoothPairDeviceRequest - Connection attempt: 1/80
[2019-11-26 00:21:29.64]: AsyncBluetoothPairDeviceRequest - Device not connected
[2019-11-26 00:21:29.365]: AsyncBluetoothPairDeviceRequest - Connection attempt: 2/80
[2019-11-26 00:21:29.368]: AsyncBluetoothPairDeviceRequest - Patching the registry ...
[2019-11-26 00:21:29.372]: AsyncBluetoothPairDeviceRequest - Failed to open registry key, it does not yet exist
[2019-11-26 00:21:29.375]: AsyncBluetoothPairDeviceRequest - Checking HID service
[2019-11-26 00:21:29.377]: AsyncBluetoothPairDeviceRequest - Verification attempt 0 / 5
[2019-11-26 00:21:29.379]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:29.381]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:29.382]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:29.385]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:29.688]: AsyncBluetoothPairDeviceRequest - Verification attempt 1 / 5
[2019-11-26 00:21:29.690]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:29.692]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:29.693]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:29.695]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:29.999]: AsyncBluetoothPairDeviceRequest - Verification attempt 2 / 5
[2019-11-26 00:21:30.3]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:30.6]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:30.9]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:30.12]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:30.317]: AsyncBluetoothPairDeviceRequest - Verification attempt 3 / 5
[2019-11-26 00:21:30.320]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:30.322]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:30.324]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:30.327]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:30.629]: AsyncBluetoothPairDeviceRequest - Verification attempt 4 / 5
[2019-11-26 00:21:30.632]: AsyncBluetoothPairDeviceRequest - Device Connected
[2019-11-26 00:21:30.634]: AsyncBluetoothPairDeviceRequest - Device Remembered
[2019-11-26 00:21:30.637]: AsyncBluetoothPairDeviceRequest - HID service enabled
[2019-11-26 00:21:30.639]: AsyncBluetoothPairDeviceRequest - Connected, Remembered, and HID service enabled
[2019-11-26 00:21:30.643]: AsyncBluetoothPairDeviceRequest - Verified connection!
[2019-11-26 00:21:30.645]: ServerRequestHandler - Async bluetooth request([Pair] ID: 0 Conn: 0) completed.
libusb: error [init_device] device '\.\USB#VID_1415&PID_2000&MI_01#6&366DF79D&0&0001' is no longer connected!
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
[2019-11-26 00:21:30.711]: DeviceTypeManager::update_connected_devices - Closing device 0 (PSMove) since it's no longer in the device list.
[2019-11-26 00:21:30.716]: PSMoveController::close - Closing PSMoveController(\?\hid#vid_054c&pid_0c5e&col01#6&13bc36b9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030})
[2019-11-26 00:21:30.721]: WorkerThread::stop - Stopping worker thread: PSMoveSensorProcessor
[2019-11-26 00:21:30.723]: WorkerThread::stop - Worker thread stopped: PSMoveSensorProcessor
[2019-11-26 00:21:35.464]: ClientConnection::handle_tcp_read_request_header - Failed to read header on connection 0: ╙фрыхээ√щ їюёЄ яЁшэєфшЄхы№эю ЁрчюЁтры ёє∙хёЄтє■∙хх яюфъы■ўхэшх
[2019-11-26 00:21:35.484]: ClientConnection::stop - Stopping client connection id 0
libusb: error [init_device] device '\.\USB#VID_1415&PID_2000&MI_01#6&366DF79D&0&0001' is no longer connected!
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent
libusb: error [windows_get_device_list] program assertion failed - existing device should share parent

I had the same problem and after some research it turned out that windows update 1903 missed up some blutooth settings with psmoveservice.
Check this build:
https://github.com/psmoveservice/PSMoveService/issues/631#issuecomment-515784561
You will find a psmoveservice admin file to download, download and reolace ur file but keep the original one because you will need to revert back to it after pairing. Thia build will get your controllers to finally pair but thats oboy for pairing u need to use the original one after that.
I hope it works for you .


Add CredScan suppression file

All of these were excluded in upstream corefx/runtime and have nothing concerning

Do you have the proper approvals from the contacts who created those issues ?


add footer

Adds footer for the website with sitemap links, social links and about. This is important because the footer is reusable through various pages and can be used to overview various pages on the website and highlight social links.
Fixes #1

[x] My Pod Leader knows I'm working on this Pull Request
[x] I've explained what the Pull Request is adding.
[x] I've explained why this is important.

CC: @amv2

@akshitadixit please review the PR and let us know if any changes are needed

It is good practice to use present tense in commit messages. Words like changed, removed should be replaced with change and remove for next time :)

LGTM 🚀


Circle back: will temperature be problematic?

If the temperature is high in one experiment, it might take time to cool down.


charuco builder updates

[ ] limit charucos to those with at least 6 corners for stereocalibration
[ ] revise language and presentation for "true up length
[ ] Note which corner is the (0,0,0) point for setting world origin


Remove Sub-title test from front end

Remove 'The Regulatory-Grade Database for Infectious Disease Detection' from DB per FDA Request. This is an urgent task.

Hi, so to clarify, you want me to remove the statement "The Regulatory-Grade Database for Infectious Disease Detection" from the Landing page?


Add AddClientCommandParserTest

Codecov Report

Merging #94 (8730268) into master (d1e6f58) will increase coverage by 2.19%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master      #94      +/-   ##
============================================
+ Coverage     43.29%   45.49%   +2.19%
- Complexity      442      458      +16
============================================
  Files           118      118
  Lines          2275     2275
  Branches        263      263
============================================
+ Hits            985     1035      +50
+ Misses         1211     1154      -57
- Partials         79       86       +7

Impacted Files
Coverage Δ

...eedu/address/logic/parser/ClientCommandParser.java
84.84% <100.00%> (+57.57%)
:arrow_up:

...a/seedu/address/model/client/UniqueClientList.java
18.51% <0.00%> (+1.85%)
:arrow_up:

...seedu/address/model/project/UniqueProjectList.java
23.07% <0.00%> (+1.92%)
:arrow_up:

...in/java/seedu/address/logic/parser/ParserUtil.java
65.59% <0.00%> (+4.30%)
:arrow_up:

...main/java/seedu/address/model/project/Project.java
52.00% <0.00%> (+14.00%)
:arrow_up:

...c/main/java/seedu/address/model/client/Client.java
60.00% <0.00%> (+16.00%)
:arrow_up:

...ddress/logic/commands/client/AddClientCommand.java
31.57% <0.00%> (+31.57%)
:arrow_up:

...va/seedu/address/logic/parser/ClientCliSyntax.java
80.00% <0.00%> (+80.00%)
:arrow_up:

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


FIX: .ladda-label building is no longer recreating nodes

innerHTML is replaced with Range.

Looks like a good improvement. What's the browser support for this?

http://caniuse.com/#feat=dom-range (IE9+)

Cool, this has been merged in. Thanks!


Outline panel strange resizing

While working typically I sometimes resize the Joplin window.
If I do so, it is mostly the editor and the preview that change. However, since installing Outline, the Outline panel size fluctuates wildly when resizing. Hence, I basically always need to resize the panel width after resizing the window.
Expected behavior:
either fixed width of panel or panel resizes in proportion to total window resizing.
(If this would be easier with a panel on the left side of the editor, I would also welcome this.)

Hi, have you tried to place outline panel to the left side of editor?
outline panel on the left side of joplin editor is not affected while resizing joplin window.
I hope this tip helps. :smile:

Thanks a lot. This was my mistake. I was not aware that a complete relayout is possible. Indeed, when putting it on the left, it just works ;-)

Yes, if the outline panel at right-most position, drag panel edge to resize, then toggle panel, you can see that panel auto resize to default width. And the default width is too large, to avoid that, open menu about view change, can move outline panel to left position. After move, outline panel will not change size when toggle it.
By the way, I try to modify the css, but not useful.

@shellspicker How to move outline panel to left? Thanks.

@shellspicker How to move outline panel to left? Thanks.

That's easy, it's a option for panel move, you can find it in menu.


Modified file/unsaved work indicator no longer appears when tab close button is disabled

Issue Type: Bug
Previous to the most recent update, the modified file indicator would appear in file tabs even if the tab close button was disabled. This was desirable because I always want to know if I have unsaved changes in files at a glance, even if I've hidden the close buttons to avoid misclicking, make tabs appear cleaner, or make tabs more compact. But the latest update appears to make this indicator's visibility tied to the visibility of the tab close button:

Set "workbench.editor.tabCloseButton" to false
Open a file.
Make a modification to that file.
Observe that the "modified file" indicator does not appear in the file tab.

VS Code version: Code 1.39.1 (88f15d17dca836346e787762685a40bb5cce75a8, 2019-10-10T23:35:11.314Z)
OS version: Darwin x64 18.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz (4 x 2300)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
16.00GB (7.99GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

indented-block-highlighting
byi
1.0.7

luxe
lux
0.0.3

vscode-wren
nel
0.1.1

(3 theme extensions excluded)

/duplicate of #82213


⚠ Issue - The 'Build Forms With API Routes' docs is not working

The following example in the docs is not working: https://docs.astro.build/en/recipes/build-forms-api/.
I've done everything according to the example, but when submitting the form, it appears to not work. The submit function doesn't do anything.
What am I missing here?

Forgot to add client:load to the component!

Forgot to add client:load to the component! It's working.