Merge correlation log feature to APIM

Description
Need to merge the correlation log related PRs to APIM. There are merge conflicts and test failures. To be done after completion of https://github.com/wso2/api-manager/issues/973

[ ] Merge https://github.com/wso2/carbon-apimgt/pull/11323
[ ] Merge https://github.com/wso2/carbon-apimgt/pull/11668
[ ] Merge https://github.com/wso2/product-apim/pull/12950
[ ] Check and merge https://github.com/wso2/carbon-mediation/pull/1643

Affected Component
APIM
Version
4.2.0-SNAPSHOT
Related Issues
No response
Suggested Labels
No response

Update [2022-12-02]
Since author  of the 1st PR is no longer available in the company, there is no way to do the changes to that PR and solve merge conflicts. Because of that, created a fresh branch on local fork and rebase it with the current master of carbon-apimgt. Then fetch authors fork as a remote to the branch and start cherry picking its commits to branch.
Cheery-picked,

c8a31da06ab19d42e8fc69e864e295ba87f0165b
ec270cbe639304d5a4a61396593d96f04703a8b0
ac66ac1a5049c8c4bdcf49a14c390881022a5168
15031aee094e466355d15e856fa89194d1703440
41ca78fef07c76ea1c4118ef6fa4c28ef948906d
fa4089e7c216c65200a71389dc9484988d5ac70d
1bbeb3f808164e10c1ac22d8fd5d0cc100a098ff

In fa4089e7c216c65200a71389dc9484988d5ac70d and 1bbeb3f808164e10c1ac22d8fd5d0cc100a098ff, there were some merge conflicts with current master. Solved them after comparing the files in that time and current files. Pushed those commits with changes to this brach.

Update [2022-12-02]
Cherry picked nother 11 commits left in the PR. There were merge conflicts while cherry-picking below commits.

40555f547a0b49baf98e933ea84b26ab4d604394
fa423383c8d980c9e7f9510e57e2dfc43ea3f8e1
b7af3b2321fb9e31e359fe0c2e58a9e1202b7cde
a07155d4da9fed0e3065cb8e738f1877520464b6
3fa740bd9ac9f3a6d04dcca13830a7fcd7302363
ffebd3fda75f5cc915fd1a2f723106cd2faaa95b

Solved them after comparing the files in that time and current files. Pushed those commits with changes to this brach. Then built carbon-apimgt with unit tests and observed that the built was a success. Then sent the PR to carbon-apimgt master. (Click here for the PR)

Update [2022-12-05]
Cherry picked the third PR which introduce integration tests for correlation logs functionality. There were no conflicts with current product-apim master. Build the product with the above mentioned carbon-apimgt which included correlation logs functionality.
Then executed the integration tests of the product-apim locally and observed that newly added correlation-logs test cases are keep failing.
Since this issue can arise from two scenarios which are [1] problem with the implementation of the functionality, and [2] problem with the implementation of tests,
Manually checked the functionality using the built product.

Enable correlation with the start of the sever
Enable some modules of correlation logs using curl while server is running
Disable some modules of correlation logs using curl while server is running
Getting the correlation logs status using curl command

Above scenarios were manually tested and observe the correlation logs. Noticed that functionality works fine. Because of that, was able to came to the assumption of problem is in test implementation.

Update [2022-12-05]
Debugged the first test case and observed that 1st test case in failing because even though synapse correlation logs enabling and disabling state works fine, synapse correlations logs are not printed to the file. Hence correlation logs of synapse is not working properly.
Searched for the reason to that behaviour and any problems of the implementation and found out that this is because carbon-medation changes are required to work correlation logs of synapse properly. In order to verify this, cherry picked the commit of the 4th PR and build the carbon-mediation. Used a previous tag since current version is keep failing due to Synapse upgrade. After building the product using these, noticed that now synapse correlation logs are working fine. Hence, that PR is need to be merged in order to work this function properly. Noticed that another skipped test case is now failing with the 2nd test case which was failing earlier. Debugged and observed that this is due to persisted correlation component configurations failure.

Update [2022-12-06]
Manually tested the scenarios which are failing. Checked the correlation logs after sever restart and checked the status. Functionality was ok and since the functionality was ok, decided that problem lies with the test case. Debug the test case and identified that it's because the test is failing to track any logs after server restart.
Did some changes to test to fix the issue and run backend-test module of the product to check. After the changes, all the tests passed. Since tests are passing, built the product-apim with related integrations tests. Noticed that another unrelated few tests were failing. (Some server restart tests). Change and waiting time of the test server restart and then noticed that build is giving a different error after that change.

Update [2022-12-08]
Got merged the 4th PR as it was found that it is needed to the functionality of Synapse correlation logs. By doing so, noticed that carbon-mediation build is failing due to a compilation error.
Fix that issue using PR 1654. Added change is merged to the master of carbon-mediation.
Found the issue with carbon-apimgt. After fixing the issue, noticed that problem is solved using a build with enabled benchmark tests and related backend-tests. Added change was also commited to the carbon-apimgt PR since it is needed after rebasing with new master of carbon-apimgt.


[v1.1.1]failed: the work directory must be found in the go mod or the $GOPATH

macOS: 12.3.1
goctl-intellij version:1.1.1
go-zero version: 1.3.3
goctl version 1.3.5 darwin/amd64
use goctl rpc protoc account.proto --go_out=. --go-grpc_out=. --zrpc_out=. generate success.
Right click to use goctl to generate rpc code, the following error occurs:
14:32	Use shell: bash
14:32	lookup at PATH: /usr/bin:/bin:/usr/sbin:/sbin
14:32	lookup at the default GOPATH: /Users/golang/go/bin/goctl
14:32	Use shell: bash
14:32	goctl:/Users/golang/go/bin/goctl
14:33	$ goctl rpc protoc -I /Users/golang/Documents/git/wallet-core/service/account/rpc /Users/golang/Documents/git/wallet-core/service/account/rpc/account.proto --style gozero --zrpc_out /Users/golang/Documents/git/wallet-core/service/account/rpc --go_out /Users/golang/Documents/git/wallet-core/service/account/rpc --go-grpc_out /Users/golang/Documents/git/wallet-core/service/account/rpc --home /Users/golang/.goctl
14:33	Exit code 1
14:33	get project context from workdir[/Users/golang/Documents/git/wallet-core/service/account/rpc] failed: the work directory must be found in the go mod or the $GOPATH
sh: go: command not found

It seems that your are not installed golang on you machine!

go version go1.17.2 darwin/amd64

It seems that your are not installed golang on you machine!

go version go1.17.2 darwin/amd64

It seems that your are not installed golang on you machine!

goctl version 1.3.0, goctl-intellij version 1.0.0 and earlier versions can be used normally

same issue


fixes #6119

Reference Issue
Fixes #6119.
What does this implement/fix? Explain your changes.
When merging explicit H queries a warning should be thrown.  When "[#6, #1]" is inputted it goes through smoothly when it shouldn't. The fix implemented now allows the function isQueryH() in addHs.cpp to recognize 0 degree H queries and throw a warning.
Any other comments?

Thanks @dessygil !


db.xxxx.save with no PK is attempting UPDATE rather than INSERT

see https://gist.github.com/cwgabel for code, logs, ddl.

Is there a sequence created for your user_code column? It looks like you have specified an integer type, and set up a constraint, but I think without explicitly creating a sequence or declaring the user_code column as a serial type (which causes the sequence to be created), your default won't work?
Not sure if that's related, and I'm on the road at the moment. But if you are not explicitly creating a sequence for the user_code column, I'm wondering if this is a contributing factor?

I have user_code tied to a default value using users_sequence (see the gist for the DDL). The sequence must be working for the INSERT that did work in the code (via db.run) for it did not contain a user_code value (per DEFAULT). I added the db.run just to make sure I could INSERT correctly and help alleviate reason as to why the db.users.save is failing.

Unless I am totally missing something, the sequence will not be created using the DDL you have provided, unless you are creating it somewhere else using CREATE SEQUENCE. In fact, the DDL you reference fails in pgAdmin3 because the sequence doesn't exist.
Still seems like Massive should be trying (and, worst-case, failing) to execute INSERT and not UPDATE, tho...
Just as a sanity check for me, can you drop/create the table, and try using:
CREATE TABLE users_test
(
  -- change this:
  user_code serial primary key not null,
  username character varying(15) NOT NULL,
  firstname character(15) NOT NULL,
  lastname character(15) NOT NULL,
  email character varying(100) NOT NULL,
  password character varying(100) NOT NULL,
  birthday date NOT NULL,
  provider character varying(15) NOT NULL,
  salt character varying(100) NOT NULL,
  created timestamp without time zone NOT NULL DEFAULT ('now'::text)::timestamp without time zone,
  -- ditch this:
  -- CONSTRAINT user_code_pk PRIMARY KEY (user_code),
  CONSTRAINT email_uix UNIQUE (email),
  CONSTRAINT username_uix UNIQUE (username),
  CONSTRAINT email_blank CHECK (email::text <> ''::text),
  CONSTRAINT firstname_blank CHECK (firstname <> ''::bpchar),
  CONSTRAINT lastname_blank CHECK (lastname <> ''::bpchar),
  CONSTRAINT users_password_check CHECK (password::text <> ''::text AND char_length(password::text) > 5),
  CONSTRAINT users_provider_check CHECK (provider::text <> ''::text)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE users_test
  OWNER TO postgres;

And then try running your Massive.js code?
In the tests, we use save with and without the PK, and it works as expected. I'm not saying you're wrong here (at all!) just trying to trouble shoot. I'll try to fire up something similar here when I get back to my hotel, and see what there is to see.

Thanks for looking at this.
I got the same same thing with userstest.  Not sure what the update is all about.
Logs still show an update...
015-04-27 19:59:33 CDT 42P00ERROR:  inconsistent types deduced for parameter $1 at character 37
2015-04-27 19:59:33 CDT 42P00DETAIL:  text versus character varying
2015-04-27 19:59:33 CDT 42P00STATEMENT:  UPDATE "userstest" SET "username" = $1, "firstname" = $2, "lastname" = $3, "password" = $4, "birthday" = $5, "provider" = $6, "salt" = $7
WHERE "email" = $1 RETURNING *

@cwgabel - Think I see the issue.
If you pulled Massive down from NPM, that version is missing some recent fixes. Particular to your issue, #53 Correct Join on Tables.sql Query to Return Single Row per Table fixed a situation where more than one row was being returned as a table primary key.
The issue is caused in part by your DDL, which specifies a Primary key, and two UNIQUE constraints. For some reason, Postgres considers these to be part of a primary key. Prior to the fix implemented in THIS commit, the tables.sql query was returning all three columns as rows, and assigning the last (email) as the pk for your table. So, since Massive checks to see if the table pk is provided and has a value, it found both and assumed you are trying to UPDATE.
Until we psuh an update to NPM, if you go into the node-modules directory, and change the tables.sql to THIS:
select tc.table_schema as schema, tc.table_name as name, kc.column_name as pk
from
    information_schema.table_constraints tc
    join information_schema.key_column_usage kc
        on kc.table_name = tc.table_name and
           kc.constraint_schema = tc.table_schema and
           kc.constraint_name = tc.constraint_name
where
    tc.constraint_type = 'PRIMARY KEY'
order by tc.table_schema,
         tc.table_name,
         kc.position_in_unique_constraint;

SHOULD fix the problem.
I am curious about the UNIQUE constraints doubling up in the PK, though. Gotta go check the Postgres docs on this.

Thanks for your help, works great now.


brave: 1.5.115 -> 1.5.123

Motivation for this change
Keep Brave Browser up-to-date
Things done
Update version and checksum. Tested the build as well.

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

LGTM

The PR title should be renamed to 1.5.123.

The PR title should be renamed to 1.5.123.

Yeah, I forgot to change this one. I changed it now.. thank you :)

@GrahamcOfBorg build brave


sbt: 1.5.5 -> 1.5.6

Motivation for this change
CVE-2021-44228: https://github.com/apache/logging-log4j2/pull/608
https://github.com/sbt/sbt/pull/6743
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Should be backported to 21.11


Disble chat window for languages w/o auto translation

If no automatic translation is available for a language, the chat bot should be disabled. Alternatively: per language activation?

We can potentially solve this issue with a powerful enough LLM.


pull request for e2e test at 11/29/2016 15:56:03

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


Add From/To (non-envelope) headers to email notifications.

:+1:
When we allow custom templates this will get more interesting.


Update to core 0.100.4

Fixes #3540. Fixes #3547.

CI failures are unrelated to the changes in this branch, and I'm poking at them in https://github.com/realm/realm-cocoa/pull/3578.

@bdash @jpsim

Thanks for taking care of writing the test cases for the query fix.
👍

👍


FIX: adapt to string reading in h5py >= 3.0

fixes #81
How does it work?

Keeps full backwards compatibility for h5py == 2.*

for h5py >= 3:

If legacy API -> keeps conformance to netCDF4 (decoding strings by default, raise TypeError if decode_strings is explicitly set
If new API -> keeps backwards compatibility for the moment (decoding strings by default, emit FutureWarning if decode_strings is not explicitly set, decoding can be deactivated by setting decode_strings=False )
In future versions conformance with h5py >= 3 will be ensured by not decoding strings by default. String decoding can be requested by setting keyword argument decode_strings=True.

@shoyer Seems that Travis-CI isn't running. Locally it works nicely and downstream xarray-testsuite also works with the proposed changes.

Will be happy to see this released! :)

@shaunc It might be necessary, to check if the object is really a string .
Another problem is, unfortunately, that the Travis-CI hooks via travis-ci.org which got out of service recently and the repo isn't moved to travis-ci.com yet.
We might need to wait until @shoyer can take a look at this.

@kmuehlbauer Well -- thanks for your work! I'm an Xarray user. Currently I have a wrapper function around my open_data{set/array} which reconverts strings -- obviously not ideal!

@shaunc Yeah, xarray-user (and part-time contributor) here too.
I would volunteer to help in maintaining h5netcdf.

@shoyer Thanks! I've just accepted the invitation. First thing would be to get CI back. To get Travis back running it would need to move the repo from travis-ci.org to travis-ci.com.

OK, seems the test did actually run, but are not linked here. I'll look into this the next days.

If you're up for it, I would suggest trying to migrate CI from Travis to GitHub Actions. It seems like Travis is not interested in supporting open source any longer, so we will probably have to do this eventually. The setup is pretty simple, all in one file: https://github.com/h5netcdf/h5netcdf/blob/master/.travis.yml

@shoyer I'll give GitHub Actions a go in my fork first. We'll see how this works out.

@shyoyer How should we move forward with this? Do you think the proposed fix will work in all cases, or should there be a more extensive test for string/type?

@shoyer @drew-parsons
I've implemented the solution discussed in #81. I'm not sure, if I'm overly strict with the conditionals. Any suggestions for improving are very much appreciated.

@shoyer @drew-parsons
I've implemented the solution discussed in #81. I'm not sure, if I'm overly strict with the conditionals. Any suggestions for improving are very much appreciated.

gentle nudge @shoyer

gentle nudge @shoyer

I've tested the patch on Debian.  It's working fine, test logs reported at
https://ci.debian.net/packages/p/python-h5netcdf/unstable/amd64/
https://ci.debian.net/packages/p/python-h5netcdf/testing/amd64/

I've tested the patch on Debian.  It's working fine, test logs reported at
https://ci.debian.net/packages/p/python-h5netcdf/unstable/amd64/
https://ci.debian.net/packages/p/python-h5netcdf/testing/amd64/

@shoyer Is there anything left here to do, to finalize string handling for h5py>=3.0. I've tried to implement based on discussion in #81. We would also need to cut a release (0.9.0 ?) to make this available downstream (eg. xarray).

@shoyer Is there anything left here to do, to finalize string handling for h5py>=3.0. I've tried to implement based on discussion in #81. We would also need to cut a release (0.9.0 ?) to make this available downstream (eg. xarray).

thanks for your patience here on the review! please take a look at my comments

@shoyer I've update the PR per your suggestions.
I've also simplified the tests. Now only the new API tests are run with decode_strings = [True|False].

@shoyer  After finally fixing the string check, everything looks good from my side. I've updated the OP with a short description of how this works.

Hi @kmuehlbauer!
I see you removed Python 3.6 from the CI, does that mean that the fix in this PR does not work as intended on Python 3.6?
setup.py still reports Python 3.6 as supported, so I'm getting mixed signals here :sweat_smile:

Hi @1ace, it should work with 3.6, too. It's just that I've removed the 3.6 builds, which had temporary failures back then, which I can't reproduce now.
But anyway, as we had to double the build matrix due to cover h5py=2/h5py=3, I would consider testing recent 3 Python versions as sufficient.

@1ace If you encounter any problems on your way, please open an issue with details.

Awesome, thanks for the confirmation!
I'll make sure to report any issue when we do perform the upgrade :+1:

@1ace You might want to wait with your upgrade, see #84 and #85. While testing downstream (xarray) I've discovered a small but problematic inconsistency with the current code which lead to possible unwanted decoding of strings.

@shoyer Are there any concrete plans for an updated (pre-)release with this fix included?

Are there any concrete plans for an updated (pre-)release with this fix included?

Are you referring to this PR? This is actually available in h5netcdf 0.9.0. If you refer to #84, #85, no this is still worked out how and where this could potentially be tackled.

Are there any concrete plans for an updated (pre-)release with this fix included?

Are you referring to this PR? This is actually available in h5netcdf 0.9.0. If you refer to #84, #85, no this is still worked out how and where this could potentially be tackled.

Ah, nice. I somehow only checked the GitHub releases, where 0.8.1. was still the latest. Thanks for replying so quickly and clarifying this!

@1ace @pikulmar
FYI: It turned out, that in accordance with backwards compatibility with h5py2 and conformance with netcdf4 we had to restrict the string decoding to vlen strings only (#84/#85). So from h5netcdf 0.10.0 the keyword changed decode_vlen_strings and you can opt-in/opt-out early by setting to True/False (defaulting to True, will change to False in future versions).


DASHBOARD: equivalence classes in implication matrix image

Is your feature request related to a problem? Please describe.
Looking at the red and blue colored image on the dashboard page, I see a lot of repeating patterns that I think are the result of the members of large equivalence classes being spread out row and column wise. While satisfying to look at, I fear that this tartan-like pattern is hiding more interesting and fundamental details.
Describe the solution you'd like
Perhaps subtler details of greater value will emerge if the image rows and columns are sorted by equivalence class, such that an equivalence class will make up a single continuous block in the image. Or, to lend less weight to large equivalence classes, one could grant only one row/col to any known equivalence class.

Assuming equivalence classes are collapsed, what should the left-right/top-down sorting be? Should it still just be the numeric identifier of the equation? Is there some other 'more natural' sorting? That seems like it may contribute to whether you can 'see' a pattern or not, but perhaps it would stand out regardless.

Good question. There might not be a single correct group ordering. Different orderings might yield different insights. That said, I have some ideas. I think it could make sense to order the groups by the number of implications by each group. One would then have some similarity with the Grahiti graphs, having the Equation 2 equivalence group at the bottom and the Equation 1 group at the top.
If there are other ideas for ordering, I think the best way to determine what gets to occupy the dashboard is to just generate images for all of them and compare them.

I went ahead and wrote some shitty code along the lines described above. This was the result:

The image sure becomes a lot more red with equivalence classes collapsed.

[...] one wants an image that actually conveys information to a human viewer (in contrast to images such as QR codes which are designed to convey information to machine viewers).

Fully onboard with this. It's just a question about which information one wants to convey. I can see these kinds of pictures being useful for two distinct purposes:

Conveying the progress of the project.
Conveying some form of mathematical intuition about the equation and implication set.

My hunch at the moment is that the first proposal is better suited for both, but I'm not a mathematician, so I won't pretend I'm the best judge of this. So, do let me know whether there's variations on grouping and ordering of equations you think could be useful: I could try to render them.
Some other observations of mine from the first picture:

The rectangles stringed along the diagonal represent the mutual implications internal to the various equivalence classes, with the side length representing the size of the class.
It seems like the only times we get blue color on the upper right side of the diagonal is as part of these rectangles on the diagonal. Hence, the few open problems beyond the diagonal could represent (relatively) low hanging fruit.
There's still a handful of open questions touching the diagonal. I think settling these problems would finalize the equivalence classes.

These are probably trivial observations, but I found them interesting.


Search box title is too long in German

preventing users typing a query.
(user reported)

Fixed here: https://github.com/sky-map-team/stardroid/commit/76f4cd83b1713d4976982c89deb029674fdf7cc1


Support chain binary download

Add an option to download the binary instead of building it from source.

[ ] Add support for arch after 143 merged


Add keep-alive support

I simply use net/http/persistent for easy keep-alive implementation
A little benchmark:
require './rest-client'
require 'benchmark'

puts Benchmark.measure{ 10.times{ RestClient.get('http://www.google.com/').length } }
RestClient.persistent = true
puts Benchmark.measure{ 10.times{ RestClient.get('http://www.google.com/').length } }

I get those numbers
  0.080000   0.010000   0.090000 (  1.365598)
  0.030000   0.000000   0.030000 (  0.354387)

For now the integration is a bit "Quick & Dirty". It's just to show the eventual benefits.
But if you like the idea I can clean it up and add test coverage.
Regards,

@ab Any particular reason you held off on merging this? Alternative solution?

This is still on my mind, but I'm not yet going to be able to get to this in the next release. The blocker is that it introduces major inconsistency in the exceptions raised / API / expected behavior between when persistence is enabled vs. not.
Ideally we would implement keepalive support in a way that does not change the API.

Since ruby 2.0, the net/http in the stdlib support keep alive out of the box. You simply need to set the keep_alive_timeout property.
I no longer use rest-client, so I won't update this PR. But you guys should be able to reimplement this easily without any drawback.

@byroot what do you use instead?


Add user profile

Possibly with user customization

Branch issue-3-add-user-profile created for issue #3.


enable sandbox for renderers that don't run node

@bbondy

Looks good. Great work on all of this!

Can you submit this and #10 to Electron itself?

Absolutely @paulcbetts, but this needs a small change first. We temporarily worked around this issue in the browser-laptop code, but right content scripts enabled on renderer start will stay enabled for all pages even if you change them based on url. We will fix this by adding content matching rules like the chrome webview tag, but for now I can pull out the ShouldFork changes related to the work we did for window.opener and create a new PR for Electron.

I could also leave out content scripts entirely for now and come back with another PR when they are ready for general use

@bridiver That'd be awesome! What's the difference between content scripts and preload scripts - is it just the node integration aspect?

Yea, the content scripts still have access to ipcRenderer send, sendSync and sendToHost, but the functions are bound to plain v8 objects and they are removed from the global context before the page gets access to the script context. I wanted to keep the functionality without breaking existing node-based preload functionality


Arc sync can now push arc to previously non-existing gitlab repository

If a remote repository was specified when iniating the arc or running arc sync, the ArcCommander tries to fetch and push from and to this repository.
Now the ArcCommander checks whether this remote does actually exist. If not, it throws the followign error:

Using the arc sync -f, the ArcCommander now instead tries to directly push the changes to the remote server. Creating a new remote repository. This only works for Gitlab, and not for GitHub.

As this does not work for GitHub without additional work by the user, additional info would be good to guide the user, if he uses arc sync -f to push to a non-existant github remote repo.

arc sync -f now let's the user know that cli repository initiation is not supported on github using standard git


BCI-2953: Added Report Format for Aptos

Parent Ticket: https://smartcontract-it.atlassian.net/browse/BCI-2953
Parent PR: https://github.com/smartcontractkit/chainlink/pull/13564
Context:

Aptos Keystore Integration is blocked by this addition (CI) for LLO integration tests. The integration tests checks chainlink-common for report format based on chaintypes.

Changes:

Adding ReportFormatAptos and String functions

Note:

I want to make sure that this PR does not break anything on Core. I have the matching PR up on core, which is only blocked by this changes.

Will merge this in once Core PR gets approved
https://github.com/smartcontractkit/chainlink/pull/13564


Review Properties on all public Tag Helper IR Nodes

My notes from review of all of our IR:
General
Want to consider a rename from FooIRNode -> FooIntermediateNode
What things need a source besides tokens? where is it used?
Can we get rid of AccessModifier where it appears?
Preallocated Nodes
Move to .Extensions namespace (still internal)
Using

UsingStatement -> UsingDirective (a using statement is something else altogether)

Tag Helper

Should have tag helper descriptors

Tag Helper Body

Should have tag helper descriptors

Set Tag Helper Property

Needs lots of love
Should not have a type name
Can we get rid of property name (redundant)?
Can we get rid of attribute name?

DirectiveIRToken

Can we get rid of it and use regular token?

DeclareTagHelperFieldsIRNode

Can we delete it?

Checksum

Can we delete it?

AddTagHelperHtmlAttributeIRNode

Better name?

@ajaybhargavb - let's divide and conquer to make these a reality.

What things need a source besides tokens? where is it used?

From a preliminary investigation, here is what I found. Note: this is not an exhaustive list.

Nodes
Reason

UsingDirectiveIRNode, CSharpExpressionIRNode, InjectIRNode, CSharpCodeIRNode,, CSharpCodeAttributeValueIRNode, CSharpExpressionAttributeValueIRNode and a few more I may have missed
Needs source to build line pragma

DirectiveIRNode
We use the FilePath from Source for some special stuff. Eg: namespace directive https://github.com/aspnet/Razor/blob/dev/src/Microsoft.AspNetCore.Mvc.Razor.Extensions/NamespaceDirective.cs#L94

HtmlAttributeIRNode and HtmlAttributeValueIRNode
We use the source to write the prefix and suffix location for BeginWriteAttribute method Eg: BeginWriteAttribute("class", " class=\"", 126, "\"", 142, 2);Similarly for the value node.


Prevent XMLHttpRequest in socket.io from being faked

Pretender (amongst others) swaps out window.XMLHttpRequest for a fake XHR object and undoes the fake at the end of each test. This obviously presents an issue for async tests where Testem might want to communicate over XHR midway through a test.
This patch keeps a reference to the original window.XMLHttpRequest as a variable within the lexical scope of the module that uses it.
See this test case with ember-cli + pretender for a reproduction.
Run ember test --server in the repo to see Firefox get stuck in an reload loop. This patch should fix that.

I think it's better when you patch this outside socket.io.js as I would like to remove this file as soon as a new socket.io version is released.
Just put a new file into public/testem and add it here: https://github.com/airportyh/testem/blob/master/lib/server/index.js#L196

I can't think of a way to apply this patch from outside of socket.io.js. One of its modules exports a function which refers to XMLHttpRequest. All I did was to create a local binding to the global variable within the module, but outside the function. As a result of this, local XMLHttpRequest variable is evaluated only once and always refers to whatever window.XMLHttpRequest was referring to at the time of module evaluation.
However, I agree that maintaining a patched version of socket.io is not the clearest thing in the world. There are two solutions we can go for to mitigate the issue:

Submit a patch for socket.io itself. This, however, will prevent XMLHttpRequest from being faked even when needed - i.e., in cases when the project we are testing relies on socket.io and we do want to fake it.
Use pretender.passthrough to always use native XMLHttpRequest for a subset of URLs used to communicate with testem. This is probably the cleanest solution.

It seems like we should pursue both solutions.
For the next move, I suggest a documentation PR to trek/pretender explaining how to mitigate this problem using a passthrough for /socket.io.

@Dremora I PR-ed a solution, which doesn't require patching and tested it with your repo. https://github.com/airportyh/testem/pull/457 Does this work for you?

@johanneswuerbach looks good :+1:

@Dremora in light of #457 you can close this PR. Glad we were able to solve this cleanly.


Incorrect Validation for ResourceNameRestriction

https://github.com/Azure/azure-rest-api-specs/pull/22978/checks?check_run_id=13024521883

The resource name parameter 'notificationName' should be defined with a 'pattern' restriction.
Location: Microsoft.ApiManagement/preview/2022-09-01-preview/apimworkspaces.json#L1828

The parameter already has restriction as defined here
https://github.com/Azure/azure-rest-api-specs/blob/e6e61df03b325344f43cdfe756c44ed58d94e409/specification/apimanagement/resource-manager/Microsoft.ApiManagement/preview/2022-09-01-preview/apimanagement.json#L467

Same issue for
https://github.com/Azure/azure-rest-api-specs/pull/22978/checks?check_run_id=13024521967

The resource name parameter 'accessName' should be defined with a 'pattern' restriction.
Location: Microsoft.ApiManagement/preview/2022-09-01-preview/apimtenant.json#L354

@JackTn this is an issue in the tooling itself.

@solankisamir My fault. I create a new issue https://github.com/Azure/azure-openapi-validator/issues/501 on https://github.com/Azure/azure-openapi-validator#azure-openapi-validator repo. You can follow that one and i close this one. Thanks !


Unable to join vanilla 1.13.2 Server

I can Connect, it gets to Downloading world and spawns some Entities, but then "Disconnected: Connection closed"

Setting server property View Distance to 5 solved the issue

Chunk loading performance has greatly improved. Default view distance should work fine now.


suggestion for description

Change the description above the project to "Coalesce for JavaScript. Returns the first value that is not undefined or null".

done


Context Menu on tablets

Is there a way how to simulate right click on tablets? (iOS, Android) Any idea how to make context menu available on touch devices?

I'm missing this too.
There is an interesting approch with gwt and touch devices
http://gwt-fast-touch-press.appspot.com/
https://github.com/ashtonthomas/gwt-fast-touch-press

At least Android devices should open the context menu with a long tap. There were some issues with iDevices with the same approach.

You are right, but the iDevices will mostly be used by "important" people who are not interested in technical disabilities.

Not sure about Safari in iOS 10, but at least in iOS 9, Safari doesn't fire contextmenu event on long tap, it needs to be simulated.

Please prioritize this - it works fine for actions on tables on an ipad, so it should be possible to get it working similarly with contextmenu on any odd component.

@KimRasmussen if you're able to use Web Components, you might want to take a look to https://github.com/vaadin/vaadin-context-menu which does support also iOS.

@Saulis Thanks for the pointer. In this case, I would prefer to use the regular context menu, and not web components since the rest of the application is located mostly on the server.

Just out of curiosity I dug around the code history of changes related to context menu in 7.6, and found out the piece of code that disables the functionality on iOS. If you can test and say that it still works, I'd love to re-enable the long tap emulation for this. I'll test it myself when I have the time for it, but not sure when that is.
https://github.com/vaadin/framework/blob/master/client/src/main/java/com/vaadin/client/ui/AbstractComponentConnector.java#L288

To clarify, this will be fixed in framework versions 8.0.0.rc2 and 7.7.8.


[WIP] Added .NET 4.5 console application as binary

This pull request is a follow up of #25. The original PR by @FantasticFiasco said:

Added console application built with .NET 4.5 that is used in binary
unit tests. It will prove a bug in ResourceLib where unit tests will
succeed on atl.dll but fail on ConsoleApplication_NET4.5.exe.

So far I fixed the failing VersionResourceTests. There have been two reasons:

Wrong language of the version info resources. The version info in atl.dll uses the English locale (1033, en-US), but the new managed assemblies are using the neutral one (0). I changed the tests to respect the actual locale of the DLL.
The managed assemblies have a different order of the version info. atl.dll has first StringFileInfo and then VarFileInfo, but in the managed DLLs the order is swapped. I had to replace the Dictionary<string, ResourceTableHeader> in VersionResource with a OrderedDictionary (which unfortunately isn't generic).

This PR is still work in progress, as there are more tests failing.

There's what looks like a legit build failure, otherwise looks good.

No, ResourceTests.TestReadWriteResourceBytes fails for the ClassLibrary_* DLLs, both on my machine and AppVeyor. I can fix them by adding padding in StringTableEntry.Write, but then the tests fails for all other DLLs. I have to find a way to determine the padding to apply it when applicable.

Just to be clear, the failure shows a bug, tack a comment here when the build passes (don't get notifications from github on additional commits/forced pushes).

@dblock
I had to change ResourceTests.TestReadWriteResourceBytes to ignore .NET assemblies (more precisely, to ignore filenames starting with ClassLibrary_NET). Those files use non-standard padding in their StringTableEntry resources, thus the byte compare fails. Because I don't know a better solution I decided to ignore them in this specific test. All other tests are green, and I guess this PR can be merged now.

Merged, thank you.


Option to pick images out of albums

If a thread points to an album, it would be nice to allow RWC to pick an image from the album instead of moving on

Thanks. It's on the list but currently I'm not sure how to extract images from albums. A quick look at the imgur api info makes me think it's not easily/at all possible.

https://api.imgur.com/models/album
If I understand correctly the album response should return an array of images, so theoretically you should be able to pull one of those images at random, correct? I'll see if I can take a look at it sometime this week.

Actually it looks like you're doing just that? Did @muskette want to be able to see the images and then select one?


Cleanup linux code

Closes #71.

TODO:

Cleanup comments.
Use &'static str in ReleaseFile.
Revise tests.


The parameter logit_bias is invalid in the ChatCompletion model

Describe the bug
The parameter logit_bias is invalid in the ChatCompletion model
To Reproduce

"""
The parameter logit_bias is invalid in the ChatCompletion model

https://platform.openai.com/tokenizer
Red: 7738
red: 445
 Red: 2297
 red: 2266
"""

import openai

openai.api_key = "sk-xxx"

temperature = 0
logit_bias = {7738: -100, 445: -100, 2297: -100, 2266: -100}

# 1. Complete Mode
resp = openai.Completion.create(
 engine="text-davinci-003",
 temperature=temperature,
 prompt="What color is an apple? Answer with one word",
 logit_bias=logit_bias,
)

# The result is: Green.
print(resp['choices'][0]["text"])

# 2. Chat Mode
resp = openai.ChatCompletion.create(
 model="gpt-3.5-turbo",
 messages=[{"role": "user", "content": "What color is an apple? Answer with one word"}],
 temperature=temperature,
 logit_bias=logit_bias
)

# The result is: Red.
print(resp['choices'][0]['message']['content'])

Code snippets
No response
OS
Windows
Python version
3.8.9
Library version
0.27.2

Thanks for your reply.
The Python script I originally provided already includes openai.Completion and openai.ChatCompletion.
However, the running results of the two are different. The output result "Green" of openai.Completion is correct, while the output result "Red" of openai.ChatCompletion is incorrect. Obviously, Openai.ChatCompletion did not ban the word like "Red/ Red/red/ red", So I think logit_bias is not valid in openai.ChatCompletion.

Just verified that this works as expected:
from openai import OpenAI
import json

client = OpenAI()

bias = {6161: -100, 1171: -100, 2579: -100} # The token ID's for "Red", "red", and " red".

response = client.chat.completions.create(
    model="gpt-3.5-turbo-1106",
    logit_bias=bias,
    seed=1,
    messages=[
        {
            "role": "system",
            "content": "You are a helpful assistant",
        },
        {"role": "user", "content": "What is the color of a fire truck?"},
    ],
)
print(response.choices[0].message.content)

This is still not working


Component and option type definitions + code docs

Proposed changes
Apply type definition for every Materialize component (I have taken some from DefinitelyTyped, since I'm the maintainer of @materializecss/materialize types).

Base Component is a generic class with "BaseOptions" interface:

Declared function overloades for component initializer;
Declared "virtual" methods and given a proper documentation for them.

Every component (except by Toast) inherit from Component and their respective options from BaseOptions;
Removed "circular" dependencies (check "Breaking changes");
Added missing types to event handlers and their respective args;
Fixed:

Undefined instance reference in Collapsible "destructor";
Touch event handler when target does not have a close carousel item;
Type definitions using "Boolean" object as type.

Breaking changes

Completely removed native support to jQuery;
Unused methods, such as M::objectSelectorString, have been removed;
Global utility functions and variables have been migrated to "Utils" module, which is available under "M.Utils" (this is an important change, since it removes circular dependency from the component sources 😃).

Affected PRs:

#351 Should be closed, since it would become redundant;
#370 Should be refactored in order to match component types;
#387 Should be refactored in order to be merged;
#388 Should be closed, since it would become redundant.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue).
[x] New feature (non-breaking change which adds functionality).
[x] Breaking change (fix or feature that would cause existing functionality to change).

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My commit messages follows the conventional commit format
[ ] My change requires a change to the documentation, and updated it accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Great work!
One thing: I have tested the changes in this test project an it gives errors for the init method:

The reason is that querySelectorAll returns a NodeListOf<Element> instead of NodeListOf<HTMLElement>.
One possible solution to avoid having to add this querySelectorAll<HTMLElement> all the time would be changing the init parameters to
static init(els: InitElements<Element>, options: Partial<CarouselOptions>): Carousel[];

instead of the
static init(els: InitElements<HTMLElement>, options: Partial<CarouselOptions>): Carousel[];

What do you think?

Great work! One thing: I have tested the changes in this test project an it gives errors for the init method:

The reason is that querySelectorAll returns a NodeListOf<Element> instead of NodeListOf<HTMLElement>. One possible solution to avoid having to add this querySelectorAll<HTMLElement> all the time would be changing the init parameters to
static init(els: InitElements<Element>, options: Partial<CarouselOptions>): Carousel[];

instead of the
static init(els: InitElements<HTMLElement>, options: Partial<CarouselOptions>): Carousel[];

What do you think?

Well, I haven't noticed it. Thanks for reporting.
I'll replace this type requirement in initialization functions and constructors.

@danice, I've made some changes to the initialization overloads which allows "Element" type to be considered as well 😄. The following snippets illustrates a picker being initialized either by a single element (even though it is typed as HTMLInputElement) or by a NodeListOf<Elements>.

I've also updated component initializers so as to allow "empty" options 😃.

Haha good work! That will take some time to review :laughing: I will check locally...

I've just had to merge v2-dev into this branch, since #387 has been already merged, thus, requiring a small refactor, as mentioned in the topic.

Awesome! Great work :+1:
I see you used some sort of documentation tool in your code. Is this TSDoc?

It is JSDoc as well.
Since TS is a superset of JS, most of JSDoc tags also work with TS.


Install problem on mac book pro Yosemite 10.10.5

I get this message when trying to setup Kitematic on my mac book pro running Yosemite 10.10.5, Docker Kitematic 0.8.5 built with Docker Engine 1.8.2, Docker Machine 0.4.1 and Virtual Box 5.0.4
/opt/homebrew-cask/Caskroom/kitematic/0.8.5/Kitematic (Beta).app/Contents/Resources/resources/docker-machine -D create -d virtualbox --virtualbox-memory 2048 default returned non zero exit code. Stderr: Converting from raw image file="stdin" to file="/Users//.docker/machine/machines/default/disk.vmdk"... Creating dynamic image with size<PHONE_NUMBER>0 bytes (20000MB)... Error creating machine: Too many retries. Last error: Maximum number of retries (60) exceeded You will want to check the provider to make sure the machine and associated resources were properly removed.
then if I try to retry or delete and reinstall the unable to obtain IP address message appears.
Machine IP could not be fetched. Please retry the setup. If this fails please file a ticket on our GitHub repo.

I would try to uninstall everything you've installed/configured via homebrew/cask and use the Docker Toolbox instead.

actually the Docker Toolbox was what I have a problem with.

@toddplesniak Thanks for this. It seems like this is a problem with Docker machine.
One possible fix is to open virtualbox and remove the "default" VM (by using delete all files). Run the installer again after.
If it's still not working, please comment in the main thread for this issue #1029
Thanks!


Issue loading Microsoft.Extensions.DependencyInjection.Abstractions

I'm not sure if this is a problem with my machine or not, but wanted to ask.
When I try to run my Azure Function after bringing in and using your awesome library, I get a runtime error:
[2020-11-27T15:01:03.561Z] Api: Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Value cannot be null. (Parameter 'provider')

I've tried to mirror your sample, so my project file looks almost the same as yours. Here's the most important bits:
<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AzureFunctionsVersion>v3</AzureFunctionsVersion>
  </PropertyGroup>
...
<ItemGroup>
    <PackageReference Include="IEvangelist.Azure.CosmosRepository" Version="2.1.1" />
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.10" />
</ItemGroup>

The difference is that I fetched your project in NuGet, and in your sample you're using a project reference. When I look at dependencies in NuGet, I see it is supported in .NET Standard 2.0:

I'm using .NET Core 3.1, as you are, so that should be OK. Knowing the Microsoft.Azure.Cosmos dependency wasn't an issue, I explicitly referenced the Microsoft.Extensions.* dependencies in my project file but that didn't help.
I noticed a GitHub issue from a few weeks ago, noting a potential problem with the host version. Are these 5.0.0 dependencies mucking things up?

Hi @daveabrock - thank you so much for posting this issue. I have not actually created an Azure Function yet, using the recent updates from @Invvard. I'm curious if this isn't an issue that is related to .NET 5, I'll have to try this and get back to you. With that said, I'm curious if @Invvard has used this SDK with their updates to try out Azure Functions yet? Maybe they have some insights?

I believe I figured out the issue. I cloned the repo, and added it to my project. I was able to reproduce the runtime error and to resolve it by reverting Microsoft.Extensions.Options.ConfigurationExtensions down to 3.1.10:
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.14.0" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="5.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.10" />
    <PackageReference Include="MinVer" Version="2.3.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>

I was going to submit a PR (and I can, if you want) but I would imagine you would want to make sure it doesn't break anything else—it shouldn't (and your tests pass!), but you know what they say about assuming. 😎

PRs are absolutely encouraged and celebrated, by all means - please feel free to submit one. I'd be happy to review it. So, is there an issue with the code - and can we close this?

The version with these fixes is now live on NuGet:
https://www.nuget.org/packages/IEvangelist.Azure.CosmosRepository/2.1.2


protoc-gen-go: XXX_ fields break code back compatibility

having []byte XXX_ fields in generated code prevents those structs to be able to be compared by value.
package main

import (
	"fmt"
)

type Hash struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func main() {
	fmt.Println(Hash{} == Hash{})
}

This breaks an existent code.
Another argument to the issue #276
Even if the []byte field will be removed, those third-party states being embed into the structs makes it pointless.

This breakage is really unfortunate, but it's a consequence of Go protobufs being compliant with the updated proto3 specification.

Another argument to the issue #276

This is orthogonal to #276, which is about removing XXX fields from the exported API. The implementation will still require unexported fields of some form, some of which may still be incomparable.

Just to add more on what these changes broke.

Generated types can NOT be used as map keys.
New generated code does not import go packages for imported proto types, so it just does not compile.

@dsnet Then I would say that an update to the proto3 spec broke it.
First (many moons ago) when proto2 was introduced, Optional Fields were all the rage and unrecognized fields just sit quietly in reserved by them "slots". Then proto3 came in, and put it as "optional is no more - everything is optional" (and broke separation of "not supplied" and "default" by the way). Now, by introducing XXX_ mess it pretty much went back, just storing unrecognized fields under XXX_. Again, breaking perfectly normal code that was comparing proto.Timestamp, and other simple generated structs.
proto generated code in the current form is unusable for anything but storage - with no comparison,  simple, small, and fast common structures between different components neither not small nor fast anymore.

Please see my comment here (https://github.com/golang/protobuf/issues/594#issuecomment-409009380).


changing out deploy.sh

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes

root seems not to be a GitHub user.
You need a GitHub account to be able to sign the CLA. If you already have a GitHub account, please add the email address used for this commit to your account.
Have you signed the CLA already but the status is still pending? Recheck it.

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes

root seems not to be a GitHub user.
You need a GitHub account to be able to sign the CLA. If you already have a GitHub account, please add the email address used for this commit to your account.
Have you signed the CLA already but the status is still pending? Recheck it.

mistake

mistake


Use koji NVR for content manifest file name

The name label may contain namespaces.

CLOUDBLD-1003

Signed-off-by: Athos Ribeiro<EMAIL_ADDRESS>Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

No release notes added. Fixing change added in this release cycle


state transfer subcommand uses the same namespace on destination as in the source

follow up from #19

/priority normal
/triage accepted

/triage ?

/kind bug

Think this is already fixed

Fixed in https://github.com/konveyor/crane/pull/75


imp(flows) don't require present_user_url to return an additional char

For custom AuthenticatorDelegate implementations it may be very weird to
be required to return an additional character after the code from
present_user_url.
One may find himself chasing the bug which is bad UX for the user.
Improve this behavior and therefore introduce a breaking change that
will hopefully not break existing implementations nevertheless.

Danke @dermesser

I ran into this issue myself today and wanted to open a PR myself. But then I saw that it was already fixed on master. Looking forward to the next release. Thanks :)


missed removing constant from other PR'

missed removing, I would have thought linter would have picked that up and warned me.

This pull request fixes 1 alert when merging e9164ae6573411073e89280ee01a42da1693e94a into 7d57300045d3997ac834aaa72863317c1261a5d2 - view on LGTM.com
fixed alerts:

1 for Unused variable, import, function or class

Comment posted by LGTM.com


2813 - Move all mapping related code to mappings package.

Signed-off-by: santosh<EMAIL_ADDRESS>Resolves #2813
Which problem is this PR solving?

Move all mapping related code to mappings package.
Implement Feedback on refactoring mappings code

Short description of the changes

Create a struct SpanServiceMappingsBuilder and move all functions like GetSpanServiceMappings, FixMapping, LoadMapping to take that struct as receiver instead of passing a dozen parameters to them.
Move all the mapping-related business into mappings package, instead of being in the factory
Rename ESPrefix to IndexPrefix to be more readable

@albertteoh /@yurishkuro. Could not implement below points -

This will also allow to omit assigning the es.TemplateBuilder field (it should default to es.TextTemplateBuilder{} automatically), keeping the code cleaner yet still providing testability.
Use that struct directly to pass values to tmpl.Execute(), instead of declaring an inner struct.

As I needed to pass the template builder interface for mocking in tests.

Would look at failing integration tests.

Wierd, integration tests passed locally on elasticsearch v7.3.0.

Wierd, integration tests passed locally on elasticsearch v7.3.0.

Ok, I am able reproduce locally as well. Not entirely sure whats causing this though. Will spend some time on this

I am seeing this in my elasticsearch logs during the test runs.
"stacktrace": ["org.elasticsearch.transport.RemoteTransportException: [ca859ca2c689][<IP_ADDRESS>:9300][indices:data/read/search[phase/query]]", "Caused by: java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [serviceName] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
@albertteoh / @yurishkuro  - Any idea on this.

Fielddata is disabled on text fields by default. Set fielddata=true on [serviceName] ...

I saw this once when I had index mapping issues; I think it means your serviceName field was set to type text which is ES's dynamic mapping sets for strings if there is no existing template. If it's type text, it means individual words in the string cannot be indexed, I think.
I would suggest querying ES on both your span and service mappings to confirm this is indeed the case (type is text instead of keyword):
GET jaeger-span-write/_mapping
GET jaeger-service-write/_mapping

And check your templates to ensure serviceName is present and correct (should set type to keyword) in both the mappings:
GET _template/jaeger-span
GET _template/jaeger-service

And from there, it's just a matter of pinning down the root cause from what's changed in this PR.

Fielddata is disabled on text fields by default. Set fielddata=true on [serviceName] ...

I saw this once when I had index mapping issues; I think it means your serviceName field was set to type text which is what ES sets for strings if there is no existing template (dynamic mapping). If it's type text, it means individual words in the string cannot be indexed, I think.
I would suggest querying ES on both your span and service mappings to confirm this is indeed the case (type is text instead of keyword):
GET jaeger-span-write/_mapping
GET jaeger-service-write/_mapping

And check your templates to ensure serviceName is present and correct (should set type to keyword) in both the mappings:
GET _template/jaeger-span
GET _template/jaeger-service

And from there, it's just a matter of pinning down the root cause from what's changed in this PR.

Thank you @albertteoh  - that helped. Index template pattern was the issue, index prefix was getting suffixed with "-" twice. Added a suffix check to avoid it. Tests passed locally.


2023-12-08-GitHub-OpenSource-CDMX-Edición-Especial

GitHub Open Source CDMX v9 - Edición Especial

Date: 2023-12-08
Time: 7:00 PM - 9:00 PM
Venue: Platzi CDMX
How to Reach: The nearby Metrobús station is "El Ángel"

Join us to learn about automate processes through Power Automate and above all give entry to their digitization and talk about GitHub Universe 2023 and Microsoft Ignite 2023.
Agenda:

Welcome and Introductions
Talk 1: Automatización de procesos a través de Power Automate by Zoe Arenas
Q&A and Wrap-Up
Break and Networking ☕
Announcements 🚀

Call for Speakers: Google Form
Registration Link: Link to the Meetup Registration ✨

Event Report [GitHub Open Source CDMX v9 - Edición Especial]
Event Date: December 8th, 2023
Summary
This event was an special edition and we learned about  automate processes with Power Automate, and also the core team dedicated a session to talk about GitHub Universe and Microsoft Ignite.
We also do a very funny activity in which attendants carried their best ugly sweaters.
Attendance

Was it well attended? Yes, we had about 100 attendees
Was there a diverse attendance in terms of gender, socio-economic class, and race? Yes, we reunited women, men from different social classes
Attendee Profile: We had developers, students and industry professionals

Venue

We liked the space and there was a great place to develop all the activities.

Planning vs Implementation

Schedule Changes: Did the schedule change? Yes, the main session was extended and we didn't have enough time for the session on GitHub Universe, so we had to cut it down and briefly talk about what was most relevant
Swag and Logistics: Did you have enough swag? Did everything get to you on time, and did anything not get taken by your attendees? Yes, we had enough swag for the atetendees

Positives

Good topic to talk about
A lot of participation from the attendees
Funny activities, good coexistence

Negatives

We didn't have enough time to extend the session about GitHub Universe, so we decided to make it shorter

Feedback from Attendees

Photos


lib=biswrapper() gives error in MATLAB

Hi,
I am using a Windows machine and trying to parcellate the .nii data using bis_individualizedparcellation.m, but the library calling line
% Loads the bisweb C++ library as lib
lib=biswrapper();

Doesn't work (error: Unrecognized function or variable 'biswrapper'.). I am wondering if this means I need to use the standard cmake/make commands to install the c++ libraries first?
Thank you!
Update: I figure that I didn't do the nativebuild.sh for MATLAB and I am trying it now.

Did you figure this out? The Matlab code requires (as you have discovered the C++) library to be there. While nativebuild.sh will work on windows, it needs to be run in a bash shell. Take a look at the
github actions build for windows
which shows who to configure a windows build system for bisweb.  You will need the "visualstudio2017buildtools" package installed.

Hi,
Thanks for the reply! I am still working on it. One more question: if I need to parcellate the .nii file into regions and get the correlation matrix, does this MATLAB code work https://github.com/bioimagesuiteweb/bisweb/blob/devel/matlab/bis_individualizedparcellation.m?fbclid=IwAR13JCw1R4VfWee5akOdylQY0zOGYNXgtvfeSPCSsEp63GrCQ3MfOgo0KjA?
I tried to use this C++ code work for Shen parcellation https://github.com/bioimagesuiteweb/bisweb/tree/devel/cpp/cpmcode and I got an error like below:

What version of gcc are you using (gcc -v) will give the answer.
Looking at the error, this seems to come from an optional module you probably do not need right away. You can turn this off in CMAKE --
Make sure this line in your CMakeCache.txt file points to OFF
BIS_USECPM:BOOL=OFF
Xenios


Allow version to be a number?

Currently the version field must be a string. If you want to use a version number like 12 or 3.4, you must quote it (see #44). Otherwise you'll see an error like this:
# package.yaml
name: example
version: 0

.../package.yaml: Error in $.version: expected String, encountered Number

I think it would be nice to accept numbers as versions. That way version: 12 and version: 3.4 would work, which feels right because version: 5.6.7 (without quotes) works today.
The only problem I can think of is that leading zeros would not make it to the Cabal file. In practice I don't think this is a problem because Cabal parses each version component as a number, which ends up stripping leading zeros anyway.

I know JSON's numbers are under-specified, but are YAML's? I'd be concerned about winding up relying on the yaml package's parsing behaviour when other parsers could differ.

Oh, actually, this is already implemented in HEAD by commit d56cc8ed8dc0971f326e4e7e0084aa0749363b4b. I wonder how it deals with the (non-)difference between 42 and 42.0...

I wonder how it deals with the (non-)difference between 42 and 42.0...

It is format preserving, except for if you use leading zeros or e-notation, that is we can figure out the difference between 42 and 42.0.

Closing, as it is already implemented and part of the next release.

:tada: Great!


Change name in package.json of the template

Right now, the generated project has name as "template" in package.json. Would be nice if it would change the name to the project name.

implemented in #35


prevent trying to store images for DICOM with no pixel data elements

The approach is generic so any DICOM instance that doesn't have an image won't throw an error.

@Dev-Now please verify this solves your issue

@Dev-Now, any updates on this?

@Zaid-Safadi Sorry, I was very busy on another project lately...
I am back; I will check it now.


farmerbot for power management

features version 1

farmers can define their configuration in an easy markdown format
through WOL machines can be turned on and off
the provisioning scripts need to be adjusted to wake a node when required
the farming manager checks which nodes can be turned off

technical requirements

use vlang and the rmb components built into crystallib
use actor based paradigm (so its very easy to extend)
all configuration done as in https://github.com/threefoldtech/farmerbot/tree/development/example_data
support routeros switches to check if node is alive or down

generic requirements phase 2

defensive mode, we check wol works with multiple interfaces e.g. network switch, ping, ...

when doing wol on/off talk to supported switch to see if network is active and also do ping to see node comes back or are down

its easy for farmers with scripting experience to expand the tool to support other PDU's (power mgmt devices)
we support racktivity devices for power measurement and power on/off

the provisioning scripts need to be adjusted to wake a node when required

I don't think this is the right approach for this project. The deployment tools should contact the farmerbot over the relay and the farmerbot should reply with a specific nodeID from it's farm. This way the bot can do internal capacity planning and then a user cannot brute force all nodes in a farm to wake up.
It also prevent waiting times for users who want to deploy on a farm which has a farmerbot.

What are "routeros switches" ? The farmer bot can simply keep in state which nodes are up and down.
When the farmerbot starts, it needs to check which nodes can go down and which nodes need to stay up. There are 2 ways we can approach this:
First we need to know which nodes are attached to to the farm, this can be done by querying graphql or gridproxy.
Then

Query every node in the farm via the relay and check if they host deployments, if not, send message to shut down
Query the chain for active contracts on a node (this is not supported in V) but maybe the gridproxy can be queried.

From a call with Kristof this morning:
The farmerbot should use actor based paradigm. This means there should be actors who can execute tasks (or jobs) on behalf of other actors. The communication between actors should happen through messages. Doing that allows us to implement a specific actor in any language we want. It also minimizes the work we have to do in case we change the implementation of a piece of code. Coming back to the farmerbot. The farmerbot will be an actor communicating with other actors. It will receive messages from the JavaScript client asking for a node on which the deployment can happen. So the task to execute will be "Find me a node that can fit these resources". When executing that task it should power on or shutdown nodes if needed.
Here are the first steps I will start working on:

Define the structure of the messages that the JavaScript client will send (and also receive)
Look into WOL from V (@muhamadazmy might know more)
Checking the state of the nodes and shutdown the nodes when possible

Things that are clear:

The JavaScript client should use the farmerbot (contact) if there is one alive (@xmonader how are we going to do that?)
The farmerbot will get requests to find space on a node which it will send back a response too
The farmerbot will allow the owner to bring nodes up when he wants to (comment in issue 1371)
The farmerbot is optional: we should not assume its existence except for asking it to find a node where to deploy on

Things that are not clear yet (feel free to add your thoughts):

How do we get information about the nodes (same as @DylanVerstraete asked in the question above)
How frequently do we fetch that information? The more frequent we fetch it the more true the information will be.
What if the farmebot shut down some nodes at it then crashes. Do we expect the farmer to bring them back up as fast as possible? How do we handle this?
What are routeros switches? Any existing code yet regarding it?
How do we make sure that only the farmer can bring nodes up? By executing that task only if it was submitted to the farmerbot through commandline/redis-queue itself?

@despiegk please tell me if I misunderstood something?

One immediate problem is that for WOL, you need to have access to the host network. AFAIK, the farmerbot will be deployed in a container (actually a VM), and should thus be isolated from this network. Hence the farmerbot itself can't send the WOL packet.
To workaround this, the code to send an actuall WOL packet will need to be part of zos, and the farmerbot will then need to instruct a live zos node (can be any node in the farm, possibly the one it is running on, although the farmerbot could run on a node on a different farm or even outside of the grid) to send the packet to the target node. Note that the mac address of the target (and it's internal IP) is registered on the chain (actually this is the zos mac/IP but since that is a bridge with the physical NIC attached it will be the same (we set it the same)).

How do we make sure that only the farmer can bring nodes up? By executing that task only if it was submitted to the farmerbot through commandline/redis-queue itself?

In the past we assumed the user has the farmer twin, which basically boils down to "the user has the seed". This is still the case (since the seed is injected). So for now I'd say we verify that messages to the farmer bot are send by the own identity (sender.twin_id == self.twin_id). In the future we can look into expanding the system by adding some type of access lists.

I would suggest that the farmer runs the farmerbot on a specific node in it's farm. This node becomes a "delegator" in the network, every message to turn of / on a node can be sent to this node and this node passes it to the target node.
This way we also ensure that that the "delegator" node will never be shutdown because the farmerbot is running on there and uses capacity, hence will never be triggered to shut down.

Proposed strategy for the farmerbot
There is a flow chart bellow. Feel free to add your thoughs.
Shutting down nodes

Farmerbot will fetch node info every 5 minutes from the gridproxy and keep it in memory
Based on the info it will shut down nodes if needed (message over RMB to the node itself)
Maybe keep in memory that the node is shutting down
The node shutting down will change its state on TfChain before going to sleep
It can publish messages to NATS telling its subscribers that a specific node is being shutdown (could be used on TSClient side)

NATS

A key-val store should be created for jobs (json public job configuration)
When the TSClient wants to deploy on a node it will create a job configuration and add it to the key-val store
The TSClient will publish the job_id to a subject
Farmerbot will create a stream, a consumer
Farmerbot will periodically consume (aka pull)  messages that are meant for him (the ones published by the TSClient to the subject)
Farmerbot should set the state of the job to started (in the key-val store) once handled

Handeling jobs (aka bringing nodes up)

The jobs will tell the farmerbot that a client wants to deploy a job on a node
It will bring up the node if it is offline (message over RMB to nodeY to bring nodeX Up)
It can publish a response to a specific inbox if needed

Issues/Questions

Where will the farmerbot run?
Where will the nats server run?

Flow chart

Farmerbot messages

All structs below will be converted to JSON
ALL messages should have this format (defined in baobab: https://github.com/freeflowuniverse/baobab/blob/main/baobab/jobs/model_json.v)

pub struct ActionJobPublic {
pub mut:
	guid         string
	twinid		 u32    	//twinid of the farmerbot
	action   	 string 	//farmerbot.*
	args       	 params.Params
	result       params.Params
	state        string
	start        i64		//epoch
	end          i64		//epoch
	grace_period u32 		//wait till next run, in seconds
	error        string		//string description of what went wrong
	timeout      u32 		//time in seconds, 2h is maximum
	src_twinid	 u32    	//which twin was sending the job, 0 if local
	src_action   string		//unique actor path, runs on top of twin
	dependencies []string	//list of guids we need to wait on
}

Action of ActionJobPublic
Will have the format ..
Domain: farmerbot
Actor: one of "powermanager", "resourcemanager"
Method: depends on the actor (see below)
Possibilities:

"farmerbot.powermanager.poweron"
"farmerbot.powermanager.poweroff"
"farmerbot.resourcemanager.findnode"

Arguments of ActionJobPublic
For "farmerbot.powermanager.poweron"
pub struct PowerOn {
	node u32
}

For "farmerbot.powermanager.poweroff"
pub struct PowerOff {
	node u32
	// only power off if the node is unused
	only_if_unused bool = true
	// Power off after <delay> seconds
	delay u32 = 0
}

For "farmerbot.resourcemanager.findnode"
pub struct FindNode {
	// if provided we want a node that has at least these resources free (optional)
	required_resources struct {
		hru u64 = 0
		sru u64 = 0
		cru u64 = 0
		mru u64 = 0
	}
	// if not empty we want nodes that are not in this group (optional)
	node_exclude []u32 = []
	// if true we want a full node (optional)
	dedicated bool = false
	// give us a node with publicip (optional)
	publicip bool = false
	// give us a certified node (optional)
	certified bool = false
}

Verified.
Using the instruction provided https://www2.manual.grid.tf/farmerbot/farmerbot.html, farm can easily add famerbot to his farm and config it as he likes and farms can switches nodes on/off when needing depending on threshold.


Refactor a lot of stuff, fix some bugs

Refactor sheet utility functions - Fix #324
Refactor sheets
Refactor DocumentDisplay and all the related types
Refactor conditional
Refactor header to be required on conditionals
Refactor description to be a part of the header, rather than the section
Standarize/refactor header display
Fix some random bugs in some sheets (Venti C6, can't remember what else)
Add some new fields in some sheets (Raiden resolve stacks, Kokomi C2)
Fix some random display issues related to DocumentDisplay
Equipment tab now shows headers with description tooltips for everything - fixes #256
Change ArtConditionalModal to use standardized headers to reduce white space - resolves #337
-> There is still an ongoing bug with the modal where the conditional fields won't display, since they are tied to having the 4-set actually equipped on the character. Wasn't able to get the workaround to work either
Move tooltip for 4-set to the gradient header in ArtConditionalModal
Update elemental colored text/icons in buttons/labels/a bunch of places to improve contrast
-> HitModeEditor buttons still need some tweaking
Refactor/standardize info/question mark tooltips

Should be good to review, barring any other sudden refactor needs

Bennett is a tad in consistent here. the bonux shown is 119%+20%, but the actual increase being calculated is 119%

What do you think about removing the extra padding around the ConditionalSelector ? I always felt they are a bit waste of space...

I don't think this PR is complete until we can resolve #351

  Bennett is a tad in consistent here. the bonux shown is 119%+20%, but the actual increase being calculated is 119%

I don't follow. Formula shows 119+20, and the field shows 139, and the calculated value is 139% of attack, so all seem consistent. Or do you mean his burst field should only show 119%, and leave the 20% value in his c1 fields?

  Bennett is a tad in consistent here. the bonux shown is 119%+20%, but the actual increase being calculated is 119%

I don't follow. Formula shows 119+20, and the field shows 139, and the calculated value is 139% of attack, so all seem consistent. Or do you mean his burst field should only show 119%, and leave the 20% value in his c1 fields?

Opps, i did not snip the whole thing.

The total increase is 1002.3, however, if you look at both, you can get mislead to see 1002.3+144.22

Ready again


Closing FunctionAssignmentTailer should handle ConsumerAlreadyClosedException

Motivation
Currently when FunctionAssignmentTailer throws RuntimeException when received
exception when tailing the assignment topic. Exception can be thrown when closing
the reader.
The runtime exception is the root cause why PulsarWorkerAssignmentTest timeouts
during shutting down.


Can't build docker

Hi,
I just clone the build and try to do it in docker.  But, the docker build failed in step 7.  I got the following errors:
make: *** No rule to make target 'shell.o', needed by 'sqlite3'.  Stop.
ERROR: Service 'blackbird' failed to build: The command '/bin/sh -c make -B' returned a non-zero code: 2

We can close this issue.  It wasn't an issue. I just didn't clone the extern libraries as needed.  Once I downloaded the sqlite3, and I can built it fine.


Production Ready Roadmap

Hi everyone,
Small question for the SignalR team.  Is there a roadmap posted anywhere for the features coming in future releases along with a best case scenario of when SignalR core may be production ready?
Thanks!

https://github.com/aspnet/Home/wiki/Roadmap
https://github.com/aspnet/SignalR/issues/394

#394 Looks great.  Unfortunately the first link is just an ASP.net roadmap that makes a slight mention of SignalR integration. :)


proposal: create contribution guidelines for technical writers

(notes from GopherCon Community Day)

Technical writer friendly workflow (e.g. edit on GitHub to submit a pull request)
The kinds of documentation (tutorial, reference, quick reference, blog posts)
Style guide or link to one

Also:

Expand How you can help to be inclusive to  other disciplines (illustrators, writers, teachers, etc.).
Rename Contribution Guide to Code Contribution Guide

I don't think the current contribution guide is exclusively about code, though. For example, the main repository has a doc/ folder, and there are files like src/cmd/compile/README.md which serve as technical documentation.
I think it's fair to highlight how to contribute documentation, but we should also be clear about where each kind of documentation lives.

This proposal seems like it has a good idea in it, but without concrete detail about what would happen it's hard to evaluate. In this sense it's a little like #32741. It seems like maybe we should close in the absence of a more concrete plan.

"How you can help"[https://golang.org/project/#howto) could be changed to "Contributing code and documentation". That would be easy to do.
One concern is that technical writers may not be well versed with git. The current guidelines are very oriented towards developers, with initial steps using the command line to install a git plugin. I don't think there is a way around that though, because even if GitHub's tools are used ("Fork this project and edit this file") to submit the initial pull request, any followup changes would require Gerrit, correct?
The other concern is that we don't have any sort of style guide for documentation. I don't have anything concrete for that though.
@toothrot Anything else to add?

I sent a CL to change "Contributing code" to "Contributing code and documentation" though.

Closing as done.

Thanks


Reranking results with multiple vectors

I've created an index with two vectors with the following schema
ID, feature_vector1, feature_vector2

Here feature_vector1 is list of 500 floats and feature_vector2 is list of 100 floats
I want to have the following.

perform search on the entire index using feature_vector1
using the results of the search, I want to perform reranking of the results based on the similarity with feature_vector2 for the corresponding ID

I was able to perform KNN on feature_vector1.
But not sure how to apply post_filter on top the result obtained on feature_vector1. Is there a way to achieve this.
@vamshin

Hi @naveenkumarmarri ,
Please raise questions related to k-NN plugin  here https://discuss.opendistrocommunity.dev/c/k-NN/ . we will track bugs/feature/enhancement in this section. we will get back to this question soon

@vamshin @sean-zheng-amazon
I tried to add issue on the forum. But the account is on hold for 4 days. I'm wondering if you can help me out here as we are in time crunch.
I tried adding knn query in post_filter. But looks like that is not supported
query = {
                "knn": {
                    "embeddings": {
                        "vector": embedding,
                        "k": k
                    }
                }
        }
        post_filter = {
            "post_filter": {
                "query": {
                    "knn": {
                        "text_embeddings": {
                            "vector": text_embedding,
                            "k": k
                        }
                    }
                }
                }
        }
        result = self.es.search(body={"_source": ["_id", "_score"],"query": query, "post_filter": post_filter}, index=index)

Is there a way to achieve this?

Followed up here https://discuss.opendistrocommunity.dev/t/reranking-results-with-multiple-vectors/3140


Install CAPI using operator after chart is installed

What this PR does / why we need it:
Add new values and template to helm chart so we can deploy CAPI with one command, assuming rancher and cert-manager are running users will be able to install extension, CAPI operator and CAPI like this:
helm repo add rancher-turtles https://rancher-sandbox.github.io/rancher-turtles
helm repo update
helm install rancher-turtles rancher-turtles/rancher-turtles --create-namespace -n rancher-turtles-system

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 https://github.com/rancher-sandbox/rancher-turtles/issues/18
Fixes https://github.com/rancher-sandbox/rancher-turtles/issues/105
Special notes for your reviewer:
Checklist:

[ ] squashed commits into logical changes
[ ] includes documentation
[ ] adds unit tests
[ ] adds or updates e2e tests

Should the kubeadm bootstrap and control plane also be included by default? or at least give an option to install them too. I'm fine with both approaches but would like to know what others think.

Should the kubeadm bootstrap and control plane also be included by default? or at least give an option to install them too. I'm fine with both approaches but would like to know what others think.

I think initially, let's just install the core controllers. We want to favour Rancher solutions so i think Kubeadm will always be an optional install.

@richardcase @Danil-Grigorev please take a look again, all works in e2e


Cannot use a MySQL-compatible sink which @@SQL_MODE is NULL

What did you do?
Use Alibaba Cloud's AnalyzeDB for MySQL as sink
--sink-uri 'mysql://root:password@<IP_ADDRESS>:3306/?transaction-atomicity=table&time-zone=%2B08:00'

What did you expect to see?
CDC changefeed created successfully
What did you see instead?
MySQL query error: sql: Scan error on column index 0, name "@@session.sql_mode": converting NULL to string is unsupported

Versions of the cluster
TiCDC  v6.1.2

The problem here is that "adb" does not support @@sql_mode and it returns NULL.
This caused querySQLMode() to fail because the Go string type cannot hold NULL, you need to use "database/sql".NullString instead
https://github.com/pingcap/tiflow/blob/f71045fc1204540bec9cd33ab8aa7eb80f36162d/cdc/sink/mysql/mysql.go#L390-L397
This cannot be worked around because this call is invoked unconditionally in NewMySQLSink
https://github.com/pingcap/tiflow/blob/f71045fc1204540bec9cd33ab8aa7eb80f36162d/cdc/sink/mysql/mysql.go#L142

/severity moderate

/label affects-6.5
/label affects-6.1


Refactor to use dev.ikm group for modules

it is removing unneeded modules (there were at least 4) and updating all the parents and versions (where it wasn't already updated by JPro)


smoothState doesn't load all my js files

Hi there,
I have a problem with loading all my JS files for specific pages. Let's say we have hompage with a.js and b.js
When I'm going to some subpage where at the bottom of the file I have c.js this file is not loading.
Any idea how to fix it?
Best,
G.

@gregorcio92, thanks for reaching out. It's pretty difficult to figure out what's going on here without looking at some code.
Can you provide samples of a reduced test case?


Update specs2-core, specs2-scalacheck to 4.12.2

Updates

org.specs2:specs2-core
org.specs2:specs2-scalacheck

from 4.10.6 to 4.12.2.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.specs2" } ]

labels: test-library-update, semver-minor

Superseded by #214.


Compile-time HTML validation

Maud should check at compile-time that any produced HTML is syntactically valid, unless the PreEscaped filter is used.

What do you mean by syntactically valid?
That can range from simple checks (e.g. check that element and attribute names are in a pre-defined list) to complex ones (e.g. using phantom types to statically enforce the content model).
See also #66.

Enforcing the content model.
On Jun 25, 2017 6:11 AM, "Chris Wong"<EMAIL_ADDRESS>wrote:

What do you mean by syntactically valid?
That can range from simple checks (e.g. check that element and attribute
names are in a pre-defined list) to complex ones (e.g. using phantom types
to statically enforce the content model).
See also #66 https://github.com/lfairy/maud/issues/66.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lfairy/maud/issues/89#issuecomment-310894108, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGGWB5PGUvMKwn2oAZy9xG7UraPlDAwAks5sHjJFgaJpZM4OAJfR
.

Sure, let's work through this.
Consider the following example, spread across two crates:
// foo.rs

pub fn foo() -> Markup {
    html! {
        title "title!"
    }
}

// bar.rs

extern crate foo;

pub fn bar() -> Markup {
    html! {
        table (foo::foo())
    }
}

This is clearly violating the content model, because you cannot have a <title> tag inside of a <table>.
But how would Maud figure that out?

Also, consider that HTML's content categories overlap and include each other.
To express those relationships within Rust's type system, we would at least need subtyping to make this ergonomic.

Could this be done with type-level computation?
On Jul 2, 2017 7:27 AM, "Chris Wong"<EMAIL_ADDRESS>wrote:

Also, consider that HTML's content categories overlap and include each
other https://html.spec.whatwg.org/multipage/dom.html#kinds-of-content.
To express those relationships within Rust's type system, we would at
least need subtyping to make this ergonomic.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lfairy/maud/issues/89#issuecomment-312486097, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGGWBzyNJzu9oWwa54Kcx9Lq46pPImQLks5sJ36mgaJpZM4OAJfR
.

To be honest I haven't thought much about that.
If you can write up a concrete proposal then I'd be happy to review it.

I was writing some SQL and came across postgres-rust's excellent sql! macro from its postgres-macros crate and thought something like that could work with html too.
Basically, instead of trying to write an html lexer from scratch, use HTML Tidy or another html validator through FFI. It could go so far as to just be a generic tidy crate that provides a macro that takes stringly html and spits out Tidy error codes. Maud could just use that with a feature flag or via an extra macro definition like tidy!{html!{...}}.
That being said, right now I'm just writing out my Markup and running it through tidy so you can already get 90% of the way there already with a little build scripting. Just having a nice macro to do it for you would be more convenient.

I'm going to go ahead and close this.
The security aspect will be covered by context-aware escaping (#181), and I don't think what's left is compelling enough to devote heavy type machinery to solving.


add two methods for each log level, avoids unnecessary object creation when the logger level is disabled

What is the purpose of the change
similar to org.slf4j.Logger：
add two methods for each log level, to avoid unnecessary object creation when the logger level is disabled
implemented with String.format
Brief changelog
XXXXX
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #3438 into master will decrease coverage by 0.08%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #3438      +/-   ##
============================================
- Coverage     64.14%   64.06%   -0.09%
  Complexity       71       71
============================================
  Files           662      663       +1
  Lines         28591    28621      +30
  Branches       4790     4790
============================================
- Hits          18339    18335       -4
- Misses         8050     8079      +29
- Partials       2202     2207       +5

Impacted Files
Coverage Δ
Complexity Δ

...in/java/org/apache/dubbo/common/logger/Logger.java
100% <100%> (ø)
0 <0> (?)

.../apache/dubbo/qos/protocol/QosProtocolWrapper.java
64.1% <0%> (-17.95%)
0% <0%> (ø)

...onfig/spring/extension/SpringExtensionFactory.java
70.73% <0%> (-14.64%)
0% <0%> (ø)

...ache/dubbo/remoting/transport/AbstractChannel.java
75% <0%> (-12.5%)
0% <0%> (ø)

...ache/dubbo/remoting/p2p/support/AbstractGroup.java
45.45% <0%> (-11.37%)
0% <0%> (ø)

...che/dubbo/remoting/transport/mina/MinaChannel.java
43.42% <0%> (-10.53%)
0% <0%> (ø)

...ng/exchange/support/header/HeartbeatTimerTask.java
73.68% <0%> (-5.27%)
0% <0%> (ø)

...dubbo/remoting/exchange/support/DefaultFuture.java
72.97% <0%> (-2.71%)
0% <0%> (ø)

.../apache/dubbo/remoting/transport/AbstractPeer.java
67.39% <0%> (-2.18%)
0% <0%> (ø)

...pache/dubbo/remoting/transport/AbstractServer.java
47.91% <0%> (-1.05%)
0% <0%> (ø)

... and 4 more

Continue to review full report at Codecov.

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

maybe we should not introduce parameterized logging, instead we should focus on where isLoggingLevelEnabled is not called.

ok


chore: Detect other NGINX and offer to kill

In the start-https.sh script, detect if some other process is listening on the ports we need, and if yes, inform of this, and offer to kill and proceed.

I see this error when running the code
nginx: [emerg] unknown directive "http2" in /Users/hetunandu/code/appsmith/app/client/nginx/nginx.dev.conf:41

Thanks @hetunandu, I've removed that change. Looks like I'll need to setup an NGINX version block for that change. Can you try now please?

I did not see any prompt to kill older processes but the script worked in switching between two endpoints and the client is working without any errors
> ./start-https.sh                                       => worked for localhost
> ./start-https.sh https://release.app.appsmith.com      => worked for release cloud
> ./start-https.sh                                       => Switched back to localhost

Let me know if there is another way to test this

Thanks @hetunandu. There's already a built-in method to kill the running NGINX started by the same start-https.sh. That's why you don't see the prompt.
For example, if you run the ~/ce/start-https.sh, it'll start NGINX, and if you run ~/ce/start-https.sh again, it'll kill that previously started NGINX, and start anew. But if you run ~/ee/start-https.sh, it won't know about that other NGINX, and attempt to start. This is where you should see the prompt, and the effect of this PR. Am I making sense? 🤔

Tested the above mentioned scenario and it worked as expected.


Mark new Transforms functions as private

As described here: https://github.com/AnalyticalGraphicsInc/cesium/pull/4047#issuecomment-229043403
Please merge for 1.23 tomorrow.
CC #kaktus40

:+1:


Trim Readme to prevent TLDR

In the current master branch, the README is far to long. I trimmed up some stuff that seemed superfluous to people accomplishing the main goal of understanding what this is at a glance, and using it. This was my initial stab at it, so we can use this PR as a starting point for the conversation, but honestly I think it is more focused in the limited form. Relates to #90

Agreed...I promised @mikrofusion I'd make it public, but it was a little rushed.  So it ended up being a brain dump. Thanks for cleaning it up.
My primary concern is finding a way to extract the purpose of the videos, so people don't have to watch them to understand whether to watch them.  But maybe they should each have their own doc page with a written explanation of key points, and that would take some of the burden off the README...considering the videos are 15, 25 and 40 minutes long (plus another 15 min video that's not uploaded) it's a bit much.  I'm going to break up the 40 minute video and scatter it across the docs, but I do want to draw more attention to those "challenges" on the README. To me, that's at least half of the value proposition for Lore.
Merging this in as it's better than what was there previously : ) Thanks Charlie!

@bringking I broke apart the "videos" section into "beginner" and "advanced" focus, and broke out the "challenges" video (which is 40 min long) into each of the challenges it discusses, and provided a link to that timestamp in the video.
I think that provides a better orientation now, which still being pretty concise...thoughts?
http://www.lorejs.org

Looks better now for sure!


Support Native Debugging out of the box

zn42 on reddit mentioned their process for getting native debugging with breakpoints and the like working in vscode.
https://www.reddit.com/r/Zig/comments/cl0x6k/debugging_zig_in_vscode/
This issue is for determining how might be best to implement this in this extension. I think it is fine for us to depend on other extensions for this, and I'd consider this debugging support to be opt-in if so. If we were even just to automate the setup that would go a long way to being more usable for the end-user.
I don't have any specific ideas in mind, and we don't necessarily need to do it the way suggested in the mentioned post, but it provides a good basis.

any updates about this?

Anyone have debugging working on windows/vscode ?
Would like to learn more about Zig, having option to put in breakpoints would be really helpful.

Anyone have debugging working on windows/vscode ? Would like to learn more about Zig, having option to put in breakpoints would be really helpful.

https://github.com/kfird214/zig-vscode-template

I used lldb extension to debug. Only problem is the inspection of slice , and expression eval in watch panel

CodeLLDB (and probably some other extensions too) support debugging Zig code.


Stuck after [info]: The tool will now scan NetScaler directories for unexpected content.

[info]:
[info]: The tool will now scan NetScaler directories for unexpected content.
[info]:
The script does not process further after this.

Happened to me before you just have to let it scan it does take a long time but it is scanning it could take 30 minutes to complete


Add missing newline before inline-code block

Sections with three backticks require a blank line before them.
Otherwise, https://prometheus.io/docs/prometheus/latest/configuration/configuration/#triton_sd_config looks like:

@brian-brazil

Thanks!