Revert "i2c_mspm0g3xxx: scl stuck: disable target wakeup"

Reverts AudioStreamingPlatform/zephyr#7
Committed against the wrong branch ..

Let's reset and force-push when an admin is available.

TI uses their "clean_up" branch, so this one seems dead from their side. I'll clean it up just to be on the safe side :+1:


Dynamic filter template strings in AQL query.

We are switching from aqbjs to template strings for constructing our queries and we want to dynamically build a filter for a query, given a list of filter objects, which contain a key, a value and an operator. Is it possible to do this?
DB Data:
[
  {
    "id" : "1",
    "testdoc" : "testDocValue1"
  },
  {
    "id" : "2",
    "testdoc" : "testDocValue2"
  },
  {
    "id" : "3",
    "testdoc" : "testDocValue3"
  },
  {
    "id" : "4",
    "testdoc" : "testDocValue4"
  }
]

Lets say user provides input as two filters ( id > 2 and testdoc=testDocValue4) then this should return doc[3].
Below is my code snippet:
let filter = [ { field: "id", operator: ">", value: "2" }, { field: "testdoc", operator: "==", value: "testDocValue4" } ]; // Input filter Object
const collection = db.collection('test'); // collection object

Something like this:
let queryString = aql`FOR doc IN ${collection}
   LET docsList = ( FOR fil IN ${filter}
   filter doc[${fil.key}] ${fil.operand} ${fil.value} return doc )
   RETURN docsList`;

Is there any possibility to dynamically construct such a query using template strings?

used a template string (with out aql tag) with bind variables as alternative.

@Arun-KumarH maybe aql literals are of some use too: https://github.com/arangodb/arangodb/pull/5184


specs: reorganize into new format

Description
Reorganizes the specs into a folder based approach.
This does not modify fjord, it will need to be migrated
in a future PR. The main problem that this solves is an
encapsulation of features by network upgrade.
Each network upgrade should contain documents that
pertain to the specific features that network upgrade
introduced. This PR exists to unblock things like https://github.com/ethereum-optimism/specs/pull/173
where we begin to work on the next set of network upgrades.
This commit is not meant to be perfect and we will need to continue
to refine the layout of the specs into the future.
This is a replacement for https://github.com/ethereum-optimism/specs/pull/145.
Ideally we can merge this pretty quickly so that it doesn't
face risk of becoming stale.

lint is failing on multiple blank lines (should be a quick fix)


Simper functions for primitive types similar to lodash

For example when I have an array with numbers or strings I would like to white something like this
uniqStrict([1, 1, 2, 2])
uniqStrict(["a", "a", "b", "b"])

instead of
uniq(setoidNumber)([1, 1, 2, 2, 3, 3])
uniq(setoidString)(["a", "a", "b", "b"])

and also
uniqStrictBy([{foo: 1},{foo: 1}, {foo: 2}, {foo: 2})], x => x.foo)

Could fp-ts have functions like that or maybe it could be a separate package?

@user753 what's the signature of uniqStrict?

@gcanti
type Primitive = number | string | boolean
declare function uniqStrict<T extends Primitive>(array: T[]): T[]
declare function uniqStrictBy<T, K extends Primitive>(array: T[], f: Function1<T, K>): T[]

Looks like contramap:
type Item = { foo: unknown }
const setoidItem: Setoid<Item> = contramap(item => item.foo, setoidStrict)

@raveclassic Yes, it's possible to use contramap, but it's just too much code compare to lodash.
Personally I don't like lodash because it's js library so it has some weird typings but I cannot find a good alternative.

Well, fp-ts core is too generic for such helpers. I guess fp-ts-contrib could be a better place for them.


Getting incomplete responses in async mode

Hello I am using llama-index (v0.9.16) and using their async streaming apis (achat_stream) with their simple chat engine.
However it seems like when I use openai sdk (for anyscale and open models), I get full responses while if I use anthropic sdk (for claude) I get the error
<asyncio.locks.Event object at 0x13de7fe50 [unset]> is bound to a different event loop

I am confused as to if this is because of llama index or anthropic (given the same code works with openai call)
Any pointers?

Can you share your sample code and a traceback?

from llama_index.llms import Anthropic, OpenAI
from llama_index import ServiceContext
from llama_index.chat_engine import SimpleChatEngine

# llm = OpenAI(
#                model=model,
  #              temperature=temperature,
    #            max_tokens=max_tokens,
      #          api_key=api_key,
        #        api_base=base_url,
          #      reuse_client=False,
            #    timeout=timeout,
           # )
llm = Anthropic(
                model=model,
                temperature=temperature,
                api_key=api_key,
                max_tokens=max_tokens,
                base_url=base_url,
                timeout=timeout,
            )

service_context = ServiceContext.from_defaults(
        llm=llm,
    )
ce = SimpleChatEngine.from_defaults(service_context=service_context)
response = await ce.astream_chat(user_message, chat_history)

async for message in response.async_response_gen():
     # do something

llama-iindex == 0.9.16
anthropic == 0.7.8
openai == 1.3.8
If I use openai, the above code works fine but with anthropic it shows
WARNING::llama_index.chat_engine.types::Encountered exception writing response to history: <asyncio.locks.Event object at 0x13ad191d0 [unset]> is bound to a different event loop

Got it. This sounds like an issue with the llama_index library so I recommend you file an issue there.


There are 2 totally new htmls named Table.html (which holds the Table and takes up the entire page so it should have its own link) and pieChart.html (which has the pie chart). Tomorrow morning I will see if it is not too much hassle to add a 3rd chart just for extra. If not, then we can make the pie chart bigger so that it takes up more space.


Remove duplicated documents

I realize that we had some documents duplicated. This PR removes them.

Let's merge this one after https://github.com/ros-realtime/rtwg_documentation/pull/18 to avoid conflicts

@carlossvg, would you fix the conflicts?

@carlossvg, would you fix the conflicts?

Done


Inconsistent behavior of one-to-one and one-to-many relationships with overloaded operator !=

I stumbled across a surprising inconsistency between one-to-one and one-to-many relationships in conjunction with an overloaded operator !=. I would not expect the following code to work - at the very least, however, I would not expect to find a difference between the arity of relationships.
Exception message: The operands for operator 'NotEqual' do not match the parameters of method 'op_Inequality'.
Stack trace:    at System.Linq.Expressions.Expression.GetMethodBasedBinaryOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, Boolean liftToNull)
   at System.Linq.Expressions.Expression.NotEqual(Expression left, Expression right, Boolean liftToNull, MethodInfo method)
   at System.Linq.Expressions.Expression.MakeBinary(ExpressionType binaryType, Expression left, Expression right, Boolean liftToNull, MethodInfo method, LambdaExpression conversion)
   at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.NavigationRewritingExpressionVisitor.VisitBinary(BinaryExpression node)
   at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Remotion.Linq.Clauses.WhereClause.TransformExpressions(Func`2 transformation)
   at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.NavigationRewritingExpressionVisitor.NavigationRewritingQueryModelVisitor.VisitWhereClause(WhereClause whereClause, QueryModel queryModel, Int32 index)
   at Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 bodyClauses, QueryModel queryModel)
   at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)
   at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.NavigationRewritingExpressionVisitor.Rewrite(QueryModel queryModel, QueryModel parentQueryModel)
   at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.OptimizeQueryModel(QueryModel queryModel)
   at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.CreateQueryExecutor[TResult](QueryModel queryModel)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](Expression query, INodeTypeProvider nodeTypeProvider, IDatabase database, ILogger logger, Type contextType)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass19_0`1.<CompileQuery>b__0()
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
   at Remotion.Linq.QueryableBase`1.GetEnumerator()
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length)
   at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at ConsoleApp5.Program.Main(String[] args) in c:\users\axel\documents\visual studio 2017\Projects\ConsoleApp5\ConsoleApp5\Program.cs:line 17

Steps to reproduce

Create a new .NET Core 1.1 console app in VS 2017.02.
Add the following to the generated .csproj file:

<ItemGroup>
   <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.2" />
</ItemGroup>

Replace the generated Program.cs with the following code:

namespace ConsoleApp5
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel.DataAnnotations.Schema;
	using System.Linq;
	using Microsoft.EntityFrameworkCore;

	class Program
	{
		static void Main(string[] args)
		{
			var c = new TestContext();
			c.Database.EnsureCreated();

			c.A.Where(x => x.B != null).ToArray();
			c.A.Where(x => x.C != null).ToArray();
		}
	}

	class TestContext : DbContext
	{
		public DbSet<A> A { get; set; }
		public DbSet<B> B { get; set; }
		public DbSet<C> C { get; set; }

		protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
		{
			optionsBuilder.UseInMemoryDatabase("test");
		}
	}

	class Base
	{
		public int Id { get; set; }
	}

	class A : Base
	{
		public C C { get; set; }
		public B B { get; set; }
	}

	class B : Base
	{
		[ForeignKey(nameof(AKey))]
		public A A { get; set; }

		public int AKey { get; set; }
	}

	class C : Base
	{
		public List<A> A { get; set; }
	}
}

Run the application. There should be no output and no exceptions.
Now add the following code to the Base class:

		public static bool operator ==(Base left, Base right)
		{
			return Equals(left, right);
		}

		public static bool operator !=(Base left, Base right)
		{
			return !Equals(left, right);
		}

Run the application. The first query, involving only the one-to-one relationship, works fine. The second query involving the one-to-many relationship, however, results in the exception mentioned above.

Expected behavior
Either both queries should result in the exception, or both should work. However, I don't really see how custom equality operators should be supported by SQL translator, hence I would assume that both queries should throw.
Actual behavior
Only the one-to-many relationship throws. The one-to-one relationship probably ignores the custom operator !=.
Further technical details
EF Core version: 1.1.2
Database Provider: both SqlServer and InMemory
Operating system: Win10, x64
IDE: VS 2017.02

@axel-habermaier You need to be very careful doing any custom equality on entity types for two reasons:

EF query translation does not (and basically cannot) understand the semantics of your equality operators and so query translations will be the same regardless of whether operators are overloaded or not. But when expressions are evaluated on the client, then the operators will be used, which can result in differences in behavior.
Tracking of entities inside DbContext for identity resolution is forced to use reference equality wherever possible because EF can only track a single instance of a given entity with a given primary key value. However, in some cases, notably collection navigation properties, EF cannot force reference equality because the application code creates the collection type rather than EF doing so. This can then result in inconsistent behavior when doing fixup of collections.

Leaving this open for now in case @divega @anpete or @smitpatel want to comment more.

@ajcvickers: Thanks for your response. I understand that overloading equality is problematic and I don't really want to use it. However, I stumbled across this seemingly inconsistent behaviour of one-to-one and many-to-one relationships that happens to involve overloaded equality operators. So this issue is a suggestion to improve this inconsistency rather than allowing custom equality.

@axel-habermaier I'm not sure how we would improve it, but leaving it open for ideas from others.

This works in 3.1 without any exceptions.


Unable to access JAR File

After executing ./mvnw package on my EC2 instance, I had entered the following command:
java -jar target/*.jar
The output of the command is : Error: Unable to access jarfile target/*.jar

I don't know what would cause this but that seems like a general question, not related to Spring Petclinic. Please ask on StackOverflow.

Anyone find the root issue with this? I am having the same issue. It runs perfectly fine locally but not when being installed on a server with systemd.


Scrollable Topbar

I can't find a way to make the topbar scrollable when there are to many items.
Like in the example below:

Thanks in advance.

Pass the prop scrollEnabled to the tab bar. Check the examples.

Thanks


Update README with small changes

Some suggestions I thought of while reading over the README, but I wasn't sure if you'd want to keep all the changes, so feel free to edit this PR if you want to revert or edit any of them (or you can let me know which ones I should update).
P.S. - Another useful library. 🙌

Oops, noticed one more thing. I'm just going to close this PR and open a new one so it will just be a single commit.


Safelist does not include subdomains

DNS bypass filtering can't always recurse into subdomains. Need to add subdomains (e.g. *.vault.azure.net, *.database.windows.net, *.blob.core.windows.net, etc.) to this list to be comprehensive.

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

ID: d8336877-da93-ecd6-829a-0cc068caaf29
Version Independent ID: 1e70f094-f220-92c6-7e5b-cfaf071101d5
Content: Safelist the Azure portal URLs
Content Source: articles/azure-portal/azure-portal-safelist-urls.md
Service: azure-portal
GitHub Login: @kfollis
Microsoft Alias: kfollis

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

Thanks for your patience while we investigated this issue. Unfortunately, it's impossible to list all subdomains for the top-level domains listed in the article. Some of the addresses are actually resources or apps created by customers, so not subdomains but endpoints for customer resources.  We do provide links to IP address safelists in the article. These lists of IP ranges and service tags are updated weekly and may better suit your network security requirements.
#please-close


Simple Markdown Editor

Is your feature request related to a problem?
I just noticed that memo supports markdown, but it is not possible to easily edit the content in markdown.
Describe the solution you'd like
Would it be possible to integrate a light editor, so that the text can be bolded, highlighted or italicized?
Additional context
No response

No such plan for now.
We try to keep the editor simple and no rich text.


Installation on Amazon Linux2 version `GLIBC_2.28' not found

Hi,
I am trying to setup gpud in an EKS cluster with p4d instances. I tried installing it in one of the nodes which is running Amazon Linux 2. However, I ended up with the following error:
gpud: /lib64/libc.so.6: version 'GLIBC_2.28' not found (required by gpud)
I have the glibc 2.26
Upgrading the host os is not possible at the moment.
Is there a release version that can work with these constraints?

Hi @gyuho , thank you for your response
Here are the OS details:
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
SUPPORT_END="2025-06-30"

@chatter92 For now, we will provide the manual builds (for the upcoming v0.0.4 release), as github action does not support AL2 VM yet.
In the meantime, you can build your own: https://github.com/leptonai/gpud/blob/main/Makefile
Will keep you updated!

Thanks a lot @gyuho!

closing since this should be fixed.

Thank you so much @gyuho for the fix. It works!
sh-4.2$ gpud --version
gpud version v0.0.4

I downloaded the tar file directly from git and it worked!! :)
However, when I try to install following the instructions in README, I get the following:
sh-4.2$ curl -fsSL https://pkg.gpud.dev/install.sh | sh
curl: (22) The requested URL returned error: 404

It errors out here: https://github.com/leptonai/gpud/blob/main/install.sh#L119


Reporting errors with silent=true

I've set browser.silent = true; but while testing PayPal payment I still see errors being reported; shouldn't they be ignored?
Error: [$rootScope:infdig] http://errors.angularjs.org/1.3.9/$rootScope/infdig?p0=10&p1=%5B%5D
      at Error (<anonymous>)
      at https://www.paypalobjects.com/web/res/371/957e19d6ef85178c220d8001afcfa/js/framework.js:6:416
      at l.$digest (https://www.paypalobjects.com/web/res/371/957e19d6ef85178c220d8001afcfa/js/framework.js:124:366)
      at https://www.paypalobjects.com/web/res/371/957e19d6ef85178c220d8001afcfa/js/framework.js:126:280
      at e (https://www.paypalobjects.com/web/res/371/957e19d6ef85178c220d8001afcfa/js/framework.js:40:339)
      at https://www.paypalobjects.com/web/res/371/957e19d6ef85178c220d8001afcfa/js/framework.js:44:375
      at window._evaluate (/code/node_modules/zombie/lib/document.js:437:23)
      at /code/node_modules/zombie/lib/eventloop.js:65:33
      at Object._onImmediate (/code/node_modules/zombie/lib/eventloop.js:609:11)
      at processImmediate [as _immediateCallback] (timers.js:354:15)

Using Zombie snapshot version 3.0.14.

Actually the initial PayPal page is a really good page to check all kind of weird behaviors and probably fix some in Zombie. I get all kinds of errors:

The one above
An error occurred: RangeError: Maximum call stack size exceeded
Error: Timeout: did not get to load all resources on this page at [object Object].timeout (/code/node_modules/zombie/lib/eventloop.js:543:36)
TypeError: Cannot call method 'indexOf' of undefined
at s_gi (https://www.paypalobjects.com/js/site_catalyst/pp_jscode_080706.js:904:66)
at https://www.paypalobjects.com/js/site_catalyst/pp_jscode_080706.js:6:7
in https://www.paypal.com/checkoutnow/2?fallback=1&token=EC-8WX32565XY650643F
...

The silent flag suppresses console.log output, nothing to do with errors.
Errors propagate through the API and generally reported by not catching them.

Is there a way to ignore them for a certain time, website... ?

Catch the error.

I was trying
I was trying
browser.pressButton('input[name="paypal"]')
  .catch(Error, function(e) {});

but it seems to work most of the time only with:
try {
  browser
    .pressButton('input[name="paypal"]')
    .catch(Error, function(e) {});
} catch (err) {
}

However it seems that it's still pretty flaky and for example browser.assert.url fail because something is undefined. Seems that Zombie doesn't finish processed if one of those errors occur.

The timeout error you reported above happens asynchronously, so try/catch has no affect. But pressButton can also trigger DOM event handlers, and those errors happen synchronously.
Generally errors will stop processing, and so you need to catch the error and continue. That's by design.

I agree that by default it should do that, but in some cases you're going through externally hosted websites (like PayPal, to test for example payment flow). On those you don't want to report most errors.

I don't recommend running Zombie against PayPal. If you need to test a flow that involves visiting PayPal, you can mock the entry/exit points using libraries like nock or node-replay. You get faster and more dependable tests.

That will not guarantee that it works. PayPal has sandbox mode which is designed for testing. Other cases include that the API should perform some HTTP request on success for example, and to make sure those work, you have to use the external API.
Now if Zombie cannot do that, I'll have to go back to WebDriver tests which are fine, just a lot more heavy.

I'm closing this, since problem is with the application not catching errors.

so how do you catch those punks?


Rbenv install 2.3.1 fails

Rbenv install 2.3.1 fails even when I decreased ClientAliveInterval.
echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
packet_write_wait: Connection to [myIP]: Broken pipe

Hey, thanks for reporting! We can't really know how you are installing Ruby using rbenv over ssh, since you haven't shared the details of that, but the error you are reporting sounds like it's coming from ssh or a network, and definitely not rbenv. What makes you think this is an rbenv problem?


Improvement for kops readme

As kops and kubernetes update very frequently and not all SA or customer familar with kops under the hood.
We may add a reminder for  them to make sure "Is their kops cli version stay up to date ?" otherwise if they had install kops cli before, they may fail to install the latest kubernetes cluster .

更新了README，请看看是否足够清楚。
https://github.com/nwcdlabs/kops-cn
或者也欢迎你提交PR直接对README修改也可以。


Generic nifits class

@pahuber  and I created a stub for the nifits class. (see b2d48348d57a8c568da9ce278cc155e74c6595bc)
It is all still untested, but the idea is to loop through lists of extension names and keyword names to try to keep the system flexible. Hopefully we can keep most of the specificity of the extensions inside the extensions themselves.
Maybe reference this issue when you encounter features that cause problem to this logic. We will reconsider if they are substantial.
Testing should show us the work left to do.  @kammerje What do you think. Which would you say is the priority?

The NIFITS class can now read and write fits files. More convenience functions will be added.
Architecture for the backend needs further definition. Possibility to handle multiple NIFITS would be interesting, but maybe it is better to leave this to the fitting modules (see our discussions with OIMODELER team).

Backend now has relatively feature rich interface with a handy way to manipulate large-ish samples of points.
There is a way to change the numerical backend with any backend having numpy-like interface. However, this is yet untested. Testing this becomes an action.


Define and link all tools we are going to use and why

Define the softwares we are going to use and why. Thats important so in the future we can see why in the moment we use a tool.
Have to decide if were are going to have a repository to documentation or in every repo copy the tools information that is running in that repo.

Terraform
Terragrunt
Ansible
Lens
Dbeaver
vscode
github copilot

sonar
kubescape

tflint for manage terraform variables.
https://github.com/terraform-linters/tflint

Suse NeuVector pro protect the containers inside Kubernetes

Backstage.io for the IDP


Walmart Product Data Scraper

Description

Added Walmart Product Data Scraper Project

Resolves: [#551 ]
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[X] Have you adhered to the repository's defined coding convention rules?
[X] Have you updated the 'documentation.md' file with the method/function documentation?
[X] Have you sent a message along with the result or response?
[X] Have you used the try-catch technique?
[X] Has the method/class been added to the documentation (md file)?

Screenshots
Additional Notes/Comments

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

Hey @RoopakMallik | Any update?

Closing this PR because of no response from the contributor.


Adds poll option for database brokers

based on issue #139

Current coverage is 96.59%

Merging #140 into master will not affect coverage as of ddb8f81

@@            master    #140   diff @@
======================================
  Files           39      39
  Stmts         2702    2703     +1
  Branches         0       0
  Methods          0       0
======================================
+ Hit           2610    2611     +1
  Partial          0       0
  Missed          92      92

Review entire Coverage Diff as of ddb8f81

Powered by Codecov. Updated on successful CI builds.


[RHCLOUD-20440] Return 400 responses when the provided IDs are invalid

Essentially this ensures that all the endpoints which are expecting an ID, return a bad request response when that ID is empty or zero. I've also moved all the ID processing to the top of those handlers, since it doesn't make sense to get the DAOs, process the filters and then stop the execution because the ID is invalid.
I initially tried doing it as a middleware, but the code ended up being like the sample below, which in my opinion is not worth having on every handler.
idRaw := c.Get("id")
id, ok := idRaw.(int64)
if !ok {
    return errors.New("could not extract ID from the request")
}

/retest

Does this should cover also filtering ?  like /sources?filter[id][eq]=0 - I guess no - it is other topic.

Does this should cover also filtering ? like /sources?filter[id][eq]=0 - I guess no - it is other topic.

Actually this is a great catch — I forgot about it. However I agree with you that maybe we should do it separately. I've created a Jira ticket for it: https://issues.redhat.com/browse/RHCLOUD-20457

/retest

/retest

/retest

All right, so I've refactored this PR and made it as a middleware. It is true that it is way less code than the previous PR. Thanks for the suggestion, @lindgrenj6!
I'm requesting a re-review for this one :sweat_smile:
If you're missing that big test which called all the handlers: this is not required now, since by testing the middlewares directly — as opposed to having these checks as a service, which required us calling every handler — we are already testing the behaviour for any route that runs the middleware.

I have a question ... when the id validation is now solved in the middleware then we not need this in our handlers right?
	id, err := strconv.ParseInt(c.Param("id"), 10, 64)
	if err != nil {
		return util.NewErrBadRequest(err)
	}

Should we consider this as valid url ? 👼
/api/sources/v3.1/sources/+2

I have a question ... when the id validation is now solved in the middleware then we not need this in our handlers right?
	id, err := strconv.ParseInt(c.Param("id"), 10, 64)
	if err != nil {
		return util.NewErrBadRequest(err)
	}

We still do, because we need to somehow convert the string parameters into integers, since we don't save the parsed ID on the context. Essentially, we're converting the ID twice.
To be honest I don't know what's a better solution to this... On the first pass, when I was writing this as a middleware, I did something like this —plus a very similar one for the UUIDs—:
return func(c echo.Context) error {
	id, err := parseValidateId(c, "id")
	if err != nil {
		return util.NewErrBadRequest(err)
	}

	c.Set("id", id)
	return next(c)
	}
}

For this I changed all the parameter names from the routes to :id. But then this forced me to do a type check on every handler:
func SourceGet(c echo.Context) error {
	idRaw := c.Get("id")
	id, ok := idRaw.(int64)
	if !ok {
		return errors.New("could not extract ID from the request")
	}

	// ...
}

Which made me feel itchy, because I knew that essentially that typecheck is just "empty code". I know that the middleware had set an int64 on the context, but still I had to do the typecheck. So that evolved to:
func SourceGet(c echo.Context) error {
	id, _ := c.Get("id").(int64)

	// ...
}

However since I don't like ignoring anything it didn't quite feel good for me, so I used the previous "full type check but not necessary" version, which made the code uglier than needed. That plus not being certain about where to put the middleware, if it should go first before any other middleware or not, if I should reorder the middlewares, etc., made me go with the service version of this PR.

The service version is the one you reviewed first, which basically was:
func SourceGet(c echo.Context) error {
	id, err := service.ValidateId(c, paramName: "id")
	if err != nil {
		return util.NewBadRequestErr(err)
	}

	// ...
}

This made all the middlewares dance go away, but introduced the "bummer" of having to repeat this piece of code on every handler. Although we could keep the parameter names as they were, and since we already were checking for the IDs correctness on the handlers before, I thought "this might be it".

Jacob suggested using a middleware, so I went back to option 1, but now we face "the repetition again". As you stated, the following error check is redundant:
	id, err := strconv.ParseInt(c.Param("id"), 10, 64)
	if err != nil {
		return util.NewErrBadRequest(err)
	}

We could simply do id, _ := strconv.ParseInt(c.Param("id"), 10, 64), or go back to the option 1 and store the integer on the context and do something like:
func IdValidationExtraction(next echo.HandlerFunc) echo.HandlerFunc {
	return func(c echo.Context) error {
		for _, param := range c.ParamNames() {
			if strings.HasSuffix(param, "id") {
				id, err := extractValidateId(c, param)
				if err != nil {
					return util.NewErrBadRequest(err)
				}

				c.Set(param, id)
			}
		}

		return next(c)
	}
}

And then:
func SourceGet(c echo.Context) error {
	// The middleware has validated the ID, so it is safe to ignore the type check's "ok" return value.
	id, _ := c.Get("source_id").(int64)

	// ...
}

I still don't like ignoring anything, and we'd still have to copy&paste that on every handler... To be honest I don't know. What do you all think?

and another question ... when we moved this into middleware and we have now test for this in middleware, we dont need to test it in handlers ... I mean the bad request tests that cover situation when id = "xxx"
func TestSourceGetBadRequest(t *testing.T) {
	c, rec := request.CreateTestContext(
		http.MethodGet,
		"/api/sources/v3.1/sources/xxx",
		nil,
		map[string]interface{}{
			"tenantID": int64(1),
		},
	)

	c.SetParamNames("id")
	c.SetParamValues("xxx")

	badRequestSourceGet := ErrorHandlingContext(SourceGet)
	err := badRequestSourceGet(c)
	if err != nil {
		t.Error(err)
	}

	templates.BadRequestTest(t, rec)
}

That is true, yes. I should remove all these tests on this PR...

Should we consider this as valid url ? angel /api/sources/v3.1/sources/+2

Wow, I didn't really think about this. Although it makes sense when using an integer for the IDs. I've another regex check to be 100% sure that the format is correct, and that the number doesn't come with any signs.

We still do, because we need to somehow convert the string parameters into integers, since we don't save the parsed ID on the context. Essentially, we're converting the ID twice.

I forgot that we need to convert the string ... but thanks for this explanation/thoughts

That is true, yes. I should remove all these tests on this PR...

just thinking ... when we let the parsing from string into integer in our handlers, then we probably need to let the bad request tests too because they are testing these handlers and handlers contains parsing from string into integer ... hmm 🤔

@MikelAlejoBR thanks for addressing comments!


unable to add address

A user is unable to add address gets an error saying "User Does not have permission to view" error code 403.

fix with commit d94082334c37bff73cef9f0cea6f6de5439c836f


Improve UX for bots in (Group) PMs. | Ephimeral Bot Engagement

Currently, if you are talking to someone on Zulip, when you mention a bot, the bot replies and spawns a new conversation.
(recipients: Cordelia, Iago)
Cordelia: Hello Iago, what's the weather like?
Iago: Let's ask the weather bot.
Iago: @weatherbot Ancient Rome

(recipients: Cordelia, Iago, Weather Bot)
Weather Bot: It definitely wouldn't rain in Ancient Rome today.
Cordelia: Oh, that's exciting.
Weather Bot: Unknown location 'Oh, that's exciting.'.
Iago: She wasn't talking to you.
Weather Bot: Unknown location 'She wasn't talking to you.'.

(recipients: Cordelia, Iago)
Iago: Let's just talk in the original conversation.
Cordelia: Yeah, that was weird.

One possible fix for the whole problem is making these 4 changes:

If the sender is a bot, the server shouldn't add the sender to the recipient list.
The python-zulip-api shouldn't remove the sender's name when using 'send_reply'. https://github.com/zulip/python-zulip-api/issues/552
We should update the API docs for bot makers to explicitly take care of the bot's email for group PMs for their use-case if they aren't using send_reply.
We should make the bot API not reply back unless it was explicitly mentioned in group PMs. https://github.com/zulip/python-zulip-api/issues/551

Essentially, the bots should respond to the huddle they were mentioned in, and only when they are mentioned.
The final result after these should look like:
(recipients: Cordelia, Iago)
Cordelia: Hello Iago, what's the weather like?
Iago: Let's ask the weather bot.
Iago: @weatherbot Ancient Rome
Weather Bot: It definitely wouldn't rain in Ancient Rome today.
Cordelia: Oh, that's exciting.
Iago: Lemme get my time machine, BRB.

(recipients: Cordelia, Iago, Github Bot)
Cordelia: Made this chat to discuss some issues with Github.
Iago: Hi, C. What's up?
Cordelia: @githubbot count open issues
Github Bot: We have 313 open issues.
Iago: Oh my.

This is a great idea!

@aero31aero,
I am able to replicate the issue with helloworld bot locally.

I can see that the sender list in the group PM that has been generated includes the bot as the recipient by default.
Can I work on any of the fixes that you suggested?
Thank you.


Bump versions for next release

Just doing the version bumps after release
PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/rnaseq branch on the nf-core/test-datasets repository.
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[ ] Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

Usually I add the back to dev PR in the CHANGELOG


R2.10 rocm enhanced denorm

I tested via MLPerf resnet on MI200 fp16 against imagenet data.
Worked as expected. Merging.


NSH Login Now Exposes Password

Using stock configuration nsh:sim under ChromeOS (Debian), the login looks like:
login: admin
password: Administrator

That is an error.  The password should not be exposed.  Prior to recent breaking changes to the serial driver, the login correctly looked like:
login: admin
password:

The password was not echoed so that it did not remain in the terminal display for anyone to see.
I suppose that the correct solution with the changes to the serial driver would be to disable ECHO via termios before asking for the password, and re-enabling ECHO after the password has been entering.
If TERMIOS is not enabled, then you are just screwed.  The password will always be echoed on the console.

It seems to me that one good solution would be behave just like Linux:  Do not special-case the console but, instead, require that the user application always configure the TTY as needed for correct operation.  This is definitely more consistent with the way that Unix is supposed to handle TTYs.
This would solve another issue:  Occasional a device other than the serial console is used for a console.  For example, a different serial port that is not the one designated as the console.  If the application configured the TTY for its particular use, then this dependence on a magic, non-standard console device would be eliminated.

With https://github.com/apache/nuttx/pull/8843, the termios unrelated to hardware setting is always enabled, so the terminal aware application could always switch to/from raw mode as needed.

Please try: https://github.com/apache/nuttx-apps/pull/1668 and https://github.com/apache/nuttx/pull/8843 which should fix the issue reported here.


Correspond[ae]nce typo fix

Err(json serde error: unknown variant correspondence, expected one of clock, correspondance, unlimited

Thanks for the fix 👍


Update README.md

:white_check_mark: Build carball 0.6.36-ikkbsjxp completed (commit https://github.com/SaltieRL/carball/commit/124a583fed by @dtracers)

:white_check_mark: Build carball 0.6.36-ikkbsjxp completed (commit https://github.com/SaltieRL/carball/commit/124a583fed by @dtracers)

:white_check_mark: Build carball 0.6.36-mfcicpra completed (commit https://github.com/SaltieRL/carball/commit/67cb1b4c40 by @dtracers)

:white_check_mark: Build carball 0.6.36-mfcicpra completed (commit https://github.com/SaltieRL/carball/commit/67cb1b4c40 by @dtracers)


Fix for issue 300: --icon option does not work under Electron 0.37.4

https://github.com/electron-userland/electron-packager/issues/300
This is an easy fix. It writes the icon to the filename defined in CFBundleIconFile, so it will work in Electron 0.37.4 as well as earlier versions.
Since the test/config.json specifies "0.35.6", there's no way to test this fix directly. Is that okay, or should we figure out how to test both configurations? (If so, how?)

I suggest creating a new (separate) test fixture project just for test/mac.js that has the Electron version set to 0.37.4, then add a testcase for the new .icns behavior.

Okay, added fixture and test as described.

LGTM


Not working on Android ARMv7

First of all, thank you for your effort to keep this plugin alive!
I noticed a weird behavior on an ARMv7 Android 7.0 phone (Wiko Lenny4):
Setting/Storing a key with a value works fine and without an exception.  But calling "get" to read the corresponding value always results in a Key xy not found exception.
Other Android 7 devices are not affected. It seems like the issue is only related to ARMv7 devices.

Same problem!

Does anyone replicate this in an emulator?  If so, may I know the spec to replicate?

Does anyone replicate this in an emulator? If so, may I know the spec to replicate?
I use genymotion emulating a Samsung Galaxy S6 with Android 7.1.1 and PIN enabled

Does anyone replicate this in an emulator? If so, may I know the spec to replicate?
I use genymotion emulating a Samsung Galaxy S6 with Android 7.1.1 and PIN enabled

I used Android Studio, and Samsung Galaxy series are not on the list.  It only lists Pixel, Nexus series.

@shanlin2dltk Can you try installing genymotion?

@shanlin2dltk Can you try installing genymotion?

I have Samsung Galaxy S6 with android 7 on it, but it is arm64, not armv7.  I will see if the problem can be replicated there tomorrow.

The error also occurs on Pixel 2 API 25 simulated with Android Studio and PIN lock enabled. It's not just a problem with ARMv7.

I solved this issue here https://github.com/grausof/cordova-plugin-secure-storage/

I solved this issue here https://github.com/grausof/cordova-plugin-secure-storage/

tried using yours but build failed with this error:
error: cannot find symbol
private static final boolean MATCHES_ANDROID_API_28 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P;

Is there any update on this?

Same issue here with Android 6. Any updates?

Hi. Could it be the same issue as in https://github.com/mibrito707/cordova-plugin-secure-storage-echo/issues/7 ? One way of testing it would be to fork this repo, remove the check of isInsideSecure hardware and then building your app with the forked plugin and testing it.

Hi. Could it be the same issue as in #7 ? One way of testing it would be to fork this repo, remove the check of isInsideSecure hardware and then building your app with the forked plugin and testing it.

I'm not sure about that but I succeeded installing this plugin which seems to work very well

I just tried my app now on a Huawei with android 6 and it does not work. I do not get any errors when storing to secure storage, but it only retrieves null :(


Remove fixed guard conditions

Connects to ros2/rcl#33

Aside from the discussion inline, this lgtm.


Add none language strings to code blocks.

Part 2 from https://github.com/flutter/flutter/pull/146085
In preparation to add the lint missing_code_block_language_in_doc_comment, added none info strings to a bunch of fenced code blocks that have miscellaneous text or output text.
Related to issue: https://github.com/dart-lang/linter/issues/4904
Pre-launch Checklist

[X] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[X] I read the Tree Hygiene wiki page, which explains my responsibilities.
[X] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[X] I signed the CLA.
[X] I listed at least one issue that this PR fixes in the description above.
[X] I updated/added relevant documentation (doc comments with ///).
[X] I added new tests to check the change I am making, or this PR is test-exempt.
[X] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@goderbauer I think these code blocks should use none? But please correct me if I'm wrong anywhere.


UI tweaks, script tweak and bug fixes

Great work, Thought it'd be cool to add some UI changes, little bug fixes and script improvements.

@7Skiez thanks for the PR. The code looks good and I appreciate the fixes; however, it does appear that these UI tweaks have messed up some alignment on the homepage. Here's is quick screencast:
https://www.loom.com/share/6a2d81836ec74ba6ab35a3f77e1199b1
Your branch is the one in the first tab, compare that to the 2nd tab and it looks like there are some alignment issues. If you can get this fixed, I can take another look and then get this merged in.
Thanks again!

See the last comment in the thread. There are a few alignment issues that this PR has created:
https://www.loom.com/share/6a2d81836ec74ba6ab35a3f77e1199b1
Thanks!

@tnylea Thanks man, Pleasure to be working on the project, Sorry I forgot changing the promo image in the seeders, The whole point of this UI change was to add a floating boat/ship to go with the wave/voyager paradigm (I'm not sure if this could be a new theme or something you could configure through admin). I've added a few more demo ship images in the public theme directory, They're interchangeable through the admin panel.

I changed the width for dropdown containers for this not to happen when the text/content gets smaller :

However if you didn't like the look of it so far, I could just put in the changes for code (excluding UI).

@7Skiez Love those images!
thanks for this PR. I'll be taking a look at it today. Looks super cool! And thanks for the menu UI updates.

This piece of code will help fixing the sequence and auto incrementing problem on PostgreSQL the-control-group/voyager#3563 after seeding the pgsql database, This will help fixing the unique violation error and allows normal use.

@7Skiez Thanks for these fixes. Loving it!
Before I merge this in, I want to guarantee that it's available to run on PHP7 and PHP8, currently, this PR has a composer.lock file that requires spatie/macroable locked at 2.0 which requires PHP 8.
Here's the error screen that I get when I try and install a fresh copy from your PR branch:

@bobbyiliev and I are working to get some more tests into the system so that way stuff like this can be checked when a PR is opened. I might suggest trying to remove spatie/ray or macroable from your composer.json.
Hope you understand, I want to make sure that as many people who pull the latest version of Wave are able to install it, even if they are on PHP7.
Thanks! Keep me posted with the progress on this. Appreciate all the help.

@tnylea Hi, I got the same error running php 8 on my machine, I'll revert back the lock file and make a new commit.

Try running composer install --ignore-platform-reqs  instead, It helps with this issue.

@tnylea Please checkout thedevdojo/themes#3 I tried adding a radio button to be able to switch between layouts, and found this bug, Now I need this merged in before I send one last commit.

Added hero layout radio button switch inside admin, theme options.


Infinite chain of submodules

See https://github.com/alanz/HaRe/tree/dfab0004320c28e1aa0331a507a9428952f2c938/submodules
So it has hie again, so install.hs never terminates :)

Looks like my tree was broken


test flakes due to health check grpc: timed out when dialing

In our e2e testing, we have seen occasional flakes caused by network connectivity problems. The end result is that operator failed to create etcd client with error msg grpc time out when dialing and cannot operate etcd cluster as expected.

I checked recent e2e flakes and they are caused by this issue. For example, e2e relies on operator to update status.members and some member's health check failed by grpc: timed out when dialing.

i am not convinced that gce networking is THAT unreliable. we might want to spend sometime to dig into this.

How to dig? It failed to create an etcd client. In operator, there isn't much to dig.

Also this doesn't rule out other problems like kubelet starting container slow.

another possible cause: scheduling is slow

It also depends. I have stress one test that always failed at some point. Then it always succeed after that.

Some more evidence from a flake:
time="2017-07-11T19:23:51Z" level=info msg="added member (test-etcd-g9g1l-0002)"
...
time="2017-07-11T19:23:56Z" level=warning msg="health check of etcd member

2017-07-11 19:23:57.143387 I | etcdmain: etcd Version: 3.1.8
...
E  2017-07-11 19:23:57.312249 N | embed: serving insecure client requests on [::]:2379

last check
util.go:102: 2017-07-11 19:24:04.114000071 +0000 UTC waiting size (3), healthy etcd members: names ([test-etcd-g9g1l-0000 test-etcd-g9g1l-0001])

time="2017-07-11T19:24:04Z" level=info msg="cluster is deleted by the user" cluster-name=test-etcd-g9g1l pkg=cluster

It looks like it took operator:

51 - 14 = 37s to create 3 members, which is normal
there is some delay + reconciile interval (8s) = 64-51=13s

Honestly, this is problematic.. It waits only 37 + 13 = 50s. We used divide method = (60 * time.Second) / (10 * time.Second). This is rounded down unexpectedly.

The total test time is also less than 60s:
FAIL: TestDisasterRecoveryAll (55.51s)

It is not rounding down.. The root cause is that in Retry() code, we implement "retries" as exact tries, while we use it as "retries", i.e. additional tries.

ref:
https://github.com/coreos/etcd-operator/pull/1276
https://github.com/coreos/etcd-operator/pull/1275

fixed now

Seeing this also in AWS on 0.4.2, will this be in 0.4.3 soon?  Can't seem to get a cluster running anymore.

@blakebarnett
Can you create an new issue? Paste operator logs, etcd logs, etc.

sure: https://github.com/coreos/etcd-operator/issues/1326


quickjs link  failed in iOS.

e: Compilation failed: Linking globals named 'lre_id_start_table_ascii': symbol multiply defined!

Source files:
Compiler version info: Konan: 1.6.21 / Kotlin: 1.6.21
Output kind: FRAMEWORK

e: java.lang.Error: Linking globals named 'lre_id_start_table_ascii': symbol multiply defined!

Task :zipline:linkPodDebugFrameworkIosArm64 FAILED
:zipline:linkPodDebugFrameworkIosArm64 (Thread[Execution worker for ':' Thread 7,5,main]) completed. Took 8.931 secs.

This is when you're building Zipline yourself locally? If so, what SHA?
Or is this when you're consuming our Zipline release? And if so, what version?

the master branch ,and when I use cocoapods to publish framework, it link bitcode,so it is falied.

cocoapods {
version = "1.0"
summary = "demo"
homepage = "it is a demo of kotlin native"
name = "zipline"
framework {
baseName = "ZP"
isStatic = true
optimized = true
debuggable = false
}
}

java.lang.Error: Linking globals named 'lre_id_start_table_ascii': symbol multiply defined!
at org.jetbrains.kotlin.backend.konan.llvm.DefaultLlvmDiagnosticHandler.handle(diagnosticReport.kt:24)

This is when you're building Zipline yourself locally? If so, what SHA?
the master  de4b2dada384456dd4d84b69ae2cd3d4fad91621

@JakeWharton  When I compile iOS bitcode, the symbol duplication problem occurs

We haven’t observed this. If it continues to be an issue, please report to the Kotlin/Native team at JetBrains!


Improved throttle

These changes have led to improve throttle prediction over the last few months. I feel they would benefit the community.
This changes the default model to use categorical throttle. It will be backwards compatible with older models, but will create new models in the new format going forward.
I found I needed to add some small dropout to get improved predictions on both angle and throttle. It does converge in slightly more epochs as a result. ( about 2-4 on average ).
I started with the master branch when making these changes. Let me know if you'd prefer to start with the dev branch so fewer problems merging.

I guess this change is not wanted. No feedback, so I will remove pull request.

As if it hasn't been mentioned a half dozen times in the help channel on Slack or something. :/


WarningsAsErrors in .clang-tidy can override -Wno-error in compile_flags.txt

If .clang-tidy has WarningsAsErrors: '*' and clangd is configured to use clang-tidy, then all warnings will be treated as errors, regardless of what is in compile_flags.txt.
compile_flags.txt
-Wno-error
-Wfor-loop-analysis

diagnostic_test.cc
int main() { for (int j; j;){} }

.clang-tidy
---
WarningsAsErrors: '*'

I have pased the entire clangd log below, but the key part is:
V[13:32:05.016] >>> {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"-Wfor-loop-analysis","message":"Variable 'j' used in loop condition not modified in loop body","range":{"end":{"character":26,"line":0},"start":{"character":25,"line":0}},"severity":1,"source":"clang"}],"uri":"file:///home/bstaletic/work/test/clang_bug/diagnostic_test.cc","version":1}}

Here, you can see severity set to 1, even without -Werror=for-loop-analysis.
Logs
I[13:32:04.999] clangd version 17.0.1 (https://github.com/ycm-core/llvm f0e018b8aadf1be25e3af0daa7a87d505de67957)
I[13:32:04.999] Features: linux
I[13:32:04.999] PID: 24895
I[13:32:04.999] Working directory: /home/bstaletic/work/test/clang_bug
I[13:32:04.999] argv[0]: /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clangd/output/bin/clangd
I[13:32:04.999] argv[1]: -header-insertion-decorators=0
I[13:32:04.999] argv[2]: -resource-dir=/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1
I[13:32:04.999] argv[3]: -limit-results=500
I[13:32:04.999] argv[4]: -log=verbose
V[13:32:04.999] User config file is /home/bstaletic/.config/clangd/config.yaml
I[13:32:04.999] Starting LSP over stdin/stdout
V[13:32:04.999] <<< {"id":1,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"documentationFormat":["plaintext","markdown"],"resolveSupport":{"properties":["documentation","detail"]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"documentSymbol":{"hierarchicalDocumentSymbolSupport":false,"labelSupport":false,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"hover":{"contentFormat":["plaintext","markdown"]},"inlay_hint":{},"semanticTokens":{"augmentSyntaxTokens":true,"formats":["relative"],"requests":{"full":{"delta":false},"range":true},"tokenModifiers":[],"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","member","macro","keyword","modifier","comment","string","number","regexp","operator"]},"signatureHelp":{"signatureInformation":{"documentationFormat":["plaintext","markdown"],"parameterInformation":{"labelOffsetSupport":true}}},"synchronization":{"didSave":true}},"workspace":{"applyEdit":true,"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"workspaceEdit":{"documentChanges":true},"workspaceFolders":true}},"initializationOptions":{},"processId":24880,"rootPath":"/home/bstaletic/work/test/clang_bug","rootUri":"file:///home/bstaletic/work/test/clang_bug","workspaceFolders":[{"name":"clang_bug","uri":"file:///home/bstaletic/work/test/clang_bug"}]}}

I[13:32:04.999] <-- initialize(1)
I[13:32:05.000] --> reply:initialize(1) 0 ms
V[13:32:05.000] >>> {"id":1,"jsonrpc":"2.0","result":{"capabilities":{"astProvider":true,"callHierarchyProvider":true,"clangdInlayHintsProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor","info"]},"compilationDatabase":{"automaticReload":true},"completionProvider":{"resolveProvider":false,"triggerCharacters":[".","<",">",":","\"","/","*"]},"declarationProvider":true,"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{"resolveProvider":false},"documentOnTypeFormattingProvider":{"firstTriggerCharacter":"\n","moreTriggerCharacter":[]},"documentRangeFormattingProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["clangd.applyFix","clangd.applyTweak"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":true,"inactiveRegionsProvider":true,"inlayHintProvider":true,"memoryUsageProvider":true,"referencesProvider":true,"renameProvider":true,"selectionRangeProvider":true,"semanticTokensProvider":{"full":{"delta":true},"legend":{"tokenModifiers":["declaration","definition","deprecated","deduced","readonly","static","abstract","virtual","dependentName","defaultLibrary","usedAsMutableReference","usedAsMutablePointer","constructorOrDestructor","userDefined","functionScope","classScope","fileScope","globalScope"],"tokenTypes":["variable","variable","parameter","function","method","function","property","variable","class","interface","enum","enumMember","type","type","unknown","namespace","typeParameter","concept","type","macro","modifier","operator","bracket","label","comment"]},"range":false},"signatureHelpProvider":{"triggerCharacters":["(",")","{","}","<",">",","]},"standardTypeHierarchyProvider":true,"textDocumentSync":{"change":2,"openClose":true,"save":true},"typeDefinitionProvider":true,"typeHierarchyProvider":true,"workspaceSymbolProvider":true},"serverInfo":{"name":"clangd","version":"clangd version 17.0.1 (https://github.com/ycm-core/llvm f0e018b8aadf1be25e3af0daa7a87d505de67957) linux x86_64-unknown-linux-gnu"}}}

V[13:32:05.001] <<< {"jsonrpc":"2.0","method":"initialized","params":{}}

I[13:32:05.001] <-- initialized
V[13:32:05.001] <<< {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{}}}

I[13:32:05.001] <-- workspace/didChangeConfiguration
V[13:32:05.002] <<< {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"cpp","text":"int main() { for (int j; j;){} }\n","uri":"file:///home/bstaletic/work/test/clang_bug/diagnostic_test.cc","version":1}}}

I[13:32:05.002] <-- textDocument/didOpen
I[13:32:05.002] Loaded compilation database from /home/bstaletic/work/test/clang_bug/compile_flags.txt
V[13:32:05.002] Broadcasting compilation database from /home/bstaletic/work/test/clang_bug
I[13:32:05.002] ASTWorker building file /home/bstaletic/work/test/clang_bug/diagnostic_test.cc version 1 with command
[/home/bstaletic/work/test/clang_bug]
/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clangd/output/bin/clang-tool -Wno-error -Wfor-loop-analysis -resource-dir=/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1 -- /home/bstaletic/work/test/clang_bug/diagnostic_test.cc
V[13:32:05.003] Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name diagnostic_test.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/home/bstaletic/work/test/clang_bug -resource-dir /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/backward -internal-isystem /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-error -Wfor-loop-analysis -fdeprecated-macro -fdebug-compilation-dir=/home/bstaletic/work/test/clang_bug -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -no-round-trip-args -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c++ /home/bstaletic/work/test/clang_bug/diagnostic_test.cc
V[13:32:05.003] Building first preamble for /home/bstaletic/work/test/clang_bug/diagnostic_test.cc version 1
I[13:32:05.009] Built preamble of size 232136 for file /home/bstaletic/work/test/clang_bug/diagnostic_test.cc version 1 in 0.01 seconds
V[13:32:05.009] indexed preamble AST for /home/bstaletic/work/test/clang_bug/diagnostic_test.cc version 1:
  symbol slab: 0 symbols, 120 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
I[13:32:05.011] Indexing c++17 standard library in the context of /home/bstaletic/work/test/clang_bug/diagnostic_test.cc
V[13:32:05.016] indexed file AST for /home/bstaletic/work/test/clang_bug/diagnostic_test.cc version 1:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 1 symbols, 1 refs, 4248 bytes
  relations slab: 0 relations, 24 bytes
V[13:32:05.016] Build dynamic index for main-file symbols with estimated memory usage of 11520 bytes
I[13:32:05.016] --> textDocument/publishDiagnostics
V[13:32:05.016] >>> {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"-Wfor-loop-analysis","message":"Variable 'j' used in loop condition not modified in loop body","range":{"end":{"character":26,"line":0},"start":{"character":25,"line":0}},"severity":1,"source":"clang"}],"uri":"file:///home/bstaletic/work/test/clang_bug/diagnostic_test.cc","version":1}}

V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:102:49:too many arguments provided to function-like macro invocation
V[13:32:06.737] Ignored diagnostic. /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1/include/stdatomic.h:89:9:macro 'atomic_is_lock_free' defined here
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:102:5:redefinition of 'atomic_is_lock_free' as different kind of symbol
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/atomic:1294:5:previous definition is here
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:105:7:expected expression
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:109:6:expected ';' at end of declaration
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:113:48:expected ')'
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:113:5:to match this '('
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:113:5:expected expression
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:113:52:expected ';' at end of declaration
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:114:5:expected unqualified-id
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:137:5:expected parameter declarator
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:137:5:expected ')'
V[13:32:06.737] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:137:5:to match this '('
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:150:41:too many arguments provided to function-like macro invocation
V[13:32:06.738] Ignored diagnostic. /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1/include/stdatomic.h:140:9:macro 'atomic_load' defined here
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:150:5:redefinition of 'atomic_load' as different kind of symbol
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/atomic:1397:5:previous definition is here
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:151:7:expected expression
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:151:69:expected ';' at end of declaration
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:174:5:expected parameter declarator
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:174:5:expected ')'
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:174:5:to match this '('
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:189:47:too many arguments provided to function-like macro invocation
V[13:32:06.738] Ignored diagnostic. /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/17.0.1/include/stdatomic.h:137:9:macro 'atomic_store' defined here
V[13:32:06.738] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:189:5:variable has incomplete type 'void'
V[13:32:06.749] Ignored diagnostic. /usr/lib/gcc/x86_64-pc-linux-gnu/13/include/g++-v13/bits/shared_ptr_atomic.h:190:34:use of undeclared identifier '__p'
V[13:32:06.749] Ignored diagnostic. too many errors emitted, stopping now
I[13:32:07.429] Indexed c++17 standard library (incomplete due to errors): 13647 symbols, 1916 filtered
V[13:32:07.474] Build dynamic index for header symbols with estimated memory usage of 8227308 bytes

System information
Output of clangd --version:
clangd version 17.0.1 (https://github.com/ycm-core/llvm f0e018b8aadf1be25e3af0daa7a87d505de67957)
Features: linux
Platform: x86_64-unknown-linux-gnu

Editor/LSP plugin: YCM/ycmd
Operating system: Gentoo linux

This diagnostic is issued both by the compiler frontend, and by clang-tidy.
If I run the compiler on the command line, I get the diagnostic from the frontend, with severity warning as per the -Wno-error:
$ clang++ -c -Wno-error -Wfor-loop-analysis diagnostic_test.cc
diagnostic_test.cc:1:26: warning: variable 'j' used in loop condition not modified in loop body [-Wfor-loop-analysis]
    1 | int main() { for (int j; j;){} }
      |                          ^
1 warning generated.

If I run clang-tidy on the command line, I get the diagnostic from clang-tidy, with severity error as per the WarningsAsErrors: '*':
$ clang-tidy diagnostic_test.cc
3 warnings generated.
diagnostic_test.cpp:1:26: error: Branch condition evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch,-warnings-as-errors]
    1 | int main() { for (int j; j;){} }
      |                          ^
diagnostic_test.cpp:1:19: note: 'j' declared without an initial value
    1 | int main() { for (int j; j;){} }
      |                   ^~~~~
diagnostic_test.cpp:1:26: note: Branch condition evaluates to a garbage value
    1 | int main() { for (int j; j;){} }
      |                          ^
diagnostic_test.cpp:1:26: error: variable 'j' used in loop condition not modified in loop body [clang-diagnostic-for-loop-analysis,-warnings-as-errors]
    1 | int main() { for (int j; j;){} }
      |                          ^
diagnostic_test.cpp:1:26: error: variable 'j' is uninitialized when used here [clang-diagnostic-uninitialized,-warnings-as-errors]
    1 | int main() { for (int j; j;){} }
      |                          ^
diagnostic_test.cpp:1:24: note: initialize the variable 'j' to silence this warning
    1 | int main() { for (int j; j;){} }
      |                        ^
      |                         = 0
3 warnings treated as errors

clangd generates diagnostics both from the frontend and from clang-tidy. I guess in this case they get merged, and the higher severity prevails?
I think this is basically working as intended:

If you'd like clangd to provide only the compiler frontend diagnostics and not clang-tidy diagnostics, you can run clangd with --clang-tidy=false.
If you want clangd to provide clang-tidy diagnostics but don't want this one to be an error, you can use a more narrowly tailored WarningsAsErrors setting.

My specific use case was writing a test for YCM, where I needed -Wfor-loop-analysis to be a warning.
The current behaviour threw me for a loop, because the diagnostics code was -Wfor-loop-analysis, which to me indicates the frontent as the source (starting with -W).
Had the code been clang-diagnostic-for-loop-analysis I would have suspected clang-tidy config immediately.

If you'd like clangd to provide only the compiler frontend diagnostics and not clang-tidy diagnostics, you can run clangd with --clang-tidy=false.

That's what I ended up doing in said test, so my use case is addressed. If this is working as intended, that's fine by me.
One more thing to note is that, with the same C++ and clang-tidy file as above and the following compile_flags.txt:
-Wno-error
-Wno-for-loop-analysis

clangd will not report any diagnostics. If WarningsAsErrors is applied from the clang-tidy invocation, why isn't the for-loop-analysis reported in both cases?

One more thing to note is that, with the same C++ and clang-tidy file as above and the following compile_flags.txt:
-Wno-error
-Wno-for-loop-analysis

clangd will not report any diagnostics. If WarningsAsErrors is applied from the clang-tidy invocation, why isn't the for-loop-analysis reported in both cases?

Good question. I looked into this a bit, and it turns out my mental model of how things work under the hood was a bit inaccurate.

Rather than thinking of them as two diagnostics, it's more accurate to think of them as one diagnostic, which clang-tidy presents under a modified name (clang-diagnostic-for-loop-analysis rather than -Wfor-loop-analysis).
When clangd processes the file, only one instance of the diagnostic is generated (so there is nothing to "merge").

If clangd's clang-tidy support is enabled, clangd checks whether this is a diagnostic that clang-tidy recognizes.
That checks returns true for this diagnostic.
If the check returns true, clangd does some clang-tidy related processing, including applying any clang-tidy WarningAsErrors setting
*But when presenting the diagnostic, clangd uses the original name (e.g. -Wfor-loop-analysis)

So that explains the various things we are seeing:

Why WarningsAsErrors takes precedence over -Wno-error
Why the diagnostic is always presented under its original name (-Wfor-loop-analysis)
Why -Wno-for-loop-analysis results in no diagnostic (the flag results in the diagnostic not being generated in the first place)

To make things less confusing, perhaps when clang-tidy support is enabled, these diagnostics should be presented under their clang-tidy name (e.g. clang-diagnostic-for-loop-analysis)?

Ok, that makes sense. Thanks for the explanation. I was curious and had to try the opposite case:

Only -Werror in compile_flags.txt
Only Checks:          'clang-diagnostic-for-loop-analysis' in .clang-tidy in an attempt to enable clang-diagnostic-for-loop-analysis
Same source file as before.

The diagnostic was not produced.
If my understand is correct, this is also expected. We are still talking about the front-end generated warning, so users need to enable those through -Wthing, but then severity modification, thought WarningsAsErrors is possible through .clang-tidy.

To make things less confusing, perhaps when clang-tidy support is enabled, these diagnostics should be presented under their clang-tidy name (e.g. clang-diagnostic-for-loop-analysis)?

That would have definitely avoided my confusion, but if users still need to specify -Wfor-loop-analisys, the proposed change might be misleading in a different way.

I was curious and had to try the opposite case:
* Only `-Werror` in `compile_flags.txt`

* Only `Checks:          'clang-diagnostic-for-loop-analysis'` in `.clang-tidy` in an attempt to enable `clang-diagnostic-for-loop-analysis`

* Same source file as before.

The diagnostic was not produced. If my understand is correct, this is also expected. We are still talking about the front-end generated warning, so users need to enable those through -Wthing, but then severity modification, thought WarningsAsErrors is possible through .clang-tidy.

Yep, that matches my understanding.

To make things less confusing, perhaps when clang-tidy support is enabled, these diagnostics should be presented under their clang-tidy name (e.g. clang-diagnostic-for-loop-analysis)?

That would have definitely avoided my confusion, but if users still need to specify -Wfor-loop-analisys, the proposed change might be misleading in a different way.

Good point. Maybe this is just working as intended then.


chore: update dev setup

This doesn't address the 132 Ruff errors found, though? 😄
Also, fix = true is somewhat iffy as a default, what's the reasoning there?


[AppConfiguration] add support for filtering by tags

This PR adds support to filter configuration settings by Tags to the GetConfigurationSettings operation. It also adds client support for a new service version V2023_11_01 and regenerates the client using the 2023-11-01 API version of the spec.
Closes #43381.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Data.AppConfiguration

FWIW, it is better to wait for the service API version 2023-11-01 to be available in all regions and then merge this PR.

FWIW, it is better to wait for the service API version 2023-11-01 to be available in all regions and then merge this PR. Daily live test pipelines may fail because of unavailable of the 2023-11-01 service API version, depending on the resource setup per language.

@mssfang: No, it is not.   It's better to merge the PR so that we know there is no drift between the branch and code, since we do not plan on any other AppConfig releases before this feature is ready and do not have a timetable.

FWIW, it is better to wait for the service API version 2023-11-01 to be available in all regions and then merge this PR. Daily live test pipelines may fail because of unavailable of the 2023-11-01 service API version, depending on the resource setup per language.

@mssfang: No, it is not. It's better to merge the PR so that we know there is no drift between the branch and code, since we do not plan on any other AppConfig releases before this feature is ready and do not have a timetable. Tests have been intentionally ignored to avoid issues with nightly runs. If, for some reason we need to run tests in the pipeline, we can update the YAML to point the test configuration at a specific region.

To add to this, I disabled all the newly added live tests for now, and I also excluded the new service version from the test suite. Here is the follow up issue to enable those once the 2023-11-01 version of the service is live: https://github.com/Azure/azure-sdk-for-net/issues/44556.

@sbnewsthailand:  Your account has been reported for spam.   If you do not stop, we'll be forced to block you from this repository until GitHub takes action on your account.


Upgrades dependencies to fix vulnerabilities

Fixes issue #211
Changes: Upgraded dependencies versions to fix vulnerabilities.

@AshanFernando could you take a look at this?


How to add custom MaskingOperators from appsetings.json?

Hello,
I made a custom masking operator that is working via code configuration, but for some reason it can not be seen from the appsettings.json.
This is the custom masking operator.
namespace SerilogPOC.API.LoggingMasks
{
    public class CustomSecretMaskingOperator : RegexMaskingOperator
    {
        public CustomSecretMaskingOperator()
            : base("[a-z]*#[a-z]*")
        {
        }

        protected override string PreprocessMask(string mask, Match match)
        {
            var tokens = match.Value.Split("#");

            return tokens[0] + "#" + mask;
        }
    }
}

This is how I am using it in code and it works as expected.
.UseSerilog((context, services, cfg) => cfg
            .ReadFrom.Configuration(configuration)
            .Enrich.WithSensitiveDataMasking(operations =>
            {
                operations.MaskingOperators.Add(new CustomSecretMaskingOperator());
                operations.MaskValue = "**SECRET**";
            }));

But, when it comes to use it from the appsetings, things just don't work and I don't know what I am doing wrong.
.UseSerilog((context, services, cfg) => cfg
            .ReadFrom.Configuration(configuration));

{
  "Serilog": {
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.File",
      "Serilog.Enrichers.Environment",
      "Serilog.Enrichers.Sensitive",
      "API"
    ],
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "path": "log.txt",
          "outputTemplate": "[{MachineName}] {Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Message:lj}\n",
          "rollingInterval": "Day",
          "rollOnFileSizeLimit": true,
          "fileSizeLimitBytes": 20480,
          "retainedFileCountLimit": 10
        }
      }
    ],
    "Enrich": [
      { "Name": "WithMachineName" },
      {
        "Name": "WithSensitiveDataMasking",
        "Args": {
          "options": {
            "MaskValue": "**SECRET**",
            "MaskingOperators": [ "CustomSecretMaskingOperator" ]
          }
        }
      }
    ]
  }
}

The assembly name where my custom masking operator is defined is API and I am including it in Using.
Am I doing things wrong in MaskingOperators or in any other part, or it is simply not possible to achieve this behavior?
Thank you!

Currently this is not supported because the Serilog configuration library doesn’t know how to deal with an array of instances. Or, at least not in this form.
I’ve started some investigation as this topic has come up three times by three different people in the last two weeks 😅

Oh, alright! Many thanks. Have a great day! 😄

Release 1.7.1 now supports this. Have a look at the README on how to configure.


Add .twig file extension to templates

If we add .twig extension to templates, the IDEs (like PHPStorm) provides syntax highlighting, autocompletion, suggestions and more.

:+1: ; it eases IDE to detect the language.

Last commit reverted.

Thank you @jonseg.


Attributes/Color240: Add color240ToRGB function

Adds color240ToRGB function useful for serialization of colors from Brick

If the only constructor that this function supports is Color240 it could just take the Word8 directly and safely eliminate an error case.

@spaceships thanks for the patch and for addressing @glguy's feedback! Can you also adjust color240CodeToRGB so that it returns Maybe (Int, Int, Int) instead of calling error in the failure case? (I realize the existing rgbColor function does the same, but this is an opportunity to get away from error.)

Thank you!


Assigning work locations

For work on #12

@sgreenbury ok to merge this into main now that we've merged #35 into it?

Sounds good to me since the changes we reviewed in #35 are the ones here and the checks pass now with f92d65b


data file CDN url changed

Coverage remained the same at 97.384% when pulling dc68097cec12d2e19023acfc4af7a205734d45ef on sohail/data-file-cdn-url into 312ebba6cfefe8b0da922a9985a02e6631599c11 on master.

Coverage remained the same at 97.384% when pulling dc68097cec12d2e19023acfc4af7a205734d45ef on sohail/data-file-cdn-url into 312ebba6cfefe8b0da922a9985a02e6631599c11 on master.

Coverage remained the same at 97.384% when pulling dc68097cec12d2e19023acfc4af7a205734d45ef on sohail/data-file-cdn-url into 312ebba6cfefe8b0da922a9985a02e6631599c11 on master.


factorio: add explict dependency on cacert for chroot build

Things done

[ ] Tested using sandboxing (nix-build --option build-use-chroot true or nix.useChroot on NixOS)
Built on platform(s)

[ ] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Looks good to me.


run-rerun exits with non-zero exit code when rerun conditions met, but a failed run occurred in a Before* or After*

What are you trying to achieve?
When running codeceptjs run-rerun --debug --verbose, I was expecting a successful retry run after a run that experienced a failure to result in codeceptjs exiting with an exit code of 0, regardless of whether the failure occurred in a before or after hook, or in the test itself.
What do you get instead?
If the failure occurs in a BeforeSuite, Before, AfterSuite, or After hook, and then there is a successful retry run, codeceptjs will exit with an exit code of 1.  The exit code is only 0 if the failure occurs in the Scenario.

Provide console output if related. Use --verbose mode for more details.

$ FAIL_ATTEMPT=0 npx codeceptjs run-rerun tests/anth.test.js --debug --verbose
CodeceptJS v2.6.10
Using test root "/Users/anthlam/code/anthlam/test-codecept-project"
Helpers: Playwright, AssertWrapper, ChaiWrapper, Mochawesome
Plugins: screenshotOnFail

Run-Rerun testing --
    [1] Starting recording promises
    Emitted | suite.before ([object Object])
 › [Session] Starting singleton browser session
    Emitted | hook.start ([object Object])
RunRerun BeforeSuite
1
    [1] Error | Error: Test Error
    [1] Starting <teardown> session
    Emitted | test.failed ([object Object])
    [1] <teardown> Stopping recording promises
 › <screenshotOnFail> Test failed, try to save a screenshot
 › Screenshot is saving to /Users/anthlam/code/anthlam/test-codecept-project/output/Run-Rerun__1599838660.failed.png
    Emitted | hook.failed ([object Object])
  ✖ FAILED in 258ms

    Emitted | hook.start ([object Object])
    [2] Starting recording promises
RunRerun AfterSuite
    Emitted | hook.passed ([object Object])
    Emitted | suite.after ([object Object])

-- FAILURES:

  1) Run-Rerun testing
       "before all" hook: BeforeSuite for "Fail one, pass one @rerun":
     Test Error
  rror: Test Error
      at testCode (tests/anth.test.js:7:11)
      at Context.<anonymous> (tests/anth.test.js:13:3)
      at Context.<anonymous> (node_modules/codeceptjs/lib/scenario.js:140:10)

  FAIL  | 0 passed, 1 failed   // 597ms

Fail run 1 of max 2, success runs 0/1

Error: 1 tests fail
    at /Users/anthlam/code/anthlam/test-codecept-project/node_modules/codeceptjs/lib/rerun.js:28:20
    at done (/Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/mocha.js:843:7)
    at Runner.<anonymous> (/Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/runner.js:918:5)
    at Runner.emit (events.js:322:22)
    at /Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/runner.js:903:12
    at /Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/runner.js:772:9
    at next (/Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/runner.js:362:14)
    at Immediate.<anonymous> (/Users/anthlam/code/anthlam/test-codecept-project/node_modules/mocha/lib/runner.js:425:5)
    at processImmediate (internal/timers.js:456:21)
CodeceptJS v2.6.10
Using test root "/Users/anthlam/code/anthlam/test-codecept-project"
Helpers: Playwright, AssertWrapper, ChaiWrapper, Mochawesome
Plugins: screenshotOnFail

Run-Rerun testing --
    Emitted | suite.before ([object Object])
    Emitted | hook.start ([object Object])
RunRerun BeforeSuite
2
    Emitted | hook.passed ([object Object])
  Fail one, pass one @rerun
    Emitted | test.before ([object Object])
    Emitted | hook.start ([object Object])
RunRerun Before
    Emitted | hook.passed ([object Object])
    Emitted | test.start ([object Object])
RunRerun Scenario
    Emitted | test.passed ([object Object])
    Emitted | test.finish ([object Object])
  ✔ OK in 0ms

    Emitted | hook.start ([object Object])
RunRerun After
    Emitted | hook.passed ([object Object])
    Emitted | test.after ([object Object])
 › [Session] cleaning cookies and localStorage
    Emitted | hook.start ([object Object])
RunRerun AfterSuite
    Emitted | hook.passed ([object Object])
    Emitted | suite.after ([object Object])

  OK  | 1 passed   // 9ms

Process run 2 of max 2, success runs 1/1

    Emitted | global.result ([object Object])
    Emitted | global.after ([object Object])

$ echo $?    <---- prints out exit code from previous command
1

Provide test source code if related

Feature("Run-Rerun testing");

function testCode() {
  process.env.FAIL_ATTEMPT = parseInt(process.env.FAIL_ATTEMPT) + 1;
  console.log(process.env.FAIL_ATTEMPT);
  if (process.env.FAIL_ATTEMPT === "1") {
    throw new Error("Test Error");
  }
}

BeforeSuite((I) => {
  console.log("RunRerun BeforeSuite");
  testCode();
});

Before((I) => {
  console.log("RunRerun Before");
});

After((I) => {
  console.log("RunRerun After");
});

AfterSuite((I) => {
  console.log("RunRerun AfterSuite");
});

Scenario("Fail one, pass one @rerun", (I) => {
  console.log("RunRerun Scenario");
});

Details

CodeceptJS version: 2.6.10
NodeJS Version: 12.16.2
Operating System: macOS v10.15.5
playwright 1.4.0 (but unlikely to be related to the issue)
Configuration file:

// updates process.env based on the contents of a .env file
if (process.env.ENV_FILE) {
  console.log(`Loading [${process.env.ENV_FILE}]...`);
  require("dotenv").config({ path: process.env.ENV_FILE });
} else {
  require("dotenv").config();
}

const path = require("path");

const ROOT = process.cwd();
const outputUniqueId = process.env.OUTPUT_UID
  ? `-${process.env.OUTPUT_UID}`
  : "";

const config = {
  name: "Functional Tests",
  tests: path.join(ROOT, "tests/**/*test.js"),
  timeout: 10000,
  output: path.join(ROOT, "output"),

  rerun: {
    minSuccess: 1,
    maxReruns: 2,
  },

  helpers: {
    Playwright: {
      url: "http://localhost",
      show: false,
      browser: "chromium",
      waitForTimeout: 30000
    },
    AssertWrapper: {
      require: "codeceptjs-assert",
    },
    ChaiWrapper: {
      require: "codeceptjs-chai",
    },
    Mochawesome: {
      includeScreenshots: true,
      shortScrFileNames: true,
      uniqueScreenshotNames: true,
      screenshotUseRelativePath: true,
      inlineAssets: true,
    },
  },

  multiple: {
    jenkins: { browsers: ["chrome"] },
    basic: {
      browsers: [
        "safari",
        "internet explorer",
        "chrome",
        "firefox",
        "microsoft edge",
      ],
    },
  },

  mocha: {
    reporterOptions: {
      "mocha-junit-reporter": {
        stdout: "-",
        options: {
          mochaFile: path.join(ROOT, `output/result${outputUniqueId}.xml`),
          reportDir: path.join(ROOT, "output"),
          enableCharts: true,
          inlineAssets: true,
        },
      },
      mochawesome: {
        stdout: path.join(ROOT, `output/console${outputUniqueId}.log`),
        options: {
          reportDir: path.join(ROOT, "output"),
          reportFilename: `mochawesome${outputUniqueId}`,
        },
      },
      "codeceptjs-cli-reporter": {
        stdout: "-",
        options: {
          verbose: process.env.VERBOSE_OUTPUT == "true",
          steps: process.env.STEP_OUTPUT == "true",
        },
      },
    },
  },

  bootstrap: false,
  teardown: null,
  hooks: [],
};

module.exports = {
  config,
};

I also forked the repo and added some tests to /test/runner/run_rerun_test.js to demonstrate this behavior.  Those tests can be found in https://github.com/anthlam/CodeceptJS/commit/300d8d8ff4891d170aaf95ef94b10c23268bbdc2

Agreed, found this while using the "Background" statement block via BDD/Gherkin and had to de-dry the statements back to only using Scenario blocks.  My retry logic didn't use the command-line options; I used the helper _before hook suggestion
    recorder.retry({
      retries: 2,
      when: (error) => error.message.includes("500"),
    });


licence?

Hi there
What is the licence of this project? MIT? GPL? LGPL? BSD?
Niek

Hi Niek,
Good question. I haven't thought of it yet. I think Github offers a handful of options? I'll check and pick the one that fits best. However, I wouldn't encourage using this implementation in any serious project anyway.

then a MIT licence would be perfect. that's a licence for code examples.

Yes, MIT license seems like the right choice.
Thanks.


Hat List

Mod name
Hat List
Curseforge link
https://www.curseforge.com/minecraft/mc-mods/hat-list
Other links
https://modrinth.com/mod/hatlist
What it does
Shows the hat layer of skins on the player list "head" preview.  See below for before and after.

Why should it be in the modpack
Greater level of detail on the player list window - sometimes not seeing the hat layer included is a bit confusing for players.
Why shouldn't it be in the modpack
Very small change that most players don't even notice. Also has not been officially updated for 1.18 (last mod update was in June), but still supports it.
Categories
New feature
Additional details
No response

I will not add any new mods that are not updated to the latest version, so having 1.18.1 support is needed for me to even consider this. Still, looking for feedback from people who consider this an issue.

I am currently using this mod and it doesn't need to be updated for 1.18 because it is so simple. It works perfectly like this.

I tested this mod and vanilla 1.18.2 and they worked the same, meaning this feature (now) already exists in vanilla.


Remove comments that are not needed from Dijkstra's algorithm

Remove comments that are not needed from Dijkstra's algorithm

Closed #60


Ipa

What version of Hugo are you using (hugo version)?

$ hugo version

Does this issue reproduce with the latest release?


Surcharging processAuthResponse method

Hello,
First of all i would like to thank you for your library.
In my project i have developed a Tomcat 8.5 authentication valve that extends the main valve OpenIDConnectAuthenticator, in the valve classe i am overriding the method processAuthResponse everything works fine with the version 2.2.3. Recently we have decided to upgrade to Tomcat 8.5.57 and fourntly i have found that you already fix the compatibility issues in the 2.3.0 version but as the return type to the method processAuthResponse has been changed to the inner private type AuthedUser i can not override the method as this type is not visible in my extending class.
Could you please change the visibilté of the inner class AuthedUser so we can override the method processAuthResponse .
Thank you for your time and your great work.
Best regards,
Houssem

Good catch. Will fix.


Feat/i18n

🤔 This is a ...

[X] New feature
[ ] Bug fix
[ ] Demo update
[ ] Component style update
[ ] TypeScript definition update
[ ] Bundle size optimization
[ ] Performance optimization
[ ] Refactoring
[ ] Code style optimization
[ ] Test Case
[ ] README update
[ ] Other (about what?)

🔗 Related issue link

#1
💡 Background and solution

Problem statement
Add Internalization support
Problem Solving

Added a new localeState which has default value of en locale.
Added selector for a few state to derive their default state based on the localeState value.
Minor fix to Last Day of Month selection.
Added props to Scheduler component to allow custom locale values or reusing an predefined locale in the library.
Added docs

☑ Self Check before Merge
⚠ Please check all items below before review. ⚠

[X] Demo in storybook is updated/provided or not needed
[X] TypeScript definition is updated/provided or not needed
[X] README API section is updated or not needed

@ShirasawaSama you might want to check this. Let me know if any improvements required.

cronstrue can also set the language.
https://github.com/bradymholt/cronstrue#node-1

I think the current design is good. Thank you.
But what do you think of the localization API based on material-ui?
https://github.com/mui-org/material-ui/blob/next/packages/material-ui/src/locale/index.ts#L3

@ShirasawaSama

Yes, I will integrate cronstrue localization as well but it will be limited to the set of languages we provide.

Are you saying that we export locale json and user can import and pass it? Is that it or something else you are trying to say? If that is just the case, I think this way is also fine. Do you think there is any major advantage with mui approach?

@baymac  If you don't think it's necessary, you don't need to change it.

@ShirasawaSama I have added locale support for construe, but it is not working for me. Do you have any idea why?

@baymac src/components/CronReader.tsx
- import cronstrue from 'cronstrue'
+ import cronstrue from 'cronstrue/i18n'

@ShirasawaSama thanks. Do you think now this pr is ready to be merged?

@baymac yes


Accordions in two columns are generating blank space in both columns

I'm generating two columns with accordions in each side. Whenever I expand one, the space that the content of the panel generates (to display the body of the accordion), it gets generated on both columns.

The dev tools inspector won't detect this blank space at all, so is the library generating this space?
Code (before row, there's an Accordion tag ):
https://pastebin.com/embed_js/TAajrL7e
Edit: Tried to implement keys in AccordionItem, but the space is still generated.

stopped using the component, thanks.


Updated perforce to version 2016.1.1374211

Merged in https://github.com/Homebrew/homebrew-binary/commit/c7f0baef85f2f8a056c4cae981c93f5f71b37768. Thank you for your contribution to Homebrew @mbogh; we appreciate it! :smiley_cat:


deepseek: Index put requires the source and destination dtypes match, got Float for the destination and BFloat16 for the source.

Reminder

[X] I have read the README and searched the existing issues.

System Info
llama- llamafactory version: 0.9.1.dev0

Platform: Linux-5.4.0-196-generic-x86_64-with-glibc2.31
Python version: 3.9.7
PyTorch version: 2.5.1+cu124 (GPU)
Transformers version: 4.46.1
Datasets version: 3.1.0
Accelerate version: 1.0.1
PEFT version: 0.12.0
TRL version: 0.9.6
GPU type: NVIDIA A100 80GB PCIe

Reproduction
CUDA_VISIBLE_DEVICES=0,1 llamafactory-cli train examples/train_lora/llama3_lora_pretrain.yaml
I want to finetune /data/models/DeepSeek-Coder-V2-Lite-Base/ with pretrain mode.
the yaml file:

the errors:

Expected behavior
No response
Others
No response

please search the existing issue


Python: Consider not using alpine for runtime image

Part of #3326
I generally don’t like to use Alpine images for running Python unless it’s for quick prototyping or something trivial because quite often you find some issues.
Problems
Standard PyPI wheels don’t usually work on Alpine which means the package manager has to compile binaries if needed, making the build time slower and the image bigger.
Also, in practice, the musl C library has some differences with glibc which can cause problems. This has happened to me in the beginning before I switched.
So even though the Alpine image is quite small, you can easily get a much bigger image than just using a slimmed version of Debian (e.g., python:3.10-slim-bullseye).
However
This could all be better now with PEP 656 (pip and PyPI supporting wheels for the musl C library) and the cibuildwheel build tool. And connected to #3306, we can allow a user to replace the image for something more suitable.
Context

Using Alpine can make Python Docker builds 50× slower
The best Docker base image for your Python application (Sep 2022)

Sounds good, I don't think alpine was chosen more than arbitrarily, slim debian image sounds good 👍

My suggestion is https://github.com/chainguard-images/python. Double-check that it's based on glibc. FWIW:


Does "Allow access to Azure services" mean any azure services within subscription or from any subscription

It does not given any details regarding this if "Allow access to Azure services" mean any azure services within subscription or from any subscription. But in the video https://youtu.be/e0tWC0XmOgc?t=453 (7:30)they mention that it is only Azure services within the subscription. Can you please clarify and update the blue box with this information also?

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

ID: 2eb5097c-fc6e-f0a5-07a6-a84e05aa0bb6
Version Independent ID: 1004e6b8-344f-6fdc-391a-35c540f4bf9d
Content: VNet endpoints and rules for single and pooled databases in Azure SQL
Content Source: articles/sql-database/sql-database-vnet-service-endpoint-rule-overview.md
Service: sql-database
Sub-service: security
GitHub Login: @rohitnayakmsft
Microsoft Alias: rohitna

@tkumark Thank you for the detailed feedback.
We are actively investigating and will get back to you soon.

@rohitnayakmsft Please check into user question and provide the needed information. Please let us know if you need any help to edit this document which is pending in below case as well.
https://github.com/MicrosoftDocs/azure-docs/issues/37077
@tkumark We are checking with doc author regarding this. We will get back to you as soon as possible.

Setting Allow access to Azure services button on the Portal (Firewall settings page) to ON shall allow traffic to/from  resources ( e.g. Azure VM) or PaaS services( e.g. Web App) hosted inside Azure - within same subscription or from another subscription as well.

when you say another subscription, if there are 2 subscriptions from the same AD they will be able to communicate but if there is a subscription from from totally different AD also they will not?

It means any other subscription - same/different tenant does not matter. Bottom line is with this setting we have no checks on where the connection is orginating from ; except that it is from inside the Azure boundary i.e. originating from one of the IP addresses that we recognize as those within ranges defined for our data centers.
Rohit Nayak
Sr. Program Manager – SQL Db Security Team

From: tkumark<EMAIL_ADDRESS>Sent: Tuesday, September 3, 2019 6:15 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Rohit Nayak<EMAIL_ADDRESS>Assign<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Does "Allow access to Azure services" mean any azure services within subscription or from any subscription (#37899)
when you say another subscription, if there are 2 subscriptions from the same AD they will be able to communicate but if there is a subscription from from totally different AD also they will not?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F37899%3Femail_source%3Dnotifications%26email_token%3DAD3RWHR6FD6IQ7ZETS3GPRDQH4DZJA5CNFSM4IQ3IY72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD52AW6A%23issuecomment-527698808&data=02|01|rohit.nayak%40microsoft.com|9297a52fbdc64971ef4008d730d54f2b|72f988bf86f141af91ab2d7cd011db47|1|0|637031565019675397&sdata=6oZuR67i7zzP8bqQ1JYDqs0ZMvQdfORZ26m19VBtH7U%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD3RWHVSSA2LSJEN3B3BVALQH4DZJANCNFSM4IQ3IY7Q&data=02|01|rohit.nayak%40microsoft.com|9297a52fbdc64971ef4008d730d54f2b|72f988bf86f141af91ab2d7cd011db47|1|0|637031565019675397&sdata=FAu8X5A6qYMcFRKsZdPo1WBU5bSncsWL%2FBl%2F%2FdM0%2BMU%3D&reserved=0.

Than you Rohit for the explanation. I think the way you explained should be documented rather than the current explanation where they say "any subnet". https://docs.microsoft.com/en-us/azure/sql-database/sql-database-vnet-service-endpoint-rule-overview#prerequisites-1
I might have misinterpreted what Colin Murphy said in the video about this feature. But it would be nice if this setting is limited to any IP within onces subscription.

@tkumark We have added the comment from @rohitnayakmsft in the section for this topic. Once he approves we will go ahead and close this issue.
Additionally you can add your idea regarding restricting access at user voice for Azure SQL.
https://feedback.azure.com/forums/217321-sql-database