Organizing the Toc and Categories to be more intuitive for viewer

First. I am really greatful for your work. And the effort you put into managing issues :+1:
Is your feature request related to a problem? Please describe.

I don't see the point of having the tags in the Toc without the number of how many posts with particular tag there are (After hoover)
The same thing goes to categories.
And maybe I'm bias, but I prefer sorting the articles by categories first AND THEN looking at tags for particular post
Describe the solution you'd like

Adding the number of how many posts there are in each category
Having the listed tags next to posts titles not only in search results

Describe alternatives you've considered

Additional context

The great example of this is HyG's blog theme:

Again I thank you for this amazing project :)

Adding the number of how many posts there are in each category

Having the listed tags next to posts titles not only in search results


Avoid image pre-fetching

When opening a map or layer, all containing images are downloaded, even when they aren't shown.

Closing because of inactivity, reopen if needed.


Refactor packable error management

          Probably, because I think it would be a lot simpler there

Originally posted by @Alexandcoats in https://github.com/iotaledger/iota-sdk/pull/1028#discussion_r1303411320

Will reopen this in common.rs


[CORE] Update from 3.0 to 3.1 breaks cover images

Hi Diego,
today I tried updating to the latest Bludit revision 3.1.0
After the update all cover images are broken. I'm using the theme Log (Version 1.2).
Regards,
Christian

Erm... I tested it again after the creation of this bug it works again... No idea what caused this issue.


Remove reference section in config-references.yml

Before you start, read CONTRIBUTING.md and the guide for diagnostic developers.
Please discuss your idea with the development team before getting started, to avoid disappointment later. The way to do this is to open a new issue on GitHub. If you are planning to modify an existing functionality, please discuss it with the original author(s) by tagging them in the issue.

Tasks

[x] Create an issue to discuss what you are going to do, if you haven't done so already (and add the link at the bottom)
[x] Give this pull request a descriptive title that can be used as a one line summary in a changelog
[x] Make sure your code is composed of functions of no more than 50 lines and uses meaningful names for variables
[ ] Circle/CI tests pass. Status can be seen below your pull request. If the tests are failing, click the link to find out why.
[ ] Preferably Codacy code quality checks pass, however a few remaining hard to solve Codacy issues are still acceptable. Status can be seen below your pull request. If there is an error, click the link to find out why. If you suspect Codacy may be wrong, please ask by commenting.
[ ] Please use yamllint to check that your YAML files do not contain mistakes
If you need help with any of the tasks above, please do not hesitate to ask by commenting in the issue or pull request.

Closes https://github.com/ESMValGroup/ESMValTool/issues/1513
It is related to https://github.com/ESMValGroup/ESMValCore/pull/402

As discussed offline, the cmorizers also need to be updated so the tags from their configuration files are replaced with a nice string generated from the bibtex.

As discussed offline, the cmorizers also need to be updated so the tags from their configuration files are replaced with a nice string generated from the bibtex.

thanks. This option will be added to this PR https://github.com/ESMValGroup/ESMValCore/pull/402

A new release of ESMValCore including ESMValGroup/ESMValCore#402 is needed before this can be merged. Ready for testing though, @mattiarighi.


Add cloud model cache

Describe your changes
Add cloud model cache
Checklist before requesting a review

[ ] Add unit tests for this change.
[ ] Make sure all tests can pass.
[ ] Update documents if necessary.
[ ] Lint and apply fixes to your code by running lintrunner -a
[ ] Is this a user-facing change? If yes, give a description of this change to be included in the release notes.
[ ] Is this PR including examples changes? If yes, please remember to update example documentation in a follow-up PR.

(Optional) Issue link

do we need unify the local cache and cloud cache by an abstracted cache interface and both local cache and cloud cache implement the interface?

do we need unify the local cache and cloud cache by an abstracted cache interface and both local cache and cloud cache implement the interface?

Good call. Though I don't see too many overlaps between local cache and cloud cache, I will look into this. It would be better to unify them.

do we need unify the local cache and cloud cache by an abstracted cache interface and both local cache and cloud cache implement the interface?

Cloud model cache does not share too many common logics as local cache. I will just keep this as it is and revisit this later.

Versioning - Config files are being uploaded to cache without versioning. So, what happens if a new required key is added to the config? Would it fail with unexpected exceptions which the user can't act on or would the logic recover gracefully?
Telemetry - How often is any particular entry in cache accessed. Not that it should be part of this PR but something to consider. How do we differentiate between merely checking the status of something in cache vs. actually being used by someone during their pipeline run. For the latter, it would require additional calls from Olive to record such use.

Good call! How often do you think we will update a required attribute in model config? Any case in your mind now? If it happens rarely, can we manually clean all the cached models?

Good call! How often do you think we will update a required attribute in model config? Any case in your mind now? If it happens rarely, can we manually clean all the cached models?

Your guess is just as good as mine. I am introducing the generative flag on input_model as part of my current task.
Even if it happens extremely rare, invalidating existing cache might not be a very user-friendly solution, especially, given the expense involved in training/optimizing a model. I don't have a solution and maybe it; shouldn't even be part of this PR but it surely needs attention/discussion. If we fill up the cache with data tomorrow only to throw it away the next day, we are not realizing the true potential of the cache. I think at the very least a follow up PR should add a version to the config to quickly check if the version in cache and the running versions are the same.
On the telemetry front, again, needs further design and discussion. This can wait until we solidify how the cache is/will be used. The data from Azure telemetry alone might be enough or we might need to add explicit calls in Olive to record the telemetry.

Good call! How often do you think we will update a required attribute in model config? Any case in your mind now? If it happens rarely, can we manually clean all the cached models?

Your guess is just as good as mine. I am introducing the generative flag on input_model as part of my current task.
Even if it happens extremely rare, invalidating existing cache might not be a very user-friendly solution, especially, given the expense involved in training/optimizing a model. I don't have a solution and maybe it; shouldn't even be part of this PR but it surely needs attention/discussion. If we fill up the cache with data tomorrow only to throw it away the next day, we are not realizing the true potential of the cache. I think at the very least a follow up PR should add a version to the config to quickly check if the version in cache and the running versions are the same.
On the telemetry front, again, needs further design and discussion. This can wait until we solidify how the cache is/will be used. The data from Azure telemetry alone might be enough or we might need to add explicit calls in Olive to record the telemetry.

I just realized that the model config is only used as a hash key here. So if the model config changed, it will get a new hash key which leads to a new cache. Does this sound good to you?


Add support for label details in TS completion item

This is needed for https://github.com/microsoft/TypeScript/pull/48429.

@andrewbranch @mjbvz


[Broker] Fix Broker HealthCheck Endpoint Exposes Race Conditions

Master Issue: #14362
Motivation
See #14362
According to relative PR #7724, we will force delete all subscriptions when calling healthCheck REST API. but it has a race condition when two threads call this API.
Please consider this case:

Thread A: Clean up all subscriptions, then create a reader.
Thread B: Prepare to force delete all subscriptions.

So, in this case, the reader of thread A is deleted and then an NPE or other exception occurs.
Modifications

Use Completable#handle to fix problem 1, the reader needs to be closed regardless of whether there is an exception.
Recheck the subscription after closing reading, and force deletion if it still exists after closing reading.
Added multi-threaded tests for health checks.

Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[x] no-need-doc

I need more eyes to help me review this change to avoid regression.
@codelipenghui @michaeljmarshall @Technoboy-

Thanks for working on this @mattisonchao!

@mattisonchao - I should have added in my review that your tests look good.

@michaeljmarshall  @Technoboy-
I changed logic of this PR, PTAL :)

/pulsarbot rerun-failure-checks

Another issue is that :
Due to the health check topic being deleted by GC, #13816 was involved.  So health check topic is being system topic.
The system topic will do the compaction. but the message sent to the health check topic without a key. So the compact action is never meaningful.  So we'd better optimize the compact part to exclude the health topic.
What do you think? @codelipenghui @mattisonchao @michaeljmarshall

@mattisonchao would you have time to address review comments ?
This patch is very important, as k8s users are affects by this problem

@mattisonchao would you have time to address review comments ? This patch is very important, as k8s users are affects by this problem

I will fix it ASAP.

Let's see this problem from another point of view:
Readers are mapped to Non-Durable subscriptions that are tied to the Reader, so if you close gracefully the Reader the subscription should be automatically deleted.
I wonder if there is really a need to do this subscriptions clean up at all.

So if we ensure that we close the Reader and the Producer and we do not perform the "clean up", there won't be concurrency issues and everything will work cleanly as expected.
After all this "heartbeat" is like a dummy application that writes a message and uses a reader.

@eolivelli
Yes, I agree with you.
I think we can avoid making this approach more complicated by removing the "cleanup" process after using Completable#handle to ensure we always close the reader/producer.
But I think if the subscription still needs to be rechecked, as reader shutdown can fail due to a number of factors.

@Technoboy-
I fix some behaviour, PTAL :)

@codelipenghui @Technoboy-  @eolivelli @lhotari  @michaeljmarshall @Jason918
PTAL, when you have time ~

@codelipenghui @Technoboy- @eolivelli @lhotari @michaeljmarshall @Jason918
PTAL, when you have time ~

LGTM.

I will review this within the next couple hours, thank you for your work @mattisonchao!

@codelipenghui if we cut a new rc for 2.10  is would be great to have this patch.
It is a big problem for k8s users

@mattisonchao
can you please port this patch to branch-2.8 and branch-2.9 ?
the patch does not apply cleanly

The https://github.com/apache/pulsar/pull/14658 cherry-pick this PR to branch-2.9.


using 2 params fails with db2

Environment
To diagnose, we usually need to know the following, including version numbers.  On Windows, be
sure to specify 32-bit Python or 64-bit:

Python: 3.8.5
pyodbc: 4.0.30
OS: ubuntu 20
DB: ibm db2
driver: IBM i Access ODBC Driver

Issue
using 2 ? for params fails. looking for some info on what might be causing the issue. one ? works fine fwiw
>>> r = cursor.execute('''SELECT * FROM ? WHERE SSN = ?''', 'MYTABLE', '100101000')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('42000', '[42000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0104 - Token ? was not valid. Valid tokens: ( NEW FINAL TABLE UNNEST LATERAL XMLTABLE JSON_TABLE <IDENTIFIER>. (-104) (SQLPrepare)')

>>> r = cursor.execute('''SELECT * FROM ? WHERE SSN = ?''', ('MYTABLE', '100101000'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('42000', '[42000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0104 - Token ? was not valid. Valid tokens: ( NEW FINAL TABLE UNNEST LATERAL XMLTABLE JSON_TABLE <IDENTIFIER>. (-104) (SQLPrepare)'

thanks for this library!

I don't know about IBM i, but it's rare that an ODBC driver will support parameterising table names. The error messages suggests that it doesn't.

>>> r = cursor.execute('''SELECT * FROM ? WHERE SSN = 100101000''', ('MYTABLE'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('42000', '[42000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0104 - Token ? was not valid. Valid tokens: ( NEW FINAL TABLE UNNEST LATERAL XMLTABLE JSON_TABLE <IDENTIFIER>. (-104) (SQLPrepare)')

looks like youre right! thanks @v-chojas


Markdown should display

HtmlSanitizeEx.markdown_html/1 is preventing our markdown from having tags like <this>.
I wrote a test which is failing. We need to make it pass.
A real-world example is this notebook (at the bottom).

One more thing I found is that & is converted into &

HtmlSanitizeEx.markdown_html/1 is preventing our markdown from having tags like .

what is the way to solve this? Do we need to pass some kind of option in order to prevent makrdown_html function from modifying the tags?

@aayushmau5 Thank you for pointing out the bug with & ❤ . I added it to the ticket description.

what is the way to solve this? Do we need to pass some kind of option in order to prevent makrdown_html function from modifying the tags?

Without checking it a bit, I don't know. Worth investigating.


Bump tools

Brief description
Updates repo to use golang 1.18.x, fixes gcov2lcov installation, replaces deprecated golint, and fixes linter errors
Checklist

[X] I have built this pull request locally
[X] I have ran the unit tests locally
[X] I have manually tested this pull request
[X] I have reviewed my pull request
[X] I have added any relevant tests

Demonstration
$ go test ./...
?       github.com/koinos/koinos-transaction-store/cmd/koinos-transaction-store [no test files]
ok      github.com/koinos/koinos-transaction-store/internal/trxstore    0.411s

Pull Request Test Coverage Report for Build 69

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 81.295%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/trxstore/transaction_store.go
0
1
0.0%

Totals

Change from base Build 62:
0.0%

Covered Lines:
113

Relevant Lines:
139

💛  - Coveralls


Can't find the format-string.js file

I feel a bit stupid right now, but I can't find the format-string.js file, or any that would do the job...

The file is named index.js. :)

:disappointed: I tried this file, but I then used the .format which is not defined, so i though it was the wrong one... After reading the readme properly, i realised it was not defined by default... Sorry...

No problem at all. :)


chore: update to beta.14

Merged in https://github.com/angular/quickstart/commit/bf69b163960f0fd0a40ec04d55051198ae6ed1b3


Unexpected handling of coefficient that could be zero in version 1.4.x

Describe the bug
Practically, when an expression in the objective has a coefficient (be it constant or parameter) that could potentially be zero, the solution for the scenario where the coefficient = 0 should be the same as if the term is removed from the objective. This seems to be the case for version 1.2 and 1.3, but not 1.4.
To Reproduce
A quick example in a portfolio optimization problem with ridge regularization:
import numpy as np
import cvxpy as cp

r =  np.array([-0.48,  0.11,  0.09, -0.39,  0.03])
Sigma = np.array([
       [2.4e-04, 1.3e-04, 2.0e-04, 1.6e-04, 2.0e-04],
       [1.3e-04, 2.8e-04, 2.1e-04, 1.7e-04, 1.5e-04],
       [2.0e-04, 2.1e-04, 5.8e-04, 3.3e-04, 2.3e-04],
       [1.6e-04, 1.7e-04, 3.3e-04, 6.9e-04, 2.1e-04],
       [2.0e-04, 1.5e-04, 2.3e-04, 2.1e-04, 3.6e-04]])

w = cp.Variable(5)
risk_aversion = cp.Parameter(value=1., nonneg=True)
ridge_coef = cp.Parameter(value=0., nonneg=True)  # <-- this causes the issue

obj_func = r @ w - risk_aversion * cp.quad_form(w, Sigma) - ridge_coef * cp.sum_squares(w)
objective = cp.Maximize(obj_func)
constaints = [cp.sum(w) == 1]
prob = cp.Problem(objective, constaints)
prob.solve(eps_abs=1e-8, eps_rel=1e-8)
print(w.value)

(Un)Expected behavior
In versions before 1.4, the snippet above will output:
[-1959.30787844<PHONE_NUMBER>3<PHONE_NUMBER>1  -409.40111681, 1036.34298081]
which is consistent with the result if we directly remove the ridge_coef * cp.sum_squares(w) term from the objective.
However, starting from 1.4, the output is None. If, instead of a Parameter, we directly set ridge_coef=0, the error becomes explicit and points to:
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/cvxpy/utilities/coeff_extractor.py:189, in CoeffExtractor.extract_quadratic_coeffs(self, affine_expr, quad_forms)
    183 if 'P' in coeffs[orig_id]:
    184     # Concatenation becomes addition when constructing
    185     # COO matrix because repeated indices are summed.
    186     # Conceptually equivalent to
    187     # coeffs[orig_id]['P'] += P_tup
    188     acc_P = coeffs[orig_id]['P']
--> 189     acc_data = np.concatenate([acc_P.data, data], axis=0)
    190     acc_row = np.concatenate([acc_P.row, P.row], axis=0)
    191     acc_col = np.concatenate([acc_P.col, P.col], axis=0)

ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 1 and the array at index 1 has size 0

Version

OS: Ubuntu 23.10
CVXPY Version: >=1.4.0

Additional context
I also noticed discernable differences (between versions before and after 1.4) in the output values for cases where the coefficient is non-zero. Not sure if the issue is along the same line, but I do not have a simple snippet to reproduce it yet. May follow up later.

a more complete error stack:
     18 constaints = [cp.sum(w) == 1]
     19 prob = cp.Problem(objective, constaints)
---> 20 prob.solve(eps_abs=1e-8, eps_rel=1e-8)
     21 print(w.value)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:503, in Problem.solve(self, *args, **kwargs)
    501 else:
    502     solve_func = Problem._solve
--> 503 return solve_func(self, *args, **kwargs)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:1067, in Problem._solve(self, solver, warm_start, verbose, gp, qcp, requires_grad, enforce_dpp, ignore_dpp, canon_backend, **kwargs)
   1064         self.unpack(chain.retrieve(soln))
   1065         return self.value
-> 1067 data, solving_chain, inverse_data = self.get_problem_data(
   1068     solver, gp, enforce_dpp, ignore_dpp, verbose, canon_backend, kwargs
   1069 )
   1071 if verbose:
   1072     print(_NUM_SOLVER_STR)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:691, in Problem.get_problem_data(self, solver, gp, enforce_dpp, ignore_dpp, verbose, canon_backend, solver_opts)
    688     s.LOGGER.info(
    689              'Compiling problem (target solver=%s).', solver_name)
    690     s.LOGGER.info('Reduction chain: %s', reduction_chain_str)
--> 691 data, inverse_data = solving_chain.apply(self, verbose)
    692 safe_to_cache = (
    693     isinstance(data, dict)
    694     and s.PARAM_PROB in data
    695     and not any(isinstance(reduction, EvalParams)
    696                 for reduction in solving_chain.reductions)
    697 )
    698 self._compilation_time = time.time() - start

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/chain.py:76, in Chain.apply(self, problem, verbose)
     74     if verbose:
     75         s.LOGGER.info('Applying reduction %s', type(r).__name__)
---> 76     problem, inv = r.apply(problem)
     77     inverse_data.append(inv)
     78 return problem, inverse_data

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/qp2quad_form/qp_matrix_stuffing.py:247, in QpMatrixStuffing.apply(self, problem)
    245 # Form the constraints
    246 extractor = CoeffExtractor(inverse_data, self.canon_backend)
--> 247 params_to_P, params_to_q, flattened_variable = self.stuffed_objective(
    248     problem, extractor)
    249 # Lower equality and inequality to Zero and NonNeg.
    250 cons = []

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/qp2quad_form/qp_matrix_stuffing.py:232, in QpMatrixStuffing.stuffed_objective(self, problem, extractor)
    229 def stuffed_objective(self, problem, extractor):
    230     # extract to 0.5 * x.T * P * x + q.T * x + r
    231     expr = problem.objective.expr.copy()
--> 232     params_to_P, params_to_q = extractor.quad_form(expr)
    233     # Handle 0.5 factor.
    234     params_to_P = 2*params_to_P

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/utilities/coeff_extractor.py:235, in CoeffExtractor.quad_form(self, expr)
    231 quad_forms = replace_quad_forms(root, {})
    233 # Calculate affine parts and combine them with quadratic forms to get
    234 # the coefficients.
--> 235 coeffs, constant = self.extract_quadratic_coeffs(root.args[0],
    236                                                  quad_forms)
    237 # Restore expression.
    238 restore_quad_forms(root.args[0], quad_forms)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/utilities/coeff_extractor.py:189, in CoeffExtractor.extract_quadratic_coeffs(self, affine_expr, quad_forms)
    183 if 'P' in coeffs[orig_id]:
    184     # Concatenation becomes addition when constructing
    185     # COO matrix because repeated indices are summed.
    186     # Conceptually equivalent to
    187     # coeffs[orig_id]['P'] += P_tup
    188     acc_P = coeffs[orig_id]['P']
--> 189     acc_data = np.concatenate([acc_P.data, data], axis=0)
    190     acc_row = np.concatenate([acc_P.row, P.row], axis=0)
    191     acc_col = np.concatenate([acc_P.col, P.col], axis=0)

File <__array_function__ internals>:180, in concatenate(*args, **kwargs)

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 1 and the array at index 1 has size 0

a more complete error stack:
     18 constaints = [cp.sum(w) == 1]
     19 prob = cp.Problem(objective, constaints)
---> 20 prob.solve(eps_abs=1e-8, eps_rel=1e-8)
     21 print(w.value)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:503, in Problem.solve(self, *args, **kwargs)
    501 else:
    502     solve_func = Problem._solve
--> 503 return solve_func(self, *args, **kwargs)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:1067, in Problem._solve(self, solver, warm_start, verbose, gp, qcp, requires_grad, enforce_dpp, ignore_dpp, canon_backend, **kwargs)
   1064         self.unpack(chain.retrieve(soln))
   1065         return self.value
-> 1067 data, solving_chain, inverse_data = self.get_problem_data(
   1068     solver, gp, enforce_dpp, ignore_dpp, verbose, canon_backend, kwargs
   1069 )
   1071 if verbose:
   1072     print(_NUM_SOLVER_STR)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/problems/problem.py:691, in Problem.get_problem_data(self, solver, gp, enforce_dpp, ignore_dpp, verbose, canon_backend, solver_opts)
    688     s.LOGGER.info(
    689              'Compiling problem (target solver=%s).', solver_name)
    690     s.LOGGER.info('Reduction chain: %s', reduction_chain_str)
--> 691 data, inverse_data = solving_chain.apply(self, verbose)
    692 safe_to_cache = (
    693     isinstance(data, dict)
    694     and s.PARAM_PROB in data
    695     and not any(isinstance(reduction, EvalParams)
    696                 for reduction in solving_chain.reductions)
    697 )
    698 self._compilation_time = time.time() - start

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/chain.py:76, in Chain.apply(self, problem, verbose)
     74     if verbose:
     75         s.LOGGER.info('Applying reduction %s', type(r).__name__)
---> 76     problem, inv = r.apply(problem)
     77     inverse_data.append(inv)
     78 return problem, inverse_data

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/qp2quad_form/qp_matrix_stuffing.py:247, in QpMatrixStuffing.apply(self, problem)
    245 # Form the constraints
    246 extractor = CoeffExtractor(inverse_data, self.canon_backend)
--> 247 params_to_P, params_to_q, flattened_variable = self.stuffed_objective(
    248     problem, extractor)
    249 # Lower equality and inequality to Zero and NonNeg.
    250 cons = []

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/reductions/qp2quad_form/qp_matrix_stuffing.py:232, in QpMatrixStuffing.stuffed_objective(self, problem, extractor)
    229 def stuffed_objective(self, problem, extractor):
    230     # extract to 0.5 * x.T * P * x + q.T * x + r
    231     expr = problem.objective.expr.copy()
--> 232     params_to_P, params_to_q = extractor.quad_form(expr)
    233     # Handle 0.5 factor.
    234     params_to_P = 2*params_to_P

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/utilities/coeff_extractor.py:235, in CoeffExtractor.quad_form(self, expr)
    231 quad_forms = replace_quad_forms(root, {})
    233 # Calculate affine parts and combine them with quadratic forms to get
    234 # the coefficients.
--> 235 coeffs, constant = self.extract_quadratic_coeffs(root.args[0],
    236                                                  quad_forms)
    237 # Restore expression.
    238 restore_quad_forms(root.args[0], quad_forms)

File ~/miniconda3/envs/dev/lib/python3.10/site-packages/cvxpy/utilities/coeff_extractor.py:189, in CoeffExtractor.extract_quadratic_coeffs(self, affine_expr, quad_forms)
    183 if 'P' in coeffs[orig_id]:
    184     # Concatenation becomes addition when constructing
    185     # COO matrix because repeated indices are summed.
    186     # Conceptually equivalent to
    187     # coeffs[orig_id]['P'] += P_tup
    188     acc_P = coeffs[orig_id]['P']
--> 189     acc_data = np.concatenate([acc_P.data, data], axis=0)
    190     acc_row = np.concatenate([acc_P.row, P.row], axis=0)
    191     acc_col = np.concatenate([acc_P.col, P.col], axis=0)

File <__array_function__ internals>:180, in concatenate(*args, **kwargs)

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 1 and the array at index 1 has size 0

It looks like a BUG in "cvxpy/utilities/coeff_extractor.py" (Commit https://github.com/cvxpy/cvxpy/commit/ee392e6637d977ed9f08d77dbab5742d8d6c6496).
In the lines 173-179, zeros will be eliminated as described in the comment.
                else:
                    # Eliminate zeros from data by tracking
                    # which indices of the global parameter vector are used.
                    nonzero_idxs = c_part[0] != 0
                    data = P.data[:, None] * c_part[0:, nonzero_idxs]
                    param_idxs = np.arange(c_part.shape[1])[nonzero_idxs]
                P_tup = COOData(data, P.row, P.col, P.shape, param_idxs)

However, what happens if data is empty after elimination?
I could get the result @codeterm expected after adding two lines as follows:
                else:
                    # Eliminate zeros from data by tracking
                    # which indices of the global parameter vector are used.
                    nonzero_idxs = c_part[0] != 0
                    data = P.data[:, None] * c_part[0:, nonzero_idxs]
                    param_idxs = np.arange(c_part.shape[1])[nonzero_idxs]
                    param_idxs = np.arange(c_part.shape[1])[nonzero_idxs]
                if data.size == 0:
                    continue
                P_tup = COOData(data, P.row, P.col, P.shape, param_idxs)

@chofchof your fix works for the non-parameterized case and makes good sense. I'm not sure what is going on in the parameterized case though.

@chofchof your fix works for the non-parameterized case and makes good sense. I'm not sure what is going on in the parameterized case though.

You're right. My fix does not work in the parameterized case.

I tried to test @codeterm's example above by changing the value of (nonzero) ridge_coef.
In the first test, ridge_coef = 0.01 is applied. Here you may see slight differences between optimal values.

ridge_coef = cp.Parameter(value=0.01, nonneg=True) gives prob.value and w.value as

7.769344007383085 [-17.39885522  12.09783917  11.0972133  -12.8954201    8.09922285]

ridge_coef = 0.01 gives prob.value and w.value as

7.772702321035973 [-17.28389047  11.8893989   10.82810669 -12.45822335   8.02460823]

In the second test, ridge_coef = 0.001 is applied. You can see differences between optimal values.
Do you assure that the optimal value given by the parametrized method is true?

ridge_coef = cp.Parameter(value=0.001, nonneg=True) gives prob.value and w.value as

66.06361129116742 [-175.78908486<PHONE_NUMBER>7<PHONE_NUMBER>7 -130.75360007   79.19209178]

ridge_coef = 0.001 gives prob.value and w.value as

68.79479601533353 [-163.98248933<PHONE_NUMBER>    87.40704913  -96.89783518   72.97493498]

In the final test of ridge_coef = 0.0001, the parametrized method failed to give optimal values.

ridge_coef = cp.Parameter(value=0.0001, nonneg=True) gives prob.value and w.value as

-618.59122699193 [-1759.69138117  1189.97825605  1089.92774367 -1309.33539968<PHONE_NUMBER>3]

ridge_coef = 0.0001 gives prob.value and w.value as

333.0980223364909 [-946.14228401<PHONE_NUMBER>7<PHONE_NUMBER>6 -301.7307055<PHONE_NUMBER>9]

@SteveDiamond There may be some serioud BUG in the parametrized method.
I suspect the reduction chain: FlipObjective -> CvxAttr2Constr -> Qp2SymbolicQp -> QpMatrixStuffing -> OSQP.

@codeterm @chofchof Thank you for providing additional details for this issue!
We are working on a fix here: https://github.com/cvxpy/cvxpy/pull/2406

@codeterm The PR has been merged. Feel free to test your original problem on the latest master version while we are working on the patch release.

@codeterm The PR has been merged. Feel free to test your original problem on the latest master version while we are working on the patch release.

I can confirm that the issue in my system (including unit tests) is gone. Thanks for the fix!

The patch is out now: https://pypi.org/project/cvxpy/1.4.3/
Thanks again for reporting and the elaborate exploration of the issue.


toInclude does not use deepEqual

Docs for toInclude says if comparator is not provided, it defaults to assert.deepEqual https://github.com/mjackson/expect#toinclude
But I believe it's just doing an indexOf comparison instead of assert.deepEqual.
PR: https://github.com/mjackson/expect/pull/44
FYI: jasmine's toContain uses deepEqual

Fixed in #44. Thanks, @kentor!


Publish single file doesn't load the leptonica dll (Exception has been thrown by the target of an invocation)

Hello,
I can't get my app to work if I publish it as a single file using the visual studio Publish tool.
I think the issue is somehow can't locate the runtime folder (x86, x64),
even though I made sure that both of them and the tessdata folder are located in the same folder as the executable.
BTW, The app works just fine if not built as a single file.
To reproduce the issue:
Either build as a single file or move the runtime files (leptonica-1.82.0.dll, tesseract50.dll) anywhere other than the (x86, x64) folder.

How to fix:
I think if you allow specifying a custom location for the runtime folders (x86, x64) that should fix it.
Stack Trace:
at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at InteropDotNet.InteropRuntimeImplementer.CreateInstance[T]()
at Tesseract.Interop.LeptonicaApi.Initialize()
at Tesseract.Interop.TessApi.Initialize()
at Tesseract.Interop.TessApi.get_Native()
at Tesseract.TesseractEngine..ctor(String datapath, String language, EngineMode engineMode, IEnumerable`1 configFiles, IDictionary`2 initialOptions, Boolean setOnlyNonDebugVariables)
at Tesseract.TesseractEngine..ctor(String datapath, String language, EngineMode engineMode)

I found a fix:
TesseractEnviornment.CustomSearchPath = Environment.CurrentDirectory;

But you still have to put the x86 and x64 in the same folder of your executable.

You can set the search path to anything however you do still need to deploy
the tesseract and leptonica DLLs these can't be bundled into a single
managed exe as they're native DLLs not dotnet.
On Thu, 23 Feb 2023, 08:05 w4po, @.***> wrote:

I found a fix:
TesseractEnviornment.CustomSearchPath = Environment.CurrentDirectory;
But you still have to put the x86 and x64 in the same folder of your
executable.
—
Reply to this email directly, view it on GitHub
https://github.com/charlesw/tesseract/issues/636#issuecomment-1440795631,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB7HSHX7EG6L2W6CCMHZMDWYZ5SJANCNFSM6AAAAAAVEU2SAE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Charles, On a .NET application these files get added and bundled to the project automatically. On framework you must add them manually. Is there a way to add them automatically like in .NET?


Fix #3792 Missing Column Issue

Description
Fix #3792 Missing Column Issue
What changes did you make and why?
After noticing the logs carefully I see that D/BookmarkLocationsDao$Table: bookmarksLocations db is updated from:14, to:15 was done, this issue was likely caused due to missing columns which were added in previous migrations, so I call all ifs which add new columns to the table, this will ensure that no column is missed and try-catch should prevent the same column to be added twice exception.
Tests performed
Tested betaDebug on Mi A2 with API level 29

Thanks @madhurgupta10 !


Encrypt payloads in builder

Wondering if there is any plan for supporting obfuscation/crypting the payload in the builder.
If not I am willing to implement it and make a PR.

It already obfuscates the payload. It uses the same method that Quasar use to obfuscates the payload.
I am not much familiar with C#. So if you can help with obfuscation, I'd be glad.


integrate trouter for ios

integrate trouter for ios

As you've probably discovered, we can't commit the binary .framework to this repo. We can work with you to get it published as a separate Cocoapod, as well as a Swift Package Manager Binary Framework.

As you've probably discovered, we can't commit the binary .framework to this repo. We can work with you to get it published as a separate Cocoapod, as well as a Swift Package Manager Binary Framework.

/azp run

See updated PR: https://github.com/Azure/azure-sdk-for-ios/pull/765
Once signalling package is ready we can merge


Startup Profiles

Description of the new feature / enhancement
A tool to define what software launches on specific days/times .
Something that's become quite common in the last few years is that people work from home more. I don't have 2 machines on my desk - Europeans don't have the luxury of that much space.
So I do my work on my personal machine and would appreciate the ability to have software that I can use to define profiles for windows startup.
Scenario when this would be used?
Eg. If I turn my pc on at 07h35 Mo-Fr - then launch my work stuff.
On weekends or after 17h30 - launch with other software.
Have the ability to define a profile(s) by day/time with specific exe's
Supporting information
No response

/dup of #19454


More metadata in the pyproject.toml

See what additional information can be put into the pyproject.toml file that won't risk breaking the build.
The information provided should be suitable enough to provide more context when the module is loaded to PyPi; stuff like homepages, repo pages, links to the CHANGELOG, additional documentation, etc, etc.
At the same time, there should be testing to see whether or not information should be pulled from setup.cfg, or whether it should stay intact.
These will be the two reference sources of data for the change:
https://peps.python.org/pep-0621/
https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

Commit.
https://github.com/cjcodeproj/medialibrary/commit/8322247251dbcb10c34d3310127e08bdfb082fd2

Closing notes:
The Python documentation regarding how to put in acceptable values is all over the map.  I'll post more links in another comment.  There were two other package uploads before I managed to get it right.
Other notes:

The keywords and topic additions might help the code be searchable.
The README.md was updated to make it less cluttered, and demonstrate some of the code functionality.
Build instructions were moved to a separate md file.
Links to repo and changelog in metadata, which should help project visibility.

Issues:

Need to figure out an acceptable means of bundling additional documentation with the module.  There's not a lot of examples of how existing modules do it.
Lots of things in pyproject.toml feel like a moving target as far as features go.  It should probably be reviewed before every release cycle.

Other links I had to read to get this work done:
PEP-639
PEP-621
Configuring setup tools using pyproject.toml files
SPDX IDs
Core metadata specifications

Link to direct build: https://test.pypi.org/project/medialibrary/0.1.3/


Refactor: Update Probe in Symon Mode Without Restarting

Monika Pull Request (PR)
What feature/issue does this PR add?
Update probe in Symon mode without restarting. It will resolve #1163.
How did you implement / how did you fix it?

Always get the latest probe data from the cache for each iteration.
Update the local probe state when there are probe data changes.

How to test:

Run Monika in Symon mode.
Add, update, and delete a probe.
Run Monika in Monika mode.

Video
Symon Mode
https://github.com/hyperjumptech/monika/assets/15191978/a50e16cf-cd04-4905-9ec0-30df57c040bd
Monika Mode (Regression Test)
https://github.com/hyperjumptech/monika/assets/15191978/ab0e5a39-acbf-4c0e-b168-605b36c338a9

Thanks, it also fixes #1216

I have separated the PR for this issue in #1219. Previously, I included the fix here to make it possible to test.


Downstream cluster is in Unavailable state after Upgrade and rollback using rancher backup chart

Rancher Server Setup

Rancher version: Upgrade from 2.5.9 to 2.6-head commit id: 723f747b and back to 2.5.9
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Proxy/Cert Details: Rancher generated

Information about the Cluster

Kubernetes version: Local - 1.20.9
Cluster Type (Local/Downstream): Downstream - Custom cluster - 5 nodes, GKEv2 cluster

Describe the bug
Downstream cluster is in Unavailable state after Upgrade and rollback using rancher backup chart
To Reproduce

Deployed 2.5.9
Deployed a couple of downstream clusters - Custom cluster - 5 nodes, GKEv2 cluster
Create resources in the downstream clusters (pre upgrade jenkins job)
Deploy rancher backups and take backup b1
Upgrade rancher to 2.6-head (Helm upgrade)
Validate existing resources on downstream clusters and create new set of resources.
Deploy an RKE1 standalone cluster.
Followed these steps to migrate to a new RKE1 cluster
Rancher Backups Installed - 2.0.0+up2.0.0-rc8
Restore from backup b1 and helm install rancher 2.5.9
One of the downstream clusters - Custom cluster is stuck in Unavailable state.
Error seen in Rancher logs:

2021/08/11 05:09:08 [ERROR] Failed to connect to peer wss://<IP_ADDRESS>/v3/connect [local ID=<IP_ADDRESS>]: websocket: bad handshake
2021/08/11 05:09:12 [ERROR] error syncing 'mystep2-app-ns': handler resourceQuotaSyncController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, handler resourceQuotaUsedLimitController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, requeuing
2021/08/11 05:09:12 [ERROR] error syncing 'mystep2-ns1': handler resourceQuotaSyncController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, handler resourceQuotaUsedLimitController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, requeuing
2021/08/11 05:09:12 [ERROR] error syncing 'mystep2-ns2': handler resourceQuotaSyncController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, handler resourceQuotaUsedLimitController: projects.management.cattle.io "c-m645x/p-lvfv6" not found, requeuing
2021/08/11 05:09:13 [ERROR] Failed to connect to peer wss://<IP_ADDRESS>/v3/connect [local ID=<IP_ADDRESS>]: websocket: bad handshake

Expected Result
Downstream clusters should be accessible and come up Active.

Can not reproduce this bug.
But it might be fixed as part of https://github.com/rancher/rancher/pull/34212
Move to test, but be free to reopen it if the bug happens again.

I'm seeing something similar after trying to upgrade 2.5.7 -> 2.5.9 on helm installed RKE2:
time="2021-08-22T20:23:57Z" level=error msg="Failed to connect to proxy. Response status: 503 - 503 Service Temporarily Unavailable. Response body: \r\n<title>503 Service Temporarily Unavailable</title>\r\n\r\n
503 Service Temporarily Unavailable
\r\n
nginx\r\n\r\n\r\n" error="websocket: bad handshake"
time="2021-08-22T20:23:57Z" level=error msg="Remotedialer proxy error" error="websocket: bad handshake"

Downstream clusters remain "unavailable" in the Rancher UI.


RAMP: Documentation

Each of the packages should create is own documentation. We should at least get the API reference right since that we will have the docstring.

[x] Add CI to build the documentation at each PR (circle ci to get the artifacts)
[x] Add the install, tests instructions
[x] Add how to setup a server
[x] Add how to deploy a ramp event
[x] Add a note about the ramp workers
[x] Add a documentation how to implement a new type of worker
[x] Add the API documentation for all the packages
[x] Fill up whatever remaining page

Nice work on the documentation!
Just went through re-installation of ramp_board to get the latest version and it went rather smoothly thanks to it. The manual folder layout is also a nice improvement (at least I now understand better what is going on).

Thanks. We are going to add a couple of documentation sections regarding the structure of a ramp-kits and ramp-data as well.
@rth you can cherry pick https://github.com/paris-saclay-cds/ramp-board/pull/233 for the reset of the password. This is actually working and could be useful for your next class just in case.


Unreal Tournament GOTY: Cannot use text input for menus, console, and chat.

Game
Unreal Tournament: Game of the Year Edition
Engine
ut99
Linux Distribution
SteamOS v3.5.13 Preview
Luxtorpeda Version
v68.0.0
Bug description
I cannot seem to use my Steam Deck's on-screen keyboard to interact with menus, use console commands, and use text chat.
Steps To Reproduce
Try typing into any text field in-game with the keyboard, and note how it fails to register.
Expected Behavior
Any and all text fields would behave normally, no matter what.
Additional Context
This issue did not occur with Unreal Gold.
Relevant log output
No response

Does adding SteamDeck=0 %command% to the launch options in steam help? This sounds like that bug again, that isn't our bug, but something wrong in SteamOS or SDL.

There's an open ticket on the steamos repo about it, that should point to it being fixed in the future. I am thinking about enabling that for the client in general, but not sure if there's any bad side effects to doing so.


Remove all diagnostics

A less ambitious PR, just remove the  System.Diagnostics.Trace  stuff

Feel free to merge this PR (or the other if you're feeling adventurous)

Figured I'd do this one so we get one PR per-change.


Add stats to channel call

Proposed Changes

(Describe the changes and rationale behind them)

Related Issues

(Github link to related issues or pull requests)

Codecov Report

Merging #58 (831fa5e) into main (25177b6) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #58   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            6         6
  Lines          319       319
  Branches        42        42
=========================================
  Hits           319       319

Impacted Files
Coverage Δ

src/youtubeaio/youtube.py
100.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Improve PR labeling

As a Code PushUp contributor, I find it confusing when too many labels are applied on my PR.
I suggest adjusting the current PR labeler behaviour in the following way:

Only packages/<package>/src/** get the respective package label.
tsconfig*.json, project.json, package.json, *eslintrc* get a tooling label (to be created).
vite.config*.ts gets the 🔬 testing label.
README.md and CHANGELOG.md get the 📖 docs label.
nx.json and other root configuration files not matching the naming above would be under tooling as well.

These paths should be matched both for the root folder and for the package folder.
Current behaviour example
In each package, only project.json has been changed.

Happened to me too in #330 😅 Only changed ESLint configs.


Can I fine tune from pre-trained model?

Can I restore from pre-trained model and fine tune on another task? Say I want to detect 10 types of key points, how can I modify the code? Since directly loading the original model parameter will give 'dimension not match' error(MPII has 16 key points). Thanks.

I want to fine tune from pre-trained model ,too.
Have you resolved it ?


Fixed some typos

Just fixing more some typos.
README.md:
abstrations -> abstractions
tensor/example_dense_cmp_test.go:
Simliarly -> Similarly

Coverage increased (+0.02%) to 72.807% when pulling c8cfa985e178148922b9c8d511b0cc169f25bcac on tiagorlampert:master into d78b17f3e9857e0b755070a011d200176b7baa75 on gorgonia:master.

Coverage increased (+0.02%) to 72.807% when pulling c8cfa985e178148922b9c8d511b0cc169f25bcac on tiagorlampert:master into d78b17f3e9857e0b755070a011d200176b7baa75 on gorgonia:master.

Thank you so much @tiagorlampert


feat(FTL-8301): Add a button on schema details to issue VCs with schema

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

Visual Studio Marketplace
GitHub release

Your semantic-release bot :package::rocket:


'rake' gem dependency fix

Fixed 'rake' gem dependency. Jeweler doesn't work at least with rake <IP_ADDRESS> for folders with multibyte characters. It works well with rake 0.8.7 as was included in Ruby till 1.9.2.

Closing. Moving to 'jeweler2' gem.


Spawn fails after starting normal notebook

Hello,
I recently started using planetary computer and loved it, until I ran into the same issue yesterday and today. I didn't do anything differently than before, but can't seem to avoid this problem. The final output reads, "Spawn failed: Server ... didn't respond in 30 seconds."
Is there some debugging I can do on my end?
Thanks,
Alex

This sometimes happens if you've filled up your home directory. Can you send an email to<EMAIL_ADDRESS>with the account you used to sign up for the Planetary Compujter and I can check.

Continuing via email, closing here.


Document structure and future customization

This is more of a question than a bug. I noticed that the document
needs to follow a specific structure. So, new projects most likely
use firestore as opposed to realtime database. Hence, most use-cases
will try to find a firestore port of geofire on pretty much all platforms.
I'm coming from iOS side and it looks like the implementation there
uses a flat structure like:
g: geohash (String)
l: (lat, long) (GeoPoint)

I'm looking to do the same for the web but this library has a
different structure to it. I do have some work-arounds I can do to save
time but is this a reasonable enough change I can make after forking ?
If so, could you provide a code hint ?
Aside: It looks like from a functionality perspective - two things needed are
the geohash itself and the lat/long as GeoPoint. Why not let them be passed as
custom keys just like the way collection name is configurable ?

In earlier versions of this library (v3, v2, and v1)  a similar data structure as geofire was used, where there was a g and l field, but user data was stored in a d object. The user only ever had the d object returned, and never saw the other fields. A reason for that is I didn't want to have multiple fields that a user could manipulate by accident, so I abstracted all the fields the library added. All an user had to provide was the document, the library would put it into the d field, and when they queried the library would only return the d field.
This led to some confusion though, as when a developer would look at the data structure in their collections they'd see the d field and think that they needed to add it to their queries and what not.
The new structure with user data being at the top level and all the geofirestore data being embedded in the g field came after feedback about thed field being confusing as well as me not wanting to have that heavy of an influencein users data. When/if the Firebase team opts to support geoqueries natively then all a developer would have to do is remove the g field. In regards to using a custom key that's defined when you to define a collection, I actually think that's a good idea! I'll probably include that in the next version of the library. (End of the week(?))

Awesome! Once, you have the custom key capability - I believe it would
be much easier to integrate this across platforms. I am unsure when
exactly Firebase would support this natively but for the time being, most
users resort to some of the community led initiates of integrating geofire
with firestore.
Frankly, the swift version isn't being maintained either - So, I spent a day
ripping out that functionality and throwing your library behind a cloud function
to make this work across platforms. Your idea behind abstracting most of the
geohashing related data makes sense and I don't mind closing this out as a
won't do, the only conclusion I could make from looking at other
projects is that from a functionality perspective - you only required those two
fields. Hence, if they were configurable - it wouldn't matter much what they were
called (Assuming the other platforms all base their functionality from geofire).

Hi @MichaelSolati thanks so much for your work on the library. I'm actually using your library in react native, and I just want to know will v3 continue to be maintained with future evolvement in firebase? Example for newer firebase queries? My concerns is that since the data structure is no longer the same in v4 (eg: exclusion of the d field), I cannot simply migrate the data to the v4 format as it will break the app versions (where user have not updated the app) that are still on v3.
Just wanted to seek your thoughts on this, and whether it's still okay to continue staying on v3 of the library, or if data migration is really necessary going long term with this library.
Thanks so much!

@rahulravindran0108 v4.2.0 is releasing nowish which will allow you to define a custom key for geocollections when you define a geocollection, rather than when you add a doc (as well as for geowritebatches and geotransactions).
@robertqin86 I see myself supporting v3 of geofirestore until the end of the year if bugs or security issues arise. As for new features, those will only be added to v4. I'd suggest making a migration in your data structure to your collection (though v3 is in a stable place and shouldn't really break anytime soon). Check out this bit in the README if you need pointers in migrating your data.


Randbats: Ensure that Genesect's forme matches its drive if it has one

Randbats should be able to generate any forme of any Pokémon... this'll need to be fixed at some point.

Randbats should be able to generate any forme of any Pokémon... this'll need to be fixed at some point.

You do know that Genesect form is literally a sprite difference and being stuck with a coverage move it doesn't need at the loss of an item? People complained about these shitty Genesect sets and so they were removed. Formes with actual differences I can agree with.

Yes, I also know that Unown is strictly outclassed by like any other Pokémon.

I don't know, it seems wrong to just not use a Pokémon at all just because it's bad.

I don’t think you understand how seriously Random Battle is taken. People play this competitively. We’re already forced to use f’n joke sets.
It’s not even a Pokémon. It’s literally an item. Every Pokémon is in Randoms (except I think Castform-Snow but I can fix that).

Maybe the default should be Battle Factory. :|
You can play competitively with suboptimal Pokémon. That always seemed like the point of randbat to me.

We do have suboptimal sets, or sets that you don’t see competitively you could say. Douse Drive isn’t optimal, for example. But it isn’t a literal handicap on Genesect as the other Drives are.
If you want the default format to emphasize the official Smogon tiers more, then yes, Battle Factory should be default. But I think Random Battle appeals to the casual audience more. While we try to make it competitive, it’s still fun at the same time. We’re not Battle Factory level of strictness, and not Challenge Cup level of randomness.

https://dex.pokemonshowdown.com/moves/technoblast
Techno Blast was buffed to 120 power, so it's not strictly outclassed by Thunderbolt and Flamethrower and Ice Beam anymore. It might be weaker than other sets but it still seems like a Pokémon to me.
I hope we're not also excluding Darmanitan-Z and Meloetta-P on the grounds that they're weaker than other sets.

I've played over 2000 games of Gen 7 Randbats and I've never seen a Darm-Z.

Meloetta-P is actually a good set, it's always been in.

It seems the best way to deal is just to raise the level on handicap sets if they're that much of a handicap.

Incidentally, I've heard Belly Drum Darm-Z can be interesting. Not a great set but has some surprise value, and sometimes that's the best you can do in randbats.

Absolutely not. That's akin to complex bans, they'll be no end. In addition, levels would be arbitrarily picked.
I wouldn't be completely opposed to Darmantian-Zen. I'll see if I can come up with a decent set.

I mean, we're talking about tiering formes separately, a time-honored tradition.

And imo way better than ability bans and move bans.


pixinsight: disable hydra builds

pixinsight: disable hydra builds

doesn't it already not build because of its license?
https://hydra.nixos.org/eval/1779991?filter=pixinsight&compare=1779931&full=#tabs-inputs

doesn't it already not build because of its license? https://hydra.nixos.org/eval/1779991?filter=pixinsight&compare=1779931&full=#tabs-inputs

nixpkgs-review still tries to build it. That is how I reached it.

Result of nixpkgs-review pr 190511 run on x86_64-linux 1

Thanks!


Get info about a tweet

I want to get all the retweets and likes of a given ID.
Is there a way to get all the information about a specific tweet given its ID?

current workaround could be getting username and text of the tweet and make a search with this parameters.
But if the user is a VIP and the tweet contains just a few words, might be challenging


Method to get an object from MetaChain by body-hash to get a specific version.

I have not found a method to get an object from MetaChain by body-hash to get a specific version.

This should be a function implemented by MetaChain's spv node, which needs to record the information of different body hash of the same object when scanning the main chain nodes and provide the corresponding query interface
See issue #108


Update base.html

[x] 'Convert' spelling Correction

Kindly check if there are more errors, else I'll merge it

I checked throughly, there seems to be no more spelling mistakes.
Please add hacktoberfest label to it while merging


[Question/Feature request] Add process id to mocha output

Hello team.
I use mocha with playwright for running tests in parallel. I run tests with --jobs=8 parameter - in 8 parallels.
Playwright has a feature for debug - verbose logging by setting DEBUG=pw:api environment variable. When it's set, playwright sends debug logs to stderr. But it just sends traces without process id, so logs look like this:
pw:api => page.click started
pw:api   navigated to "https://website.com/"
pw:api waiting for selector "#login-field"
pw:api   selector resolved to visible <input value="" type="text" required="" data-val="true"…/>
pw:api attempting click action
pw:api   waiting for element to be visible, enabled and not moving
pw:api   element is visible, enabled and does not move
pw:api   scrolling into view if needed
pw:api   done scrolling
pw:api   checking that element receives pointer events at (960,338)
pw:api   element does receive pointer events
pw:api   performing click action
pw:api   click action done
pw:api   waiting for scheduled navigations to finish

When tests run in parallel, there could be an issue with reading logs. These traces can be mixed up because of workload.
I asked Playwright guys about adding process_id to the output, but they advised me to ask mocha team if it can put process id to it's output, because mocha is responsible for running tests in parallel in different processes.
So is there any possibility to add process id to each line of the mocha output?

As a workaround I did the following in the beginning of test file.
var access = fs.createWriteStream('/var/log/node/api.access.log');
process.stdout.write = process.stderr.write = access.write.bind(access);

there's a (currently undocumented, but public) API now to define a worker reporter (ParallelBufferedRunner#workerReporter, which requires a custom reporter to call).  such a reporter could do this; JetBrains' Mocha plugin uses this API to handle test results in parallel mode.
but otherwise there's no obvious place to output this process ID information, especially since the debugging is happening outside of Mocha's own facilities.


Fix README.md bugs

This PR updates the README.md with correct manual URL and better PowerShell instructions. I will 🚢 immediately, since both are confirmed fixes in other PRs and I don't want anyone to teach a class with the wrong manual URL.

cc @githubtraining/trainers for awareness


Is there a way to perform some action right before completer (or) on KeyPress?

Hey,
I'd like to know if there's a way to catch a TAB key press, and then populate the ReadlineHelper struct with possible completions.
In particular, I'm trying to implement REPL tab completion for JSTime here.
For example, after setting the helper and right before the completer starts to the complete method, I'd like to basically fill in the completions in the struct.
I'm only starting to get familiar with Rust, so I might have missed something here as well :)

I think you are supposed to calculate the completions directly in the complete method of the helper instead of precalculating them and storing them in a field of the helper.

@bjorn3 So I was intending to do that, but there some problems I faced with that. For eg. the signature for the complete method takes in &self, whereas the function that generates these completions requires a &mut self.
I could not find a direct way around this, because the trait signatures would be different if I modified the complete method.

You can use RefCell to wrap whatevee you need to mutate.

I agree that the perfect signature should have been:
fn complete(
    &mut self, -- mutable
...

It appears that all similar crates have the same issue:

https://docs.rs/linefeed/0.6.0/linefeed/complete/trait.Completer.html#tymethod.complete
https://docs.rs/liner/0.4.4/liner/trait.Completer.html
https://docs.rs/termwiz/0.9.0/termwiz/lineedit/trait.LineEditorHost.html#method.complete

For the moment, do as suggested by @bjorn3


Custom placement of violation messages

Hello,
I would like to have a custom placement of the violation messages. I saw that the violation message structure can be updated, but is there a way for custom placement?
Here is what it looks like now,

    Name

               <input type="text" placeholder="What is your name?" data-ng-model="user.Name" id="Name" name="Name" class="form-control ng-dirty ng-valid-parse ng-empty ng-invalid ng-invalid-valdr-required ng-invalid-valdr ng-touched" style="">

Please enter your name!

This is what i am looking to achieve,

    Name

               <input type="text" placeholder="What is your name?" data-ng-model="user.Name" id="Name" name="Name" class="form-control ng-dirty ng-valid-parse ng-empty ng-invalid ng-invalid-valdr-required ng-invalid-valdr ng-touched" style="">

Please enter your name!

Hello,
I managed to achieve this by adding the valdr-form-group where i needed the violations to be appended as below,

    Name

               <input type="text" placeholder="What is your name?" data-ng-model="user.Name" id="Name" name="Name" class="form-control ng-dirty ng-valid-parse ng-empty ng-invalid ng-invalid-valdr-required ng-invalid-valdr ng-touched" style="">

Please enter your name!

But the problem now is that we wont be able to highlight the labels for violations. Is there a way out to achieve both the scenarios?

Hello,
Achieved it with the following,

    Name

               <input type="text" placeholder="What is your name?" data-ng-model="user.Name" id="Name" name="Name" class="form-control ng-dirty ng-valid-parse ng-empty ng-invalid ng-invalid-valdr-required ng-invalid-valdr ng-touched" style="">

Please enter your name!

Thanks for the awesome plugin!


silx.gui.data.DataView: Removed patch for pymca <v5.3.0 support

This should no longer be needed.

I have not seen the warning displayed. Therefore I conclude that piece of code is not needed.


t.rejects is documented to return a promise, but returns undefined instead

About the rejects assert, the documentation claims:

it returns a Promise that resolves when it is completed

Source: https://github.com/tapjs/node-tap/blob/gh-pages/asserts/index.md#trejectspromise--fn-expectederror-message-extra
This seems not to be the case:
const tap = require('tap');

tap.test("where is my promise", async t => {
  t.type(t.rejects(Promise.reject(new Error())), Promise);
});

gives
TAP version 13
# Subtest: where is my promise
    ok 1 - expect rejected Promise # time=6.096ms {
        ok 1 - expect rejected Promise
        1..1
    }

    not ok 2 - type is Promise
      ---
      found: undefined
      wanted: Promise
      compare: ===
      at: {}
      ...

    1..2
    # failed 1 of 2 tests
not ok 1 - where is my promise # time=18.532ms

1..1
# failed 1 test
# time=26.419ms

I'm running node-tap v10.7.2 on Node v8.6.0

Fixed in v11.  Thanks!


adding cursor theme support

Description
This adds support for querying what cursor theme is being used. I figured some people might want to know?
Issues
Asking KDE which cursor theme is being used is a bit tricky as the default setting is stored in one config file, and if it's changed KDE creates a new config file to store the setting in. This PR looks in both places. Not sure if there's a better way to do this?
Example

Thank you for your contribution!
This PR is merged into hyfetch since this repo (dylanaraps/neofetch) seems no longer maintained.
HyFetch is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo.
Read the "Running Updated Original Neofetch" section for more info!

It works!


fix(eventlog) Support toggle to enable the event log ws

https://github.com/longhorn/longhorn/issues/2592
Signed-off-by: Siye Wang<EMAIL_ADDRESS>

For now, we will not go this way, let's just close the PR first, but see if we will need in the future.


As a follow-up to #267 add "safe navigation" operator to Calc

Code as "?." as in:
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_SafeNavigationOperator.htm
Note: Ruby uses "&." instead.

Just a reminder: "?." should have the same priority as "." in the grammar.  Will probably require significant changes to LValueContext to make it work.

Could also add ?? "nullish" coalescing operator as in here no. 3: https://www.freecodecamp.org/news/javascript-new-features-es2020/


Stop propagating Loader downward from Container Runtime

Related to #4910
Currently the ContainerRuntime propagates the Loader downward by way of its interface.  It shouldn't do this by default, and hosts that want to do so should provide it some other way, such as through the scope.  Existing downward consumers of the Loader will need to be fixed to use whatever the new pattern is.

Moving to April because this is a back-compat cleanup item that can't be done in March

affected APIs have been deprecated for a while now and the bohemia side changes went in recently, will open a pr to remove the deprecated apis soon


P15 only supported for managed disk

In "Premium Storage Disk limits" section, it says "Azure offers eight types of premium storage disks: P4(Managed Disks only), P6(Managed Disks only), P10, P15, P20, P30, P40, and P50". Is P15 only supported for managed disk? If so, please explicitly point this out, like in this doc https://docs.microsoft.com/en-us/azure/virtual-machines/windows/premium-storage-performance#premium-storage-disk-sizes, to avoid any misunderstanding.

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

ID: 4ea00c3f-e389-9258-45a5-395247555f75
Version Independent ID: f01af29d-f543-077a-3d71-6b6b437758cd
Content: High-performance Premium Storage and Azure managed disks for Windows VMs
Content Source: articles/virtual-machines/windows/premium-storage.md
Service: virtual-machines-windows
GitHub Login: @ramankumarlive
Microsoft Alias: ramankum

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


Update  jedi-language-server to latest

The latest version of jedi-language-server is 0.41, released in July, and which pulls in Jedi 0.19. Jedi 0.19 formally adds support for Python 3.11, so it would be great to have the available.
Is this just a case of running the pip-compile update of the requirements files, or is there more involved in the update?

This is a case of running pip-compile on the Jedi Requirements.

Having a quick look at this, it's slightly complicated as  jedi-language-server 0.41 pulls in Pydantic 2 which uses a compiled Rust core package. That means there's native code needed, which impacts packaging of the extension.
@karthiknadig is there any precedent/examples for handling packaging of native code in a (Python) VSCode extension? From what I can tell the vscode-mypy extension appears to do this (by including binaries for all platforms), though I can't actually figure out how it does it -- I can't see anything in the repo which sets up the build to pull down the binaries for all platforms.

@PeterJCLaw we have install_debugpy.py that does this for debugpy. You may have to do something similar.
Side note: Is there a need for jedi-language-server to use pydantic? the pygls package for the code LS no longer depends on it. So, I am wondering if this dependency can be removed from jedi-language-server as well.

Unfortunately it looks like jedi-language-server has its own dependency on pydantic as it uses it for config parsing.
I'll have a look at install_debugpy.py when I get time.

An alternative that we have been thinking is to pull it out into separate extension using this : https://github.com/microsoft/vscode-python-tools-extension-template
That would allow users to have dedicated jedi settings which we currently don't expose. The TS code there can be significantly simplified for Jedi, and we can get rid of all the lsp_* files just download jedi-language-server. The extension packaging can handle packaging for various platforms. This would solve the packaging problem, and allow Jedi to be updated without depending on the python extension.

Just to connect things up a bit -- it sounds like jedi-language-server might be going to drop its dependency on pydantic soon. I'm holding off doing anything on this side temporarily to see if anything happens in that regard.

I'll  probably release Jedi 0.19.1 extremely soon (probably in the next few days), we should probably also upgrade to that, because that adds 3.12 support (thanks to @PeterJCLaw).

@PeterJCLaw just released the pydantic-free version! https://github.com/pappasam/jedi-language-server/releases/tag/v0.41.1

@davidhalter do you know when you might have time to release Jedi v0.19.1? I'm happy to put together another PR for vscode-python once it's out.

I just released Jedi 0.19.1, just in time for the Python 3.12 release itself.


Mini-course resource for projects

We are porting the Planet Hunters style mini-course into PFE for Gravity Spy. The mini-course will be identical to the tutorial on the back end, but will have minor differences from the tutorial on the front-end. We also want projects to be able to have both tutorials and mini-courses, which is why this is separate from a tutorial resource, too. Could we add support for projects? Mini-courses will have a media string which will be an id of an attached_image and content string which will be markdown (like #1425).
Just for fyi, in the future we may give researchers the ability to set the interval of many classifications for the mini-course slides to pop up, but this will be determined after a/b testing if it is added at all. For now, we will be hard-coding in the front end the frequency (like the sign-in prompt).

yeah - we can add another resource for this.
Can you specify the resource data types you'll need? Tutorial looks like this. I assume that will do for you?

Yes, it'll be identical to the tutorial, so that will do. Thanks.

what's the timeline on this?

Would the end of this month work? There's going to be some a/b testing with it that we'll need to get in place April or May. The project is targeting a June launch. I working on and can get most of the front end for it done this week.

Will aim for that. If you can stub the data as is from the api then it should be a drop in replacement.

@camallen, @eatyourgreens brought up a good question in the custom projects stand up today about whether or not tutorials or mini-courses should belong to workflows rather than one per project. I think I'll need to follow up with the Gravity Spy team about this since one of the plans is also to have multiple workflows based on difficulty for the volunteer and it may make sense to have separate tutorial or mini-course for them.

@brian-c and I talked about this...i preferred per workflow but we were told to implement them per project in the interim. @srallen find out if we need per workflow..

@camallen I'm going to find out asap.

@camallen, I checked in with @trouille and it sounds like we'll need tutorials to linked to workflows for Gravity Spy and the Notes for Nature rebuild (I'll open a separate issue for that). Gravity Spy will only have one mini-course, but for future proofing, mini-courses should also be linked to workflows.

@srallen If it's going to be just the same as a tutorial, wouldn't we be better off adding a "kind" field to the tutorial resource so that you can distinguish between two kinds of tutorial in the frontend?

@marten Yeah I was thinking about this, but at the time tutorials belonged to project and had only one, it made sense to have a separate resource for mini-courses to be able to support both and allow some divergence. However, if tutorials will change to belong to workflow and to allow many per project, then yeah, it can just be a "kind" field on the tutorial.

Tutorials are now assignable per-workflow in the API (have-many, so you can share tutorials across workflows). Tutorials also have a kind field where you can store an identifier to distinguish between normal tutorial and the "mini-course".


Font colors in Aggregate score

Description of feature
Hi,
The values in the Aggregate Score of the results table are really hard to read when the score is high and the background color gets very dark, it would be nice if the font color was set to white depending on the value like it is in Bio conservation and Batch correction metrics. That would be super useful, thank you!

Thanks for your feature request, I'll look into this.

We'd be happy to accept a PR if you are able to make the change @alitinet


libs/libc: License Clearance

Summary
Change the copyright header of assorted source files in libs/libc to the ASF version.  I was listed as the author in these files.  I did also check the heritage of those files and besides me they have only been changed by the following people, all of whom did sign a CLA to the best of my knowledge:
Alin Jerpelea
Haitao Liu
Gregory Nutt
Yamamoto Takashi
Xiang Xiao
Impact
None, only comment and some coding style changes.
Testing
Compiles still fine and all touched files are nxstyle clean.

LGTM


chunks of nonempty as a nonempty list

I added this function to mwb in a recent PR but it probably belongs here. When we do chunksOfNonEmptyText we're guaranteed to get at least one chunk, so here's a version that returns a nonempty list.
Though it uses fromJust and so deserves skepticism, I've thought it through and I think it's safe. Please think it through with me and let me know if you think there are any holes. Also open to suggestions for better test cases; I just repeated the ones from chunksOfNonEmptyText.

@ac251 I think that this signature makes more sense than the original function with a list. Let's make a breaking change and replace the existing function?

@ac251 I think that this signature makes more sense than the original function with a list. Let's make a breaking change and replace the existing function?

sure, sounds good to me. will update

@ac251 I think that this signature makes more sense than the original function with a list. Let's make a breaking change and replace the existing function?

sure, sounds good to me. will update

done

thanks so much @lykahb and sorry about the delay


Renderer issue

Thank you for your great work!
BTW, when I run TensoRF on llff fern data, I got an error and solved it.
I want to report this.
The error was like this:
Traceback (most recent call last):
File "train.py", line 301, in
reconstruction(args)
File "train.py", line 225, in reconstruction
prtx=f'{iteration:06d}_', N_samples=nSamples, white_bg = white_bg, ndc_ray=ndc_ray, compute_extra_metrics=False)
File "/home/asc/PycharmProjects/nerf-pytorch/venv/lib/python3.6/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
return func(*args, **kwargs)
File "/home/asc/PycharmProjects/TensoRF/renderer.py", line 38, in evaluation
idxs = list(range(0, test_dataset.all_rays.shape[0], img_eval_interval))
ValueError: range() arg 3 must not be zero
So, I modified renderer.py like this
img_eval_interval = 1 if N_vis < 0 else test_dataset.all_rays.shape[0] // N_vis
if img_eval_interval == 0:
    img_eval_interval = 1                   # add these 2 lines

And it worked.

Thank! I will update it next push. BTW, you can also set 'N_vis' to -1 for resolving this error.


BindingsEndpoint locateBinding bug

	private Binding<?> locateBinding(String name) {
		Stream<Binding<?>> bindings = Stream.concat(this.gatherInputBindings().stream(), this.gatherOutputBindings().stream());
		return bindings
			.filter(binding -> name.equals(binding.getName()))
			.findFirst()
			.orElse(null);
	}

Currently this code finds the first one given a particular name, however if I have a Kafka producer and a Kafka Streams consumer in the same codebase it ends up having two with the same name so there isn't a way to reach whichever one is second to pause/resume it/check status with the get endpoint/etc. The main /actuator/bindings endpoint correctly shows the status of all of them though

I am not ready to classify this as a big since as you pointed out in the code this is intentional. That said, it is lacking functionality to be able to handle the scenario you describe

So, this is a bit tricky.

I am questioning the value (outside of testing) of the Producer and Consumer in the same application. I mean if you producing something that has to be consumed/processed in the same app, why not just call the processing method directly? Why use remote messaging broker like Kafka/Rabbit etc.?
If there is  proper justification, then we need some unique identifier for the Binding since we can not rely on the name. If so, should such id be as simple as newly generated id at the star time or should it be the type of id that is always the same and so on. . .

Basically this is not even an enhancement, rather a new feature which largely depends on answer to question 1.

For 1. Testing is probably the main use case and the only real one I have currently, but I could see someone using it for throttling purposes, for example one message spawning off into 500 individual messages that are only consumed 5 at a time or something
One thing to note is that it does feel a little misleading for the get call to return all the binders, but the individual calls to only be allowed to impact one of them. Thoughts on logging a warning if there is more than one with the same name?

I keep struggling with the concept of supporting something that is only used in testing. For throttling case there are other ways of accomplishing it.
This means that outside of testing this is not a realistic scenario as you essentially go against the framework design. If you want to wire several components together via channels in a single JVM for testing purposes then create a test SI configuration. . . Spring Cloud Stream delegates to SI anyway, so you're not even changing the invocation model (send/receive to/from channel), just the activation (rabbit/kafka).
I do not see any tangible actions other then further discussion on this issue.

Do all the binders use the destination value as the name of their binding? So if I have a destination "workQueue" for rabbit and kafka will they be named the same?

@mtj8033 yes, but the bigger point why/when (outside of testing) would this be useful - this being binding Consumer and Producer to the same destination in a single microservice?

Well the reason I was asking the last question is because then its not even the same actual destination, just the same name.
In this example:
https://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#multiple-systems
If the destination name was the same wouldn't they hit the same issue? So I don't know maybe you wanted to read all messages from workQueue in rabbit and write them out into a topic named workQueue in kafka, you'd run into a similar issue if you tried to pause no? Or replicate messages from one rabbit instance to another to facilitate a transition period

Good point on multi-binder. . . need to think


Major Updates

Some major updates:

Allows for running in a docker-compose better
Terminates appropriately with Windows containers on Windows
Moved away from event system to a polling system
Can run multiple copies at once without collision (session ID)
Can configure the network name vs always "nat"
Extra logging

First of all, thanks a lot for taking the time an submitting the PR! As those are major changes, I will need to find some time to review them and then get back. Just some questions after quickly scrolling through your changes:

Any specific reason for switching to VS instead of VS Code?
Why are you adding the full deploy folder?


Writing your own step defination

If a user has a need of implementing his own cucumber step definition, does karate provides that ability?

No. You use either a JavaScript function or you can call Java code if you really need to. Kindly read the documentation: https://github.com/intuit/karate#calling-java


1.20.4?

I was wondering if there are plans for updating the mod to 1.20.4

Hello! Sorry for the late response. I've just added support for 1.20.4 on the latest release. I'm also planning to support 1.21 in the next release


pkg/query: initial rules deduplication

I really enjoy this CI, this is obiously a glorius and classic sorting typo :-)
pkg/query/rules.go:64:11: SA4000: identical expressions on the left and right side of the '<' operator (staticcheck)
			return labels[i].Name < labels[i].Name
			       ^

=D

still WIP?

@bwplotka i think I got the algo ok'ish now. I am not happy with the Cmp methods on *Rule, *Alert, and *RecordingRule but happy to refactor if needed.
Also, I will submit a small PR against the existing design proposal because we do not only have to compare label names but also label values.

github.com/thanos-io/thanos/pkg/store/storepb imports
	google/protobuf: package google/protobuf is not in GOROOT (/usr/local/go/src/google/protobuf)

I can reproduce this locally, something with go modules, investigating.

Ah I believe I need to do follow up with some sed replacements in genproto.sh.

I think we did this in some of our PRs...
On Tue, 19 May 2020 at 16:48, Sergiusz Urbaniak<EMAIL_ADDRESS>wrote:

Ah I believe I need to do follow up with some sed replacements in
genproto.sh.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/thanos-io/thanos/pull/2555#issuecomment-630909836,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABVA3OYG5VVFAQKWBRZGZ4TRSKS6XANCNFSM4MYUGW3A
.

I remember hittings this and fixing
On Tue, 19 May 2020 at 16:58, Bartłomiej Płotka<EMAIL_ADDRESS>wrote:

I think we did this in some of our PRs...
On Tue, 19 May 2020 at 16:48, Sergiusz Urbaniak<EMAIL_ADDRESS>wrote:

Ah I believe I need to do follow up with some sed replacements in
genproto.sh.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/thanos-io/thanos/pull/2555#issuecomment-630909836,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABVA3OYG5VVFAQKWBRZGZ4TRSKS6XANCNFSM4MYUGW3A
.

@bwplotka ptal, all changes are now in features/rules-proxy so this reduced to one commit :-)

I am on it to rebase and address issues

I had to force update things + addressed my comments. Will merge on green so we can get full feature branch rdy to go! :hugs:

Ok, I fixed what I can but I hit the blocker @s-urbaniak
Our e2e results in this:
querier-query: original group: name:"example" file:"/shared/rules/rules-1.yaml" rules:<alert:<name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000269877 last_evaluation:<seconds:1590072683 nanos:531189518 > > > interval:3 last_evaluation:<seconds:-62135596800 >
querier-query: original group: name:"example" file:"/shared/rules/rules-0.yaml" rules:<alert:<name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000420252 last_evaluation:<seconds:1590072683 nanos:13383800 > > > interval:3 last_evaluation:<seconds:-62135596800 > PartialResponseStrategy:ABORT
querier-query: original group: name:"example" file:"/shared/rules/rules-1.yaml" rules:<alert:<name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule2" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:9.1804e-05 last_evaluation:<seconds:1590072681 nanos:738283417 > > > interval:3 last_evaluation:<seconds:-62135596800 >
querier-query: original group: name:"example" file:"/shared/rules/rules-0.yaml" rules:<alert:<name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule2" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000143747 last_evaluation:<seconds:1590072683 nanos:206622348 > > > interval:3 last_evaluation:<seconds:-62135596800 > PartialResponseStrategy:ABORT
querier-query: original group: name:"example" file:"/shared/rules/rules-0.yaml" rules:<alert:<state:FIRING name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom1" > labels:<name:"replica" value:"0" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_AbortOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > state:FIRING active_at:<seconds:1590072660 nanos:262462271 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.00123779 last_evaluation:<seconds:1590072660 nanos:262707497 > > > interval:60 evaluation_duration_seconds:0.001266043 last_evaluation:<seconds:1590072660 nanos:262681581 > PartialResponseStrategy:ABORT
querier-query: original group: name:"example" file:"/shared/rules/rules-1.yaml" rules:<alert:<state:FIRING name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom1" > labels:<name:"replica" value:"0" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_WarnOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > state:FIRING active_at:<seconds:1590072679 nanos:824295603 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.000201912 last_evaluation:<seconds:1590072679 nanos:824447615 > > > interval:60 evaluation_duration_seconds:0.000204839 last_evaluation:<seconds:1590072679 nanos:824445887 > PartialResponseStrategy:ABORT
querier-query: original group: name:"example" file:"/shared/rules/rules-0.yaml" rules:<alert:<state:FIRING name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom2" > labels:<name:"replica" value:"1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_AbortOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > state:FIRING active_at:<seconds:1590072660 nanos:262462271 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.001126354 last_evaluation:<seconds:1590072660 nanos:262684792 > > > interval:60 evaluation_duration_seconds:0.001136497 last_evaluation:<seconds:1590072660 nanos:262677042 > PartialResponseStrategy:ABORT
querier-query: original group: name:"example" file:"/shared/rules/rules-1.yaml" rules:<alert:<state:FIRING name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom2" > labels:<name:"replica" value:"1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_WarnOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > state:FIRING active_at:<seconds:1590072679 nanos:824295603 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.000233206 last_evaluation:<seconds:1590072679 nanos:824417076 > > > interval:60 evaluation_duration_seconds:0.000237496 last_evaluation:<seconds:1590072679 nanos:824413374 > PartialResponseStrategy:ABORT
querier-query: deduped group name:"example" file:"/shared/rules/rules-1.yaml" rules:<alert:<name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000269877 last_evaluation:<seconds:1590072683 nanos:531189518 > > > rules:<alert:<name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000420252 last_evaluation:<seconds:1590072683 nanos:13383800 > > > rules:<alert:<name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule2" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:9.1804e-05 last_evaluation:<seconds:1590072681 nanos:738283417 > > > rules:<alert:<name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"replica" value:"rule2" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > health:"err" last_error:"no query API server reachable" evaluation_duration_seconds:0.000143747 last_evaluation:<seconds:1590072683 nanos:206622348 > > > rules:<alert:<state:FIRING name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom1" > labels:<name:"replica" value:"0" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_AbortOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > state:FIRING active_at:<seconds:1590072660 nanos:262462271 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.00123779 last_evaluation:<seconds:1590072660 nanos:262707497 > > > rules:<alert:<state:FIRING name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom1" > labels:<name:"replica" value:"0" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_WarnOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > state:FIRING active_at:<seconds:1590072679 nanos:824295603 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.000201912 last_evaluation:<seconds:1590072679 nanos:824447615 > > > rules:<alert:<state:FIRING name:"TestAlert_AbortOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom2" > labels:<name:"replica" value:"1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_AbortOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain, but I don't allow partial response in query." > > state:FIRING active_at:<seconds:1590072660 nanos:262462271 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.001126354 last_evaluation:<seconds:1590072660 nanos:262684792 > > > rules:<alert:<state:FIRING name:"TestAlert_WarnOnPartialResponse" query:"absent(some_metric)" labels:<labels:<name:"prometheus" value:"prom2" > labels:<name:"replica" value:"1" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > alerts:<labels:<labels:<name:"alertname" value:"TestAlert_WarnOnPartialResponse" > labels:<name:"severity" value:"page" > > annotations:<labels:<name:"summary" value:"I always complain and allow partial response in query." > > state:FIRING active_at:<seconds:1590072679 nanos:824295603 > value:"1e+00" > health:"ok" evaluation_duration_seconds:0.000233206 last_evaluation:<seconds:1590072679 nanos:824417076 > > > interval:3 last_evaluation:<seconds:-62135596800 >

Is this what we want? I don't think so :thinking:

I would expect two groups

@bwplotka i believe you are expecting two groups because of the different file values? According to spec we deduplicate by name only but let me re-verify if a tuple makes more sense here.

@bwplotka @povilasv @GiedriusS I am on the fence here. We stated in the design doc that we deduplicate on the name only on the group level.
From @bwplotka's concern in https://github.com/thanos-io/thanos/pull/2555#issuecomment-632134731 the expectation seems to be to also consider the file group field (and potentially interval too)?
Apart from the necessity to change the design doc I wonder if this actually the right thing to do as file references and scanning intervals for the same group might differ amongst replicas?
In the meantime i will rebase on top of master.

implementation side note: if we decide to truly deduplicate solely on the name field of groups, we should also set file and interval to zero values. I guess this is the biggest source of the confusion for the example given in https://github.com/thanos-io/thanos/pull/2555#issuecomment-632134731.

No no I am not saying we should do something opposite to the design, just might be my misunderstanding. Do as you think was agreed (: Perfect for a start we can always tweak later.

--- FAIL: TestReloader_ConfigApply (0.62s)
    reloader_test.go:148: reloader_test.go:148:

        	exp: 2

        	got: 3

I cannot reproduce this locally and it seems to be unrelated?! :thinking:

@bwplotka ptal, locally TestPrometheus_Rules_e2e and i kindly ask for advise in this test as I am flying a bit blind there :bow: :green_heart:

ok, TestPrometheus_Rules_e2e was fixed locally by using a more recent version of Prometheus, rekicked the CI to verify if TestReloader_ConfigApply is flaky, it works "on my machine".

I don't know what happened that it is green, but it is .... green :green_heart: :man_shrugging:

@bwplotka addressed comments, it's green :green_heart: ptal :pray:

Thanks, LGTM! (:


Stack 161 - Functional examples for CGNv6

Added followingParts of CGN
NAT
NAT64
NAT-46 Stateless
NPTV6
Fixed-NAT
Ds-Lite
Statefull Firewall
LSN

Still not sure if we need tp add "payload":
post_result = module.client.post(existing_url(module), payload)
I leave it to hthompson6 to decide.

Make sure we don't use hardcoded values in playbooks


Pinball Arcade [PCSE00065]

App summary

App name: Pinball Arcade
App serial: [PCSE00065]
App version: 1.34

Vita3K summary

Version: v0.1.8
Build number: 3311
Commit hash: https://github.com/vita3k/vita3k/commit/5bd8b3b
CPU backend: Dynarmic.
GPU backend: OpenGL

Test environment summary

Tested by: Zach-star1
OS: Windows 11
CPU: Intel i7-8565u
GPU: NVIDIA mx130
RAM: 16 GB

Issues
Very weird lighting/reflection bug on the ball (it could possibly affect other minor lighting effects). When ingame the first time you play a table the lighting effects on the ball are messed up; then, if you exit the table and try again the lighting effects on the ball are completely fixed (and are also fixed for any other table you try within the same session). When you close the emulator and reopen the app the bug represents in the exact same way: it only affects the first game when you open the emulator.
Screenshots

First game on the tales of the Arabian night, where the lighting on the ball is messed up

Second game on tales of the Arabian night (within the same session), where the lighting on the ball is fixed
Log
vita3k.log
Recommended labels

Playable
Graphic bug

Sorry, but I didn't know where to post the issue and by accident I opened a new Arcade Pinball page (and now I don't know how to delete it).
Now I posted this bug as a comment under the Pinball Arcade "official issue" that is the number 830 https://github.com/Vita3K/compatibility/issues/83 but I don't know if it is correct like this

duplicate of #830