dev-amdgpu,gpu-compute,configs: MI300X

Release of MI300X simulation capability:

Implements the required MI300X features over MI200 (currently only architecture flat scratch).
Make the gpu-compute model use MI200 features when MI300X / gfx942 is configured.
Fix up the scratch_ instructions which are seem to be preferred in debug hipcc builds over buffer_.
Add mi300.py config similar to mi200.py. This config can optionally use resources instead of command line args.

Would be great to get this and the MFMAs in for v24.0.  Should be my last PR before v24.0

Seems feasible to get it in. I'm excited for theae new features!

Seems feasible to get it in. I'm excited for these new features!

@powerjg : it looks like the one failing test was cancelled -- is there a way for us to manually rerun it/all tests in Github actions?

@mattsinc, all tests are passing now. I just re-ran the failed one last night.

@mattsinc, all tests are passing now. I just re-ran the failed one last night.

Great!  For reference is there something @abmerop or I could have done?
@abmerop feel free to merge at your convenience.

Great! For reference is there something @abmerop or I could have done?

I'm not sure what access you have, so I'll provide the steps I follow, though you might not be able to complete all of them.
Next to the failed test, click the "Details" button. This will take you to a new page. There, in the top right corner, you can click "Re-run failed test." You can re-run the tests if it is clear that the error was caused by connection issues or something beyond the scope of the PR.

Great! For reference is there something @abmerop or I could have done?

I'm not sure what access you have, so I'll provide the steps I follow, though you might not be able to complete all of them.
Next to the failed test, click the "Details" button. This will take you to a new page. There, in the top right corner, you can click "Re-run failed test." You can re-run the tests if it is clear that the error was caused by connection issues or something beyond the scope of the PR.

Since it's already been run already I don't see anything, but will keep this in mind for next time -- thanks!


Question about language detection

deep_translator version: v1.8.3
Python version: v3.8.13
Operating System: Windows10

Description
Hi,
Many thanks for releasing Deep-translator! For language detection, could we know if it can output top k (for example, top 2) matched languages with sorted confidence scores?
Many thanks!

With the current version it is not possible, but it is definitely something that can be done in future versions ;)

That's great! Thanks!

Hey, I would be very interested in working on this. Would be happy to be assigned the task, if this sounds good to you!


onboarding support script

To reduce complex processing flows in the pipeline for operator authors wishing to onboard to FBC, we prefer advertised interfaces and valid FBC instead of relying on specific tooling and knowledge of FBC "precursors".
This high-level catalog publishing flow illustration breaks the FBC-to-catalog into three logical phases:

build the update graph FBC (possibly as a result of a new bundle version published)
validate and aggregate the non-FBC/FBC contributions
publish the aggregate in an accessible registry

Before those steps can execute, operator authors need to be able to onboard to FBC.
This POC demonstrates the use of a script to fulfill an FBC onboarding process for one/more authors with clear messaging and interfaces, and provide capabilities to fulfill (1) above, external to any catalog construction pipeline.  It will:

cache the (controlled by script vars) appropriate version of the catalog as FBC
extract the operator's catalog contribution from the catalog and convert to a basic catalog template
mark the operator's ci.yaml file as FBC-onboarded by setting updateGraph property to "FBC".
template a Makefile in the operator's subdirectory which will be configured to generate FBC in the right output directory using a basic catalog template strategy for make catalog.

Conventions:

uses yq/yaml
requires being executed from local repo root (and enforces it)
presumes the directory structure

operators/$operator_name
├── catalog-data
│   └── basic-catalog-template.yaml
└── ci.yaml

This is marked as a draft, but really it's a proof of concept to show onboarding authors to FBC is an orthogonal process to catalog publication.

Closing this PR as replaced by redhat-openshift-ecosystem/community-operators-prod/pull/4394


API server probes sporadically fail with "tls: internal error"

How to categorize this issue?

/area control-plane
/kind bug
What happened:
We see sporadic failures from blackbox exporter probing the kube-apiserver from both, seed and shoot side:
ts=2022-06-18T15:33:48.14775152Z caller=main.go:140 module=http_kubernetes_service target=https://kubernetes.default.svc.cluster.local/healthz level=error msg="Error for HTTP request" err="Get \"https://<IP_ADDRESS>/healthz\": remote error: tls: internal error"
ts=2022-06-18T15:33:48.147877825Z caller=main.go:347 module=http_kubernetes_service target=https://kubernetes.default.svc.cluster.local/healthz level=error msg="Probe failed" duration_seconds=0.506237025

Given the total amount of clusters this problem appears to be rare with probably less than 100 probes failing for this reason.
What you expected to happen:
Probes should not fail with this error.
How to reproduce it (as minimally and precisely as possible):
There is a list of incidents listed in our network channel.
Anything else we need to know?:
This is a new problem that popped up in the last couple of weeks. It must have been triggered by some change. As far as I can see this affects cluster running with multiple minor kubernetes versions.
A google search reveals lots of problems of that kind. The suspicion is that it might be related to certificate rotation, so this might not be an issue at all.
Environment:

Gardener version: latest on live
Kubernetes version (use kubectl version): n/a
Cloud provider or hardware configuration: all
Others:

@marwinski Is that a possible issue that may lead to the observed, but not necessarily perceived API server outages? They are phantom outages?
@istvanballok Wouldn't this be another (good) reason to finish the "meaningful availability" topic? In the end, API server availability is the most relevant SLI and we see (too) many issues with the seed/shoot probes we seem unable to get down. We found phantom reasons like DNS, now this. We need something we can trust and need to understand where we really stand.


changing controller settings results in java.lang.reflect.UndeclaredThrowableException

[Build] 17.5 2017/11/07
[Steps to reproduce]

log in to aws controller as administrator (who is also technology provider and service manager)
change UserID, key and password
save configuration

[Expected result]
readable exception
[Observed result]
java.lang.reflect.UndeclaredThrowableException
[Details]
This step is necessary to update the controller manager.

This is extremely annoying, since I do not know what the problem is. I changed the password only and I get this message. I have no idea if the change was commited or not.

I am not getting this exception. Could you please retest with the changes i pushed today regarding platform operator login to APP?

administrator login to controller works (so I guess I am using the correct version); And I am still getting this exception. Changing (to a different value) results in this exception

I can reproduce it now.

Removed authentication with Bes during DB operation in APP controller. I think it is unnecessary to communicate with BES when saving/retrieving from APP db.


Bring SFFCorrector in line with the new Corrector API design

We need to change the API of SFFCorrector slightly to bring it in line with the API described in #319.  In particular:

the constructor should take a LightCurve object;
we need to deprecate LightCurve.correct() in favor of a new LightCurve.to_corrector() method;
stretch goal: add a diagnose() method.

Resolved by #417.  Closing.


provide Jacoco test report as .csv

To ease other integrations, providing the test report as .csv does - imho - not do any harm.

Sorry, will have a look into the pipeline. I was a bit too quick just enabling the CSV output since it works flawless in Opt4J.

Seems the second fail of one of the pipelines may be a timing thing of having the push & pull_request build too fast for codacy or something. Should be fine now.


[MJX] Any plans to soon support collisions for Height fields?

I am currently working on an RL controller for Biped locomotion for a journal submission. I am very happy with MJX so far, and able to make my robot walk and follow joystick commands with the controller. However, one of the most critical parts for robustness and making the robot actually handle outside environments is to include rough terrain. I don't think it's possible to create a robust robot locomotion outside the lab without training on rough terrain to some extend. I know how to make rough terrain using the heightfield parameter, but currently MJX does not support it? Are there any alternatives at all? My guess is that a mesh would have computational issues? Either way, I was wondering how soon we could expect the height field collisions to work for MJX in terms of development?
Any other suggestions also appreciated (currently I decided just to make a bunch of thin plates using box geometry). But for our paper we'll need to put the robot outside the lab, and it would need to handle all kinds of rough terrain, so I am not sure how good using thin box shapes can really represent that type of environment for testing.

Hi @AlexS28 , could you share a bit more about your embodiment, and what kind of geometries you are using for the feet?
Height-fields are not being prioritized, but we are happy to accept contributions, and I may be able to give some pointers.

Hi @breakds , as a first pass, we'll probably implement something pretty similar to what is used in MuJoCo, at least for sphere-hfield, and we can vmap over the hfield prisms. I'm not sure how fast this will be, but it'll definitely be slower than plane collisions :)
I'm guessing with further fussing with geoms/conaffinity/contype, performance might be somewhat reasonable, but I'm not sure

I see. Thanks for the explanation @btaba ! In that case, maybe an alternative would be to approximate uneven plane with something like "stairs"?

Are you thinking to use boxes for now? Go for it! If you have a lot of boxes, consider adding these fields to your model
https://github.com/google-deepmind/mujoco/blob/a8db22f0d077aee86f771808fd24ea60a148c93f/mjx/mujoco/mjx/test_data/shadow_hand/right_hand.xml#L8-L11
max_geom_pairs will do some rough broadphase

Yes using boxes should also work.
Thanks for sharing the code snippet! Didn't know about those two options, TIL.

Are you thinking to use boxes for now? Go for it! If you have a lot of boxes, consider adding these fields to your model
https://github.com/google-deepmind/mujoco/blob/a8db22f0d077aee86f771808fd24ea60a148c93f/mjx/mujoco/mjx/test_data/shadow_hand/right_hand.xml#L8-L11
max_geom_pairs will do some rough broadphase

Hey @btaba! Are those fields documented somewhere?

@driesmarzougui it's on the TODO list to document these, will open as a separate issue


Support for namespaced types [7970]

Support for namespaced types

Build status:

Linux

Build status:

Linux


why I get this after load data

the sql file take it from ubuntu 16.04.1 server to windows server

Could you please send me the whole stack trace of the error?
The LastLikeStudentCourseDemands.loadSubject(..) call does the following HQL:
select distinct d.courseNbr, d.coursePermId, s, d.priority
from LastLikeCourseDemand d inner join d.student s left join fetch s.areaClasfMajors where
d.subjectArea.uniqueId = :subjectAreaId

which is translated to the following SQL by Hibernate (UniTime 4.5.164):
select distinct
  lastlikeco0_.course_nbr as col_0_0_,
  lastlikeco0_.course_perm_id as col_1_0_,
  student1_.uniqueid as col_2_0_,
  lastlikeco0_.priority as col_3_0_,
  areaclasfm2_.uniqueid as uniqueid1_191_2_,
  student1_.uniqueid as uniqueid1_188_0_,
  areaclasfm2_.uniqueid as uniqueid1_191_1_,
  student1_.external_uid as external2_188_0_,
  student1_.first_name as first_na3_188_0_,
  student1_.middle_name as middle_n4_188_0_,
  student1_.last_name as last_nam5_188_0_,
  student1_.email as email6_188_0_,
  student1_.free_time_cat as free_tim7_188_0_,
  student1_.schedule_preference as schedule8_188_0_,
  student1_.max_credit as max_cred9_188_0_,
  student1_.min_credit as min_cre10_188_0_,
  student1_.req_credit as req_cre11_188_0_,
  student1_.req_status as req_sta12_188_0_,
  student1_.req_extid as req_ext13_188_0_,
  student1_.req_ts as req_ts14_188_0_,
  student1_.pin as pin15_188_0_,
  student1_.pin_released as pin_rel16_188_0_,
  student1_.session_id as session17_188_0_,
  student1_.sect_status as sect_st18_188_0_,
  student1_.schedule_emailed as schedul19_188_0_,
  areaclasfm2_.student_id as student_2_191_1_,
  areaclasfm2_.acad_area_id as acad_are3_191_1_,
  areaclasfm2_.acad_clasf_id as acad_cla4_191_1_,
  areaclasfm2_.major_id as major_id5_191_1_,
  areaclasfm2_.concentration_id as concentr6_191_1_,
  areaclasfm2_.degree_id as degree_i7_191_1_,
  areaclasfm2_.weight as weight8_191_1_,
  areaclasfm2_.student_id as student_2_188_0__,
  areaclasfm2_.uniqueid as uniqueid1_191_0__
from
  timetable.lastlike_course_demand lastlikeco0_
  inner join timetable.student student1_ on lastlikeco0_.student_id=student1_.uniqueid
  left outer join timetable.student_area_clasf_major areaclasfm2_ on student1_.uniqueid=areaclasfm2_.student_id
where
  lastlikeco0_.subject_area_id=?

This is because the named parameter :subjectAreaId needs to be replaced by a unique id of a subject area. The Test HQL page cannot use named parameters as it does not know how to set them. The only exception is %SESSION% which gets replaced with the unique id of the current academic session.
Like, for instance:

Or you can list all last-like course demands (for the current academic session) using the following HQL:
select distinct d.courseNbr, d.coursePermId, s, d.priority
from LastLikeCourseDemand d inner join d.student s left join fetch s.areaClasfMajors where
d.subjectArea.session = %SESSION%

The generated SQL query is the same as what I have put in earlier. And it looks ok to me.
Did you get any error? Also, could you please send me the whole stack trace of the original error (your screenshot is cut in the middle of the error's stack trace) -- usually, there is a caused by section which has more details.
My guess is that your database did not get updated correctly with one of the latest updates (like the degree_id field that was added to student_area_clasf_major in update 239) and the query is failing because of that. But I would need to see the full tomcat log for that -- or you can check if there are any errors when UniTime is being deployed (e.g., during the Tomcat restart).

I make pack up database from google cloud ubuntu server and resort data into windows server
when I do this only in ubuntu not get any problem.

I guess there was some problem with copying your database from ubuntu to windows then. If you have a mysqldump from ubuntu, you need to delete the timetable database on windows first and use the dump to create all tables (instead of trying to populate the existing tables, especially if the UniTime on the target system is of a different version or if the database has not been updated -- it was created by the timetable.sql and blank-data.sql, but the UniTime instance was not started yet).

On the source system (ubuntu) -- make a dump of your source database:

mysqldump -utimetable -punitime timetable >backup.sql

On the target system (windows) -- open up a MySQL shell

mysql -uroot -p

From the MySQL shell, (re-)create the timetable database and populate it with the dumped data

drop database if exists timetable;
create database timetable character set utf8;
use timetable;

source backup.sql;

Also from the MySQL shell, (re-)create the timetable user and give it permissions to the timetable database:

drop user if exists timetable@localhost;
create user timetable@localhost identified by 'unitime';
grant all on timetable.* to timetable@localhost;
flush privileges;

thank you, it is work may be when I backup database not get all data.

Ok, so it is working now, right?
I think the issue is that when you just copy over the data, you need to make absolutely sure that the source and the target database are of the very same version. So, for example, if the student_area_clasf_major table is missing the degree_id column in the target database (because it has been just created without running the same version of UniTime -- and by the same version I mean the very same build -- not like 4.5.154 on one and 4.5.164 on the other), it does not get copied over which could create all sorts of issues.

Yes, it's work and thank you.

in Data Exchange I import data Building, Room and staffMember not import only department is success, How to solve that ?

From the documentation of the Data Exchange page:

Buildings and rooms are imported as external buildings and rooms, you need to use Update Data operation on Buildings page (menu Administration > Academic Sessions > Buildings) for the buildings and rooms to show up in the application. Global room features need to be created before this update, and their abbreviation must match the roomFeature.feature attribute.

Staff is imported into the staff table, to pull in the instructors use the Manage Instructor List operation on the Instructors page (menu Courses > Input Data > Instructors).

The reason for this is that we have two sets of rooms, the list of external rooms (which are imported from the XML, and expected to be changed quite often), and the list of rooms that is actually being used for timetabling -- that should not change uncontrollably especially during the time a course timetable is being produced.
Similarly, the staff table may contain all the personnel on campus (which can get periodically updated), and it is up to the departmental schedule manager to pull in the people he/she needs for timetabling.

I insert xml file about 2300 building and when update data I get this

and not show in database

the last session is 6356992

Is there any error in the Tomcat log? Most likely, you would see a
violation of either uk_room database constraint (room with the same room
number already exists in the bulding, but it does not have a matching
external id), or uk_building database constraint (a building with the
matching abbreviation already exists, but it does not have a matching
external id).
On Thu, Jun 24, 2021 at 10:30 AM Abdulaziz Alharbi @.***>
wrote:

I insert xml file about 2300 building and when update data I get this
[image: image]
https://user-images.githubusercontent.com/46826627/123229454-fac56200-d4de-11eb-936e-18d7e07457ee.png
and not show in database
[image: image]
https://user-images.githubusercontent.com/46826627/123229960-758e7d00-d4df-11eb-9642-73da99db85b1.png
the last session is 6356992
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/UniTime/unitime/issues/87#issuecomment-867447211, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRDTUS6DICKI5UASKLCU5LTULULBANCNFSM454DVZKQ
.

I solve that to create new number by python on our databases has duplicate data


Casing of "jspecify" name

Let's... try not to invest too much time in this...
I weakly propose that the official name of the project be "jspecify" and not "Jspecify" or "JSpecify" or "jSpecify".
I think most users will encounter the name more often in import statements etc. than anything else, where the name will be all lowercase by established convention, so I just don't see much value in having a second style in other contexts.
I further propose that we explicitly not care whether people capitalize the "j" when used at the start of a sentence. (We are not the iPhone...)
If anyone feels that a different approach is significantly better and can explain why, please comment.

I proposed that we use normal English rules and call it Jspecify.

It is easier for people to understand, because it is not an exception to standard capitalization
It is how almost all other tools (e.g., Guava) are treated.

That can work as well, we're just gonna need more people to weigh in.

Here we go: I personally like "jSpecify" best, which Google docs at least doesn't seem to auto-correct at the beginning of sentences, unlike "jspecify".  I frankly like "jspecify" best for its visual balance (sticking down in front and back) but I don't think it's great in sentences, which I suspect goes back to Mike's point, and it's annoying to me to get different spellings and auto-corrections when starting a sentence.  While I want to support Mike's point, I have to admit that Jspecify to me parses especially poorly, and I suspect that's because it's not really a word, unlike "Guava", and it also looks especially unappealing to me (because it sticks up in the front and down in the back I think).  But, maybe jSpecify is a decent compromise, since it uses a capital letter where the actual word starts?

Just to get it out there, my ranking is:

"JSpecify" makes it much easier to parse for me. Also like "JRuby".
"jSpecify" for the resons @kevin1e100 gives above.
"jspecify" is simple.
"Jspecify" because autocorrect changes 3. into it.

I would like to preface this by saying that I can live with any of those 4 and that I want to err on the side of making this conversation shorter, rather than longer.
With that said: I was surprised not to see a "JSpecify" proponent until now. To my mind, that is the "standard" for names of the form "j" + "foo." Besides JRuby, I have heard of at least:

JUnit
JCommander
JFreeChart
JGraphT
JGit
JLine

There are certainly many exceptions (like jsoup), but many apparent exceptions are acronyms (like jOOQ), which isn't what we're doing here.
Consequently, I would expect for users to fairly commonly write "JSpecify" no matter what we say. (To be fair, I'm sure that at least one person will write every form no matter what we say :))
Granted, it's possible that I just happen to have been exposed to more JFoo libraries and that other users will be more familiar with more jFoo, jfoo, or Jfoo libraries. But https://github.com/akullpp/awesome-java seems to overall lean toward JFoo (for what that's worth), and of course JUnit in particular is extremely commonly used.

This last point seems strong to me. I suppose that my starting off with "jspecify" actually came from a streak of contrarianism.

I can get behind "JSpecify". I like the symmetry of j and y but j can look
like other letters depending on font, so J is probably better/clearer
anyways.  Plus, my sense of symmetry probably isn't the deciding factor
here.

I've reread everything here. I am comfortable pronouncing an official decision of JSpecify and any bitter complaints about that can be sent to me offline. :-)
That is a decision on how it officially appears in prose. As for how it should appear in code, of course the package name remains "jspecify", and the names of various identifiers (e.g. maven whatnot) should follow dominant conventions in that arena.
If we write, say, a test method that includes JSpecify in part of its name, a close reading of the Google Style Guide permits either testJSpecifyCompliant or testJspecifyCompliant and let's not have a big debate on that. :-)
We good?


[10.x] Allow passing a Callable to Log::debug() (and related)

Often, it's necessary to perform some sort of statistics when generating a string to log. However, if I call Log::debug() in prod it still performs some sort of statistics to then discard them. It'd be great to be able to only perform them if it will be logged.
Right now I'm using this:
// in my huge loop
Log::debug($lineNumber + 1 . ' of ' . count($lines));

However, count() will be run (and take CPU time) even in prod; it'd be nice if I could do this:
// in my huge loop
Log::debug(fn () => $lineNumber + 1 . ' of ' . count($lines));

Because then, count() will only be run when logging.
I didn't see any tests to update.

Lots of other things in the Laravel universe support accepting Callables. Consistency and guess-ableness is nice.
Also, wouldn't I have to define a class and instantiate it? Wouldn't that be slower (CPU) than passing a function?

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Enable send/receive

This worked for me.
On the receiving side I had to:
sudo zfs allow $(whoami) receive,create,mount tank

On the sending side I had to
sudo zfs allow -u $(whoami) send,hold tank

then this worked from an un-elevated user:
local_dataset.receive(remote_newest_snapshot.send(remote_common_snapshot))

where the two snapshots were from a zfslib.Connection() to one server and the dataset was a zfslib.Connection to another.
When there were errors, I saw them and the program I was running exited. Had I chosen to trap more exceptions in my own code, I would have been able to decide not to exit.

Thanks for the PR. Although zfslib was written to be read oriented, I'll give it a read through and figure out if this make sense to put in or whether a modify centric library that uses zfslib would be a better fit.

I had the choice to make, either do the send within python (where I identified the correct snapshots to move), or print the shell commands and then execute them.
Printing shell commands then lost the setup I'd done for ssh sessions, so after doing it manually once, I decided to embed it in python to keep all that context right there.
I did note that none of the fields in zfslib are even possibly destructive. Unlike this, which in theory could be (if additional features are added to these commands).

Of course this mechanism could also exist as something duck-punched in (I found the term in one of the comments in the code, and loved it).


Feature Request: Open original

Thanks for this!
It would be handy if eventually the plugin could look for "sync-conflict" and open the related file name, i.e. the original to start a compare & merge.

I second this, assuming I understand it correctly. At a wider level for Syncthing, it would be nice for it to autodetect conflicts and open up the diff resolver so you don't have to go figure out the filenames of conflicts.

Yes, that's the idea.

I have extended the plugin by the command Find sync conflicts and merge.  The commando finds all Syncthing conflicts and shows the merge option for each conflict sequentially.

Thanks.
It would help to have an indicator of the page being worked on, as in some cases the correction to be accepted depends on the file. (Maybe the info is there and I'm missing it?).
BTW, I'm no longer seeing the original commands in the command pallet only the new one, but maybe this was intentional and I'm misunderstanding the meaning of "extended".

I showed the information which files are being differenced in the previous version, but had to deactivate it for now because I needed to make architecture changes based on the feedback of @liamcain. I am in dialogue with Liam to find a way to reactivate it.
Weird! I just downloaded the latest version again and I see all three options and unfortunately cannot reproduce it. The code also looks fine. Is the bug still present?

The names of the files are now displayed in the title of the tab.


use /v2 in module name because golang

Signed-off-by: James Ranson<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 7 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.04%) to 94.595%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/cache/memory/memory.go
0
7
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
15980

Relevant Lines:
16893

💛  - Coveralls


Revert and replace #17442

This reverts commit 755cc644cc0b47dfa335219cc305a04a14e4ec25.
The approach is problematic.  intptr_t could cause undefined behavior in the subtraction when the pointer converts to a negative value.  Except in weird cases where the sign of the pointer identifies a memory domain (like kernel vs userspace) I'm unaware of any valid use of intptr_t.
It's also unnecessary, because a standard technique can be used to avoid the truncating cast.  A local replacement macro is used to demonstrate the proper technique.
I don't believe a macro in sys is necessary to encapsulate this operation.

@npitre something makes it difficult to mention you (not a member of this project?) so I hope you see this; if so, please take a look.  If it doesn't meet your needs for #17516 we can some up with another, but the original technique is not good code.

I would think the problem is that #17442 overcomplicates things by defining that general purpose macro. As then others (@marc-hb ) will start thinking about generic cases.
Something like this: https://github.com/zephyrproject-rtos/zephyr/pull/17418#issuecomment-509699854 would have done the job, and be clean and simple enough.
Your proposed macro here is probably also good enough, but it assumes the structures are an integer number of sizeof(type) apart.

I'm unaware of any valid use of intptr_t.

For doing arithmetic with void * pointers without assuming the pointer type size (say, that (void*) and int have the same size), and not wanting to cast it to, say, (char*) (which being pedantic is not really correct as char needs not be a byte)

Your proposed macro here is probably also good enough, but it assumes the structures are an integer number of sizeof(type) apart.

Yes.  If that's not the case the operation is going to enter the world of undefined behavior.

I'm unaware of any valid use of intptr_t.

For doing arithmetic with void * pointers without assuming the pointer type size (say, that (void*) and int have the same size), and not wanting to cast it to, say, (char*) (which being pedantic is not really correct as char needs not be a byte)

uintptr_t does that without running into the risk of undefined behavior due to signed arithmetic overflow.

On Fri, 12 Jul 2019, Peter A. Bigot wrote:

If it doesn't meet your needs for #17516 we can some up with another, but the original technique is not good code.

This works for me just as well.

maybe this is the same reason you'd want a signed intptr_t: in a situation where you know for sure your two pointers are close to each other yet you don't know which is the first one. Something like this:
intptr_t either_way_offset = (intptr_t) ( (p1-p2) * sizeof(*p1))

Pretty sure that should just be:
ssize_t either_way_offset = (p1 - p2) * sizeof(*p1);

since pointer differences (and ptrdiff_t) are signed.  No need to involve intptr_t.

but it assumes the structures are an integer number of sizeof(type) apart.

... which will be true if they're both aligned. BTW I just learned there's no standard way to "misalign", only compiler extension(s).

Well, yeah, but it's not alignment that's the issue.  In C the difference between two pointers is only defined if they point into (or one past the end of) the same array.  Which is why you don't have to worry about non-integral element difference.
If there's some code somewhere that's using casts-to-integral-type to calculate the difference between pointers to unrelated objects (which includes fields in a struct), somebody's doing something crazy and shouldn't be encouraged by providing a utility macro that makes it look legitimate.

If there's some code somewhere that's using casts-to-integral-type to calculate the difference between pointers to unrelated objects (which includes fields in a struct), somebody's doing something crazy and shouldn't be encouraged by providing a utility macro that makes it look legitimate.

Is it work adding typeof() checks to ensure that both arguments are of the same pointer type?

Is it worth adding typeof() checks to ensure that both arguments are of the same pointer type?

No; if they aren't compatible the subtraction will produce a compile-time error.

The tests below (now using this macro) would seem to be there to check that the linker script placed things where it was meant to, without extras or missing parts.

Ah.  So the test is doing something crazy, and the values that are being treated as pointers may not even be legally dereferenceable.   This macro definitely never should have been put into sys, especially named PTR_DIFF with no documentation.
I've pushed an update that changes both the implementation and the name to more clearly represent what this thing is doing.  If this sort of check is happening in other places I can see value in having the macro put into a header somewhere, but not sys and not named PTR_DIFF.
Thanks for bringing the intent to my attention.  It really changes the solution.

(forgot this sorry)

So rounding the test check result off to the nearest sizeof(struct) would seem like crippling that test.

Short of a test to test this test, there should really be in the comments some "manually tested" instructions providing the fastest hack to introduce some artificial linker corruption and prove that this test actually fail / do something useful. This is not a typical test.

Well, yeah, but it's not alignment that's the issue. In C the difference between two pointers is only defined if they point into (or one past the end of) the same array.

Yet you can't trust compilers enough to convert this run-time test into a compile-time test?

It would certainly be difficult. It is the linker who defines what those symbols are. From the point of view of the compiler, all we are telling it is "those symbols are defined somewhere else, and by the way, treat them as arrays (i.e. pointers) to this types". To the linker we are just telling, save this address(es) in this symbol(s), while you are placing this sections around.

Short of a test to test this test, there should really be in the comments some "manually tested" instructions providing the fastest hack to introduce some artificial linker corruption and prove that this test actually fail / do something useful. This is not a typical test.

Maybe this?
--- a/include/linker/common-ram.ld
+++ b/include/linker/common-ram.ld
@@ -162,7 +162,7 @@
 	} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)

 #if defined(CONFIG_USB_DEVICE_STACK)
-	SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(1))
+	SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(2))
 	{
 		__usb_descriptor_start = .;
 		*(".usb.descriptor")

Maybe this?

Congratulations; you've found a bug in the linker script.  struct usb_descriptor is not packed, so it must be 2-byte aligned, and the check again .  The fix you provided should be added, and 133 should be changed to 134.
That bug is probably why

--- a/include/linker/common-ram.ld
+++ b/include/linker/common-ram.ld
@@ -162,7 +162,7 @@
 	} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)

 #if defined(CONFIG_USB_DEVICE_STACK)
-	SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(1))
+	SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(2))
 	{
 		__usb_descriptor_start = .;
 		*(".usb.descriptor")

Maybe this?

Congratulations; you've found a bug in the linker script.  struct usb_descriptor is not packed, so it must be 2-byte aligned, and the check again .  The fix you provided to use SUBALIGN(2) should be added, and 133 should be changed to NUM_INSTANCES * sizeof(struct usb_desc_header).
(The reason it sorta seems to work, and the reason multiplying by 2 produces an odd value, is because of the bug: because struct usb_desc_header is not packed __usb_descriptor_end cannot legally have an odd value.  That means the pointer is not valid, not defined, and the compiler is free do whatever it wants when the expression subtracts an aligned pointer from a misaligned pointer: it doesn't actually do the multiply by two.)
That bug is probably why that particular check value is a hard-coded constant, rather than a calculated expression like all the others.

@marc-hb I'm going to ask that you update your review to remove your blocking request for a test that validates this works.  My intent with this PR was to provide a less dangerous way of refactoring the existing test, not spend hours trying to validate a test for a subsystem that I don't understand.
It is true that struct usb_desc_header is 2 bytes long, but is not packed, so requires 1-byte alignment that the linker script provides. __usb_descriptor_start however is not the beginning of an array of descriptors, as I had assumed without knowledge of the tricks being played.  It is a pointer to a packed object that starts with a descriptor.  The next descriptor is located by manipulation of generic pointers using length data within the containing object.  Adding alignment to the linker script breaks the USB subsystem, because it fails to properly walk the descriptor sequence.
SYMBOL_SPAN(__usb_descriptor_end, __usb_descriptor_start) correctly returns a length of 133 without relying on undefined behavior.
__usb_descriptor_end - __usb_descriptor_start returns 66 because of undefined behavior.  The compiler apparently sees:
(__usb_descriptor_end - __usb_descriptor_start) * 2

and is justified in doing a subtraction of the integral pointer values because the subtracting these symbols as pointers is defined only if the pointers to the same array.  They are not.
I have no reason to believe there's a bug in the USB infrastructure or this test, and don't believe further investigation of the test as a test is warranted.


Follow up fixes for debug libraries

I've made the libraries included in InertialSense.cpp, this allows bringing in the "d" version of the libraries for debug builds, and the non "d" versions for release, at least on Windows. For Linux, they are part of the packages on the system still and seem to build fine in debug and release mode.
Opening in Visual Studio as a folder worked, but I had to delete the .vs folder in the cltool directory first.

Example projects are building, along with the sdk and able to use the sdk static lib.
@waltjohnson This pr removes the library linking from the source code and puts it all in the cmake files. For the eval tool, we will need to do some refactoring on including the libusb, yamlcpp and winsock lib files.


Instance of WMWorldRenderer does not udnerstand #scaleFactor when opening editor form menu

Using fresh install of Pharo 9 and trying to open editor first thing after installation.

I have just pushed the latest version onto this repository. Try loading it again on a clean image.

Weird, what is your OS and your graphics card? on my desktop machine with Ubuntu 20.10, AMD Vega 64 this is just working on a fresh image. Also, Pharo 9 for this latest version is required.
Apart from that, the level editor is still on an early stage, and I still have to define the interface for looking up materials for a specific project or game. Also, in the long term I am planning on making a new much simpler version of Woden with better Spec and Inspector integration.

I am using Linux Mint 20 and the following Graphics card:
Graphics:  Device-1: NVIDIA GP104 [GeForce GTX 1070] driver: nvidia v: 450.102.04
Display: x11 server: X.Org 1.20.9 driver: nvidia unloaded: fbdev,modesetting,nouveau,vesa
resolution: 3840x2160~60Hz
OpenGL: renderer: GeForce GTX 1070/PCIe/SSE2 v: 4.6.0 NVIDIA 450.102.04
I didn't know it was a work in progress, I was just looking to try out different things. I can return to try it out later instead.
Currently I have succeeded in importing my own models (after finding the correct directory in the local git clone) and it works very well. Also, the code needed is really lightweight and very readable. I've been using three.js from time to time before and Woden feels like 10x less code for the same result, just from an API level (or perhaps it is a language level also :) )


Manually Build--Already gcc 6.4, but compile failure prompts need to upgrade gcc to 6.0

2、但是

gcc version 6.4.0 20180424 (Ubuntu 6.4.0-17ubuntu1~16.04)
sec@ll-B85M-DS3H-A:~/rgh/eos_719/eos/build$ cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=~/wasm-compiler/llvm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..
CMake Error at CMakeLists.txt:33 (message):
GCC version must be at least 6.0!
-- Configuring incomplete, errors occurred!
See also "/home/sec/rgh/eos_719/eos/build/CMakeFiles/CMakeOutput.log".

No response from user; cannot reproduce; closing


Streaming video doesn't work properly with Web Audio api

I am trying to embed a remote video(from sites like youtube, vimeo, etc.) and use the analyzerNode from the Web api to create a music visualizer on the side while the video is playing.
This works perfectly fine for local video files, but when you use this for youtube or any other remote video links, then the analyzerNode fft outputs all 0s for some reason.
The video and audio still plays fine, its just the music visualiser that acts as if there's no audio.
I am not receiving any errors looking at the console, no CORS errors or anything.
If somebody can help please reply.
https://gist.github.com/CoolerExtreme/2f6d806e281cc8b316ab3dcb80ab914e

Unfortunately, youTube doesn't report that the same data you're looking for!
On Mon, Jun 27, 2016 at 7:15 PM, CoolerExtreme<EMAIL_ADDRESS>wrote:

I am trying to embed a remote video(from sites like youtube, vimeo, etc.)
and use the analyzerNode from the Web api to create a music visualizer on
the side while the video is playing.
This works perfectly fine for local video files, but when you use this for
youtube or any other remote video links, then the analyzerNode fft outputs
all 0s for some reason.
The video and audio still plays fine, its just the music visualiser that
acts as if there's no audio.
I am not receiving any errors looking at the console, no CORS errors or
anything.
If somebody can help please reply.
https://gist.github.com/CoolerExtreme/2f6d806e281cc8b316ab3dcb80ab914e
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/johndyer/mediaelement/issues/1766, or mute the thread
https://github.com/notifications/unsubscribe/AANE053kd7djYS2zPXuL3PxmBYKtySyAks5qQGeLgaJpZM4I_oJG
.

--
John Dyer - http://j.hn/


FALCON-1621 Lifecycle of entity gets missed when prism and falcon server communicates

+1. looks good
Can you check if something else is also being missed apart from list? date or so?

yes have verified date is coming as String so we should be good.

+1. Will merge.


CC0057: Should not try to remove parameters meant to fulfill a delegate contract

CC0057 appears to be a bit too aggressive. For example, suppose I need to pass a delegate to a method and the delegate signature has two parameters, but my implementation of the delegate only needs one parameter. Here's a demo class.
public class BugDemo
{
    public delegate void ConfigFileChanged(string key, object value);

    public static void FireHandler(ConfigFileChanged changeHandler)
    {
        changeHandler?.Invoke("key", "object");
    }

    public static void Init()
    {
        FireHandler(OnConfigFileChanged);
    }

    static void OnConfigFileChanged(string key, object value)
    {
        // We only care about dependency changes
        if (key == "none")
            return;
        Console.WriteLine(key);
    }
}

Code Cracker tells me that the object value parameter of OnConfigFileChanged is not used and suggests I change the signature. I can't always change the signature because it might be defined elsewhere. In this case, it shouldn't try to remove the parameter. Perhaps it shouldn't even warn in this case.

@Haacked Ok, I confirmed the problem. And it is crashing when the code fix would be applied. So, at least that has to be fixed.
We have a few options here on how to fix this:

We could update the ConfigFileChanged delegate (if it is on source), removing object value from the signature and also update the OnConfigFileChanged, doing the same thing.
1a. If the delegate comes from an outside reference, we do not raise CC0057.
1b. If the delegate is being used somewhere else we do not raise CC0057.
We could always not raise CC0057.

The first option is complicated to work using the current Roslyn APIs, unless we provide some poor implementation. The problem is looking for references is async, and we are not supposed to do async work on the analyzer. The other option would be to collect the references during the compilation and only raise the diagnostic at the end, but this would present other problems.
The second options also suffers from the same problem, as we also would have to look for usage of the OnConfigFileChanged (which is async and we can't do).
So, this is not a simple problem. I will take this one and see what I can come up with.

1.We could update the  ConfigFileChanged  delegate (if it is on source), removing  object value  from the signature and also update the  OnConfigFileChanged , doing the same thing.

I'm not sure that's the right thing. The delegate could be defined elsewhere. Or it might be designed appropriately, and only this instance doesn't need parameters. I think it's one thing when you define a method yourself and don't use a parameter. I think it's another thing when you're fulfilling a contract.
For example, it doesn't seem like you raise CC0057 when you're overriding a virtual method and you don't use all the parameters. I think this is the same situation as that.

Well, a delegate is just a method contract... if it is defined on your source, this means you own it. If no one else is using one of it's parameters, why not simply remove the parameter from the delegate and from the method?
But as I said before, that might not even be possible. :)
So I am looking for a way to do not raise it on this situation. Let's see if I can find it.

Well, a delegate is just a method contract... if it is defined on your source, this means you own it. If no one else is using one of it's parameters, why not simply remove the parameter from the delegate and from the method?

Sure, if it's a private delegate and every usage omits one of the parameters. In the code sample I posted, the delegate is public. Which means there could be callers not under my control who are implementing it. Removing the parameter would break them.

So I am looking for a way to do not raise it on this situation. Let's see if I can find it.

:+1:

@Haacked
Ok, Here is what I have found. We are going to have to compromise.
We can't use the SymbolFinder class for several reasons. The main one being that we cannot use the Microsoft.CodeAnalysis.Workspaces.dll during analysis, only when a code fix provider is running. So, we are not able to verify who is referencing the method. On your example, the Init method is in the same class, but it could be anywhere else, if OnConfigFileChanged was public. There are 2 ways to find this usage:

We use the SymbolFinder, which we can't.
We run on compilation start and compilation end, and we collect any usages as we find them.

Number 2 is not an option also, as it creates problems. For example, it might raise a diagnostic when a compilation ends, and later you change the code, but until the next compilation starts and ends, the diagnostic would stay there on your error list. It could be a while, several seconds, even minutes. You don't want that. This kind of diagnostic only works for command line compilations or for hidden diagnostics, which are only there for code fix providers to pick up, and then you can run all the async stuff and have access to the workspaces dll.
The other reason not to use SymbolFinder is that all its methods are async. We can't run async code during code analysis, we can't await, and if we .Wait we can cause serious problems.
So, here comes the compromise:
If the method is private, we can search through the class declaration for it's usages, and if we find that the method is being used as a method group, we don't raise the diagnostic. But this will not work with partial classes, as the method might be used on another document, and we will still end up with a false positive, we will raise an incorrect diagnostic. On the code fix, if we find that it is was a partial class and the method was used and the delegate is on source, we could either update the delegate or not provide a code action. I prefer to offer it and let the user decide. If the delegate is not in our source, we simply do not offer a code fix.
If the method is public, we ignore all that. We always offer the code fix and don't bother. Or should we never offer it? I see a lot of benefit to offer it, but I would like to hear your opinion (and other people's opinions as well).
Other options:

We could ignore methods that start with OnXXX.
We could ignore methods on partial classes.

What do you think?

If the method is private, we can search through the class declaration for it's usages, and if we find that the method is being used as a method group, we don't raise the diagnostic.

Seems legit to me.
I don't mind the code fix being offered. What I don't want to do is litter my code with #pragmas to hide this diagnostic in cases where I can't fix it. So not raising the diagnostic when it's a public delegate seems like a good compromise.

@Haacked It is finished. Would you try the latest release on the myget feed to make sure it works for you?

@giggio I'll try and get to it soon.

@giggio I saw the diagnostic raised, but it didn't ask me to remove the unused parameter.

@Haacked It should not even raise a diagnostic. Can you isolate the code and post it?
RC6 is out just now with the fix, can you try with it?
Also, sometimes you have to close VS after you update the analyzers, it seems that the new ones might not be picked up immediately and diagnostics updated.

@giggio ah! Let me try again. I might have failed to update properly. I think I was on RC5

Everything works great! Thanks!


Incorrectly pinned when scrolling fast to bottom of page

Incorrectly pinned when scrolling fast to bottom of page
https://bon-evaluategroup.tinytake.com/tt/Mzc0MDEwNF8xMTM4OTEyOA
(function () {
    $(document).ready(function () {
        var header = $(".header");

        if (header.length < 1) return;

        function showHeader() {
            header.animate({ height: header.attr("data-height") + "px" }, function () {
                setTimeout(function () {
                    // Remove the height declaration to avoid any issues
                    // adding elements to the header.
                    header.css("height", "auto");
                }, 50);
            });
        }

        function hideHeader() {
            header.attr("data-height", header.height());
            header.animate({ height: 0 });
        }

        new Headroom(header[0], {
            scroller: $(".scroller")[0],
            onPin: showHeader,
            onNotTop: hideHeader
        }).init();
    });
}());

If you can't reproduce I'll post the HTML and CSS too as I'm using flexboxes.

Either download the video or fullscreen it and watch for the bar at the top with the text fixed, and observe the DOM to see the issue. I haven't looked at the source code yet to identify the exact course but it looks like a bug with the JavaScript to me.

This isn't a bug, it is to do with the way in which the header is added to the page, causing the page to scroll up, making the header appear again. Fixed using the tolerance.


Explicitly disabling ABR when selecting tracks

Looking at the docs here: https://github.com/google/shaka-player/blob/master/docs/tutorials/upgrade-v2-0.md
The example shows calling player.configure() AFTER selectVariantTrack(), to disable ABR. That doesn't seem to work well in practice. It seems better to call player.configure() to disable ABR BEFORE calling selectVariantTrack(). I think either the docs should change to reflect that, or the code should change to reflect the docs - my guess is that the problem is that inside of player.js's applyConfig_() method chooseStreamsAndSwitch_() is called before actually disabling ABR. It seems that most any call to player.configure() will potentially undo a previous selectVariantTrack() call.
I was testing this on HEAD of master about one week ago.

You are correct.  We disable ABR first in the demo app, so the docs are at fault.

The fix has been cherry-picked for v2.1.7.


feat(MultiSelect): Add invalid and invalidText props to show validation errors

Closes IBM/carbon-components-react#1130
Adds two new props to MultiSelect to show validation errors like the other input widgets.  Also requires this PR to be incorporated into carbon-components to handle the styling: https://github.com/IBM/carbon-components/pull/1004
Changelog
New

Add(MultiSelect) added two new props invalid, and invalidText to show error messages if validation errors occurred.

if we get the official new published version # of carbon-components would be good to update the peer dependencies to point to it.


As a User, I want network consensus to be achieved before a message is executed so that network security is in place

Closing as shipped.


AMBARI-23118. Add apidoc for InfraRuleBasedAuthorizationPlugin.

What changes were proposed in this pull request?
Adding apispec for InfraRuleBasedAuthorizationPlugin (same as RuleBasedAuthorizationPlugin)
How was this patch tested?
with mvn clean test.
FT: in progress
please review @kasakrisz @swagle

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


chore: improve the extensibility of (Signing)StargateClient

This PR improves the overall code of StargateClient and SigningStargateClient. The main changes are the following:

introduced a new StargateClientOptions interface that allows setting custom options for StargateClient.
The most important option is the accountParser option, which must be an AccountParser instance and allows to provide the StargateClient a custom way of decoding Cosmos accounts. This is particularly useful to solve problems when reading account from chains that support custom account types (eg. the Desmos chain). This can solve problems like the one REStake is having: https://github.com/eco-stake/restake/issues/334
changed the return type of the signDirect, signAmino and sign methods to be SignatureResult instead of TxRaw.
This allows clients to also get the data that has been used when generating the signature. This is particularly useful in cases where the resulting signature must later be verified offline (eg. in a signature-based authentication process). Without the data (account number, sequence and sign doc) used, the client would have to re-generate the signed bytes by hand. With this change, instead, the sign bytes are returned by the sign method directly without any other operations needed.
made the signer, aminoTypes and registry fields protected instead of private.
This allows classes extending the SigningStargateClient to easily access those fields if needed (eg. when performing operations that need to encode a message or else)
added the SigningMode interface and the getSigningMode method to StargateSigningClient.
These allow classes extending SigningStargateClient to easily implement new ways of defining what signing algorithm should be used. For example, developers might want to define a custom way of choosing which signing algorithm to be used that is based on what a signer supports. We could have a signer that uses WalletConnect with multiple versions on the market: a way to determine if the direct method is supported might be to ask directly the signer rather than performing type checks

@webmaster128 Is it possible to have a review to this? I think it might be quite helpful to developers building on top of CosmJS

Thank you, @RiccardoM! Lots of good stuff, lots of breaking changes.
Before we go into detail, there are two big movements regarding extensibility:

Configure the StargateClient
Make it easy to create custom clients based on a custom selection of modules

Now 1. is pushing for more and more flexibility while 2. is pushing for a more lightwight client that serves as an example for custom clients once you do something fancy.
This PR uses approach 1., but in two different ways:
(a) Configuration via options
(b) Extensibility
This feels inconsistent. E.g. why don't we use overriding for the accountParser? Do we want to require users to create their own client?
Also I have a different question: I recently rejected the request for a custom auth query in https://github.com/cosmos/cosmjs/issues/1082. Is this a problem Desmos also has? Or is it "just" custom account responses?
Overall, happy to bring those changes in but we need to break it down.

This feels inconsistent. E.g. why don't we use overriding for the accountParser? Do we want to require users to create their own client?

I think that using the option might be a lot better for developers that want to use the standard StargateClient implementation but also support custom accounts queries. I believe that developers should be forced to extend the default StargateClient only when they want to implement custom behaviors (maybe custom gRPC queries or other operations).
Ideally, even the latter (extend the functions) could be implemented in a way that's easier for developers and do not require them to create a custom Client class (maybe using the same way that it's now being used for QueryClient or something similar). But anyway, this is for another issue.

Also I have a different question: I recently rejected the request for a custom auth query in #1082. Is this a problem Desmos also has? Or is it "just" custom account responses?

Desmos does not have that issue. I think the most common issue we will see among clients that interact with different Cosmos chain is going to be about parsing custom account types. That's why this PR focuses on that only.

Cool 👍 Can you extract the AccountParser change in a separate PR? This is a non-breaking change that is relatively straight forward and can be shipped in 0.28.x.

Cool +1 Can you extract the AccountParser change in a separate PR? This is a non-breaking change that is relatively straight forward and can be shipped in 0.28.x.

Done inside #1102

Closing as stale. As discussed before, let's split those changes into small chunks such that we can better separate in breaking and non-breaking changes. Happy for such additions in general.


Temporary fix for selene linting issues (Enums Related)

This should fix selene linting error on pull requests.

The enum incompatibility is fixed in #1004

Oh. Sorry, I haven't read this pull request.
I guess I will close this then.


Unable to use functions

Describe the bug

I should probably break this into three issues, but they may be related?

The first issue was with script not finding Python. It was on path, but wouldn't find it. I changed python to python3 in the script and it worked instantly. Not sure if I messed something on my WSL setup for it to not see path, but my fix worked and script ran with some errors as described in error 2 next.
The second issue after following your instructions I got the error below. I noticed web-search.sh doesn't exist in tools folder nor did I have it in my tools.txt file. Not sure why this error happend. You'll also see an error for coder this exists in the file structure and has files, but I get the invalid error. (see Issue 2 error below)
I proceeded to try other functions since I didn't get errors on those. None of the functions work no matter what model I use. I used Ollama with llama3.1 and Gemini and neither worked (see Issue 3 error below). Both models work if I don't use functions in prompt.

Issue 2 error:

WARNING: no found web_search tool, please run argc link-web-search to set one.
error: not found tools: web_search.sh
Build agents/todo/functions.json
error: invalid agents: coder

Issue 3 error w/Ollama:llama3.1:
Note: I still get an LLM response just w/o the function after the warning

WARNING: This LLM or client does not support function calling, despite the context requiring it.

Issue 3 error w/Gemini API
Note: I don't get any response just this error

Failed to call chat-completions api
Caused by:
* GenerateContentRequest.tools[0].function_declarations[0].parameters.properties[array].items: missing field.
* GenerateContentRequest.tools[0].function_declarations[0].parameters.properties[array_optional].items: missing field.
* GenerateContentRequest.tools[0].function_declarations[5].parameters.properties[array].items: missing field.
* GenerateContentRequest.tools[0].function_declarations[5].parameters.properties[array_optional].items: missing field.
* GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[array_optional].items: missing field.
* GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[array].items: missing field.
(status: INVALID_ARGUMENT)

To Reproduce

For issue 2 I followed the install guide as stated (except for script change I made in error 1) and I get the error.
For issue 3 I use the example prompts on GitHub on both models with errors. Ollama llama3.1 is set as default and I change model when using Gemini. If I omit the %functions% I'll get a response from either model just w/o the function obviosuly.
aichat -r %functions% what is the weather in Paris and Berlin
aichat -m gemini -r %functions% what is the weather in Paris and Berlin

# Search the web function
aichat -r %functions% lastest version of node.js
aichat -m gemini -r %functions% lastest version of node.js

# Execute command function
aichat -r %functions% what is my cpu arch
aichat -m gemini -r %functions% what is my cpu arch

Expected behavior

Expected behavior install without errors and all functions work correctly when called.
Screenshots/Logs

Environment

Linux test <IP_ADDRESS>-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux argc 1.20.0 jq-1.7 /usr/bin/bash GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu) /home/linuxbrew/.linuxbrew/bin/node v22.5.1 /usr/bin/python3 Python 3.12.3
Additional context

The project doesn't state if certain models are required to run functions. I understand that llama3.1 does support functions and I assume you include Gemini and a few other providers as they do as well. But for some reason I can't get them to work so was just wondering if only certain providers/Local LLMs support these functions? If so I think they should be called out.
My config only has the two LLM providers in it nothing else. Should I have other config options enabled?

Let me answer them one by one.

'not finding Python' should not be blamed on llm-functions.

run argc link-web-search to link to a web search tool.

ollama don't support streaming tool use (do support non-streaming tool use). gemma has no problem.

If you confirm that gemini has a problem, please submit an issue in aichat.

Let me answer them one by one.

'not finding Python' should not be blamed on llm-functions.
run argc link-web-search to link to a web search tool.

ollama don't support streaming tool use (do support non-streaming tool use). gemma has no problem.

aichat -S for non-streaming api.

I agree with issue 1. I'm sure it was an issue on my end.
For 2, thanks I didn't interpet the link help correctly in the output to know I had to use one of the options in the tool section.
For issue 3 I'm still having issues.
I switched to gemma2:9b as you stated Gemma models work and I still get the warning;
aichat -S -m ollama:gemma2:9b -r %functions% what is the weather in Paris?
For Gemini I still get errors I'll open a issue in aichat as requested.

@grizzlycode

WARNING: This LLM or client does not support function calling, despite the context requiring it.

If you received the above warning, you might be missing the model configuration supports_function_calling: true.
https://github.com/sigoden/aichat/blob/5c559f616a79b5bcc86b080a9cc914cace8cedef/config.example.yaml#L175

@grizzlycode

WARNING: This LLM or client does not support function calling, despite the context requiring it.

If you received the above warning, you might be missing the model configuration supports_function_calling: true.
https://github.com/sigoden/aichat/blob/5c559f616a79b5bcc86b080a9cc914cace8cedef/config.example.yaml#L175

Ok I think that did for llama3.1 it works now. Seems to be a mixed bag though
If I just ask for Paris it works, however if I ask for both Paris and Berlin it breaks
aichat -S -m ollama:llama3.1 -r %functions% what is the weather in Paris and Berlin

Call get_current_weather {"query":"Paris"}
error: unexpected argument --query found
Tool call exit with 1

Also it doesn't look like Gemma2 supports functions I get this
 aichat -S -m ollama:gemma2:9b -r %functions% what is the weather in Paris?

Failed to call chat-completions api
Caused by:
gemma2:9b does not support tools

Haven't you updated the functions.json file in a while? The correct parameter is location, not query. please run git pull origin main && argc build to update to latest version.

Not all models support tools; Gemma2 does not support tools; see https://ollama.com/library/gemma2.

This is a fresh clone of the repo today, but I rebuilt it as instructed. The local LLM issue seems to be good now. I'll continue troubleshooting Gemini tomorrow. Thanks for the help. By the way this looks like a great project and I look forward to using all the functions thanks for speedy support and your time!


brave: 1.17.73 -> 1.18.70

Motivation for this change
Web browsers must be kept up-to-date.
Things done

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

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

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

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/298

This update also contains security fixes. Could you backported this to 20.09?
https://nixos.org/manual/nixpkgs/stable/#submitting-changes-stable-release-branches

@danieldk :+1:  https://github.com/NixOS/nixpkgs/pull/107087


ruby: fix soname tag

Motivation for this change
Fix this issue - https://github.com/NixOS/nixpkgs/issues/85001
Things done

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

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

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

cc @alyssais @ryantm

cc @manveru @vrthra @alyssais


When replacing Controller.Dispose with an explicit implementation the base Dispose is an action

public class HomeController : Controller, IDisposable
{
        void IDisposable.Dispose()
        {
            Debug.WriteLine("Got disposed");
        }
}

If you define this controller, then /Home/Dispose will be routed to the Controller.Dispose() method and will call it as an action.
Note that this requires you to reimplement IDisposable on the subclass. Just overriding the protected void Dispose() would not have any deleterious impact.
This is a similar case that also reproduces the bug:
public class HomeController : Controller
{
        public new void Dispose()
        {
            Debug.WriteLine("Got disposed");
        }
}

Shouldn't this cover that last case? DerivedController (which is being tested) has this; https://github.com/aspnet/Mvc/blob/b56cab6414401e01c96d9ea8c4eabdd653720d4c/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultApplicationModelProviderTest.cs#L995-L997

That covers the negative case. DerivedController.Dispose() should be considered an action since DerivedController doesn't declare IDisposable


#182 Addition: missing license for pgAdmin

Addition to #182, which has been closed by #388.
Adds the required license of pgAdmin to the documentation.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 61.165%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
5299

Relevant Lines:
8335

💛  - Coveralls


weird glitchy text

Describe your bug here.
I don't know why, but certain songs have their names glitched. It mostly happens to the songs that have colored names, but I've seen some songs that have the default white color glitched too. I don't even know how they are colored or how to change the color. This happens in 6.3, in 6.2 they look fine. I've also noticed that a song with dots in it crashes in 6.3 but works fine if I remove the dots.
6.3:

6.2:

Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
I didn't

alphabet stuff changed in 0.6.3 related to xml and a whole lot more

alphabet stuff changed in 0.6.3 related to xml and a whole lot more

what do I need to do to fix this?

ok I found out, I just needed to delete the alphabet png and xml from the mod's folder, however it's still weird that you can have dots in the song's name in 6.2 but not in 6.3.


tf2onnx 1.6.3

Type: Missing
Summary:
tf2onnx 1.6.3
Details:
Add Apache-2.0 license
Resolution:
License Url: https://github.com/onnx/tensorflow-onnx/blob/master/LICENSE
Pypi url: https://pypi.org/project/tf2onnx/
Affected definitions:

tf2onnx 1.6.3

@navinnarra - it looks like the license at the time this package was published is MIT - https://github.com/onnx/tensorflow-onnx/tree/d4abc8b1d0f7d3115d4dfe90e1c2030c42dfbe28.  Also, the license file in the package is MIT.  If you agree, I will update this PR to "MIT."

@ariel11 Your proposed change makes sense to me. Thanks for checking this.


Bump Dependencies #1592829839

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/1592829839

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


add autofocus prop to form input components

HTML inputs support an autofocus attribute that specifies that an input should have focus when a page loads.
Would love to have this as a prop for form components, it's something we'd like to use on checkout.

@stuller Should we have autofocus as a specific prop? or just pass down props on all components using like a prop spread or something.

passing down all props with a prop spread would be great.

Fixed by https://github.com/DigitalRiver/react-atlas/pull/705


(PUP-7926) Fix capitalization in regexp

Avoid overmatching characters between "Z" and "a" (such as _ or ^), should be a-zA-Z, not a-zA-z
Otherwise this is over-matching (matches anything between ASCII A and ASCII z, which is much more than just characters).

This is a re-creation of https://github.com/puppetlabs/puppet/pull/6184 - I failed to update the commit message and update the pull request appropriately. This was easier.

CLA signed by all contributors.

FWIW - I'm fine with this going against a branch older than master, like 5.3.x

Changed it to 5.3.x - It could probably even go against the 3.x branch.

Rebased onto puppet 5.3.x branch to remove errant merge commit

Upstream PR for pathspec
https://github.com/highb/pathspec-ruby/pull/16

Reworded the commit to follow guidelines.  Thanks for this and upstream PR @incase!

CLA signed by all contributors.


How to run an agent?

Hi~
after execute in windows 7 x64:  snmpsimd.py --data-dir=./data --agent-udpv4-endpoint=<IP_ADDRESS>:1024, I got error here:
ERROR: agent endpoint address(es) not specified

This seems to have something to do with command-line options parsing. That is, it does not hit any of the networking code yet.
May be try to replace = with   in case Windows shell eats =? Alternatively, there is this args-from-file option.

I tried:
snmpsimd.py --data-dir ./data --agent-udpv4-endpoint <IP_ADDRESS>:1024

it's still not working, and get the same error, i use python 3.7


Feature/bsk 613 smooth translational profiler

Tickets addressed: bsk-613
Review: By commit
Merge strategy: Merge (no squash)

Description
A smoothing option is added to the prescribedLinearTranslation module that smooths the bang-bang and bang-coast-bang options using cubic-spline acceleration profiles. This option is added to improve the verification of the prescribed motion state effector module and reduce the likelihood of exciting flexible modes of the spacecraft components. As a result of this update to the module, there are now four available options to configure the module: bang-bang, bang-coast-bang, smoothed bang-bang, and smoothed bang-coast-bang.
The first 13 commits of this PR are changes that are made to the existing profiler module to prepare and organize the module for the addition of the smoothing profilers. The following commits are changes made to add smoothing to the module.
Verification
The module unit test is updated to check the smoothed profilers. In addition to checking that the translational positions converge to the reference values, the numerical derivative of the profiled displacements and velocities is determined across the entire simulation and then checked with the module's profiled acceleration and velocity to ensure the
profiled acceleration is correctly integrated in the module to obtain the displacements and velocities.
Documentation
The module documentation is updated to discuss the mathematics for the smoothed profiler options.
Future work
N/A

The module is ready for review now @schaubh

I finished making your requested changes to this PR @schaubh


Working in repo's subdirectory

I think Gollum should be able to work in a subdirectory of a repo instead of only root of it.

Welcome to the past! VAX-like flat file system! Must love the 70's. I hope I can meet one of this fine Gollum designers one day, we seem to belong to the same generation. Bootcut pants and striped shirts with huge collars. Is there a limit at 29 pages tops? You know, don't trust anything above 30. Just to set my expectations. And you can't use words that start with P,Q and R. And the reason, you've guessed it, was that it was "a specific design goal of Gollum to prevent the use of P-, Q- and R-words". Do you need to hear anything else? Closed.


Gotenberg Core dumped on service start

Describe the bug
Gotenberg crashes immediately on startup
Steps To Reproduce
Enter the following into your nix config:
services.gotenberg = {
    enable = true;
}

Expected behavior
It not crashing but starting up normally
Screenshots

Additional context
Gotenberg was to be used in conjunction with paperless-ngx.
Here is the entire file
Notify maintainers
@pyrox0 @SuperSandro2000
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[dominik@xenon:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.50, NixOS, 24.11 (Vicuna), 24.11.20240910.1355a0c`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.5`
 - nixpkgs: `/nix/store/qpg5mwsind2hy35b9vpk6mx4jimnypw0-source`

Add a :+1: reaction to issues you find important.

Are there any more logs from the Gotenberg service? Or is the coredump all that's available?

Are there any more logs from the Gotenberg service? Or is the coredump all that's available?

Sadly that is all.
The service log literally doesn't say anything.
There you only see that the service started and immediately exited.
This log i got by typing sudo journalctl -xef

Sorry for the slow response, but I looked at this and figured out the issue. Could you test this and see if it fixes your problem?


Cool Project!

Hi there 👋🏼
Just stopping by to say that this is a cool project, and I hope it goes well! I worked on something similar, and if there's any way it can help, that's great.
Best of luck! (You can close this. 🙂)

Thank you 🤩
Your project seems awesome! We probably have similar goals, and could benefit from each other! I hope both can contribute to the Elixir Ecosystem 🚀

❤


Cannot use glob pattern with wildcard in the middle of the path.

This pattern work
copy({
  resolveFrom: 'cwd',
  assets: {
    from: [
       '../../../../node_modules/my-package/build/assets/**/*',
    ],
    to: ['./build/assets'],
  }
})

But this doesn't
copy({
  resolveFrom: 'cwd',
  assets: {
    from: [
       '../../../../node_modules/**/build/assets/**/*',
    ],
    to: ['./build/assets'],
  }
})

And throws me a weird error...
i Resolve assert pair to path from: /workdir/packages/myproject/backends/standalone
i Watching mode enabled for all asset pairs, you can disable it by set watch to false in specified asset pairs
i Watching mode disabled. You need to enable build.watch option for watch mode to work.
✘ [ERROR] Cannot read properties of undefined (reading 'slice') [plugin plugin:copy]
    /workdir/node_modules/esbuild-plugin-copy/dist/index.js:84:28:
      84 │       preservedDirStructure.slice(1)
         ╵                             ^
    at copyOperationHandler (/workdir/node_modules/esbuild-plugin-copy/dist/index.js:84:29)
    at /workdir/node_modules/esbuild-plugin-copy/dist/index.js:152:17
    at Array.forEach (<anonymous>)
    at executor (/workdir/node_modules/esbuild-plugin-copy/dist/index.js:151:18)
    at /workdir/node_modules/esbuild-plugin-copy/dist/index.js:173:13
    at async /workdir/node_modules/esbuild/lib/main.js:1494:27
  This error came from the "onEnd" callback registered here:
    /workdir/node_modules/esbuild-plugin-copy/dist/index.js:106:22:
      106 │       build[applyHook](async () => {
          ╵                       ^
    at setup (/workdir/node_modules/esbuild-plugin-copy/dist/index.js:106:23)
    at handlePlugins (/workdir/node_modules/esbuild/lib/main.js:1292:21)
    at buildOrContextImpl (/workdir/node_modules/esbuild/lib/main.js:978:5)
    at Object.buildOrContext (/workdir/node_modules/esbuild/lib/main.js:786:5)
    at /workdir/node_modules/esbuild/lib/main.js:2196:68
    at new Promise (<anonymous>)
    at Object.context (/workdir/node_modules/esbuild/lib/main.js:2196:27)
    at Object.context (/workdir/node_modules/esbuild/lib/main.js:2036:58)
    at build (/workdir/packages/myproject/backends/standalone/build.js:16:33)
/workdir/node_modules/esbuild/lib/main.js:1649
  let error = new Error(text);
              ^
Error: Build failed with 1 error:
/workdir/node_modules/esbuild-plugin-copy/dist/index.js:84:28: ERROR: [plugin: plugin:copy] Cannot read properties of undefined (reading 'slice')
    at failureErrorWithLog (/workdir/node_modules/esbuild/lib/main.js:1649:15)
    at /workdir/node_modules/esbuild/lib/main.js:1058:25
    at /workdir/node_modules/esbuild/lib/main.js:1525:9 {
  errors: [Getter/Setter],
  warnings: [Getter/Setter]
}

More investigation,
Seems like a multiple assets pattern with no middle wildcard this didn't work as well...
This work
copy({
  resolveFrom: 'cwd',
  assets: {
    from: [
      '../../../../node_modules/my-package-1/build/assets/**/*',
    ],
    to: ['./build/assets'],
  }
})

This work
copy({
  resolveFrom: 'cwd',
  assets: {
    from: [
      '../../../../node_modules/my-package-2/build/assets/**/*',
    ],
    to: ['./build/assets'],
  }
})

This doesn't
This work
copy({
  resolveFrom: 'cwd',
  assets: {
    from: [
      '../../../../node_modules/my-package-1/build/assets/**/*',
      '../../../../node_modules/my-package-2/build/assets/**/*',
    ],
    to: ['./build/assets'],
  }
})

Oh, It's the same issue as
https://github.com/LinbuduLab/esbuild-plugins/issues/105
Seems like this issue was opened a really while ago.


Fix for gRPC empty response for userServer.Dispach method

[#golangsyd]

Codecov Report

Merging #4 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #4   +/-   ##
=======================================
  Coverage   49.82%   49.82%
=======================================
  Files          13       13
  Lines         291      291
=======================================
  Hits          145      145
  Misses        133      133
  Partials       13       13

Continue to review full report at Codecov.

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


Expose press summaries in search results

Currently we filter out docs so that only docs in the judgment collection are shown in the EUI search results, to be in line with the PUI where we have decided not to show press summaries in search results.
This doesn’t really make sense in EUI, as we want to see all unpublished judgments in the EUI (even though editors do normally just work from Jira and not the unpublished list/ search results)
Changes in this PR:

Expose press summaries in search results

Trello card / Rollbar error (etc)
https://trello.com/c/GlNGCcIC/1240-eui-expose-press-summaries-in-eui-search-results
Screenshots of UI changes:
Before

After

I've just realised we have the NCN bug here since we have
    @property
    def neutral_citation(self) -> str:
        """
        :return: The neutral citation of the search result
        """

        return self._get_xpath_match_string("search:extracted/uk:cite/text()")

on SearchResult.
We will need a best_human_identifier, but it gets complicated now since this is a search result and could be either judgemtn or press summary and eventually others.
First option is to just have something like

@property
def neutral_citation(self) -> str:
    """
    :return: The neutral citation of the search result
    """

    return self._get_xpath_match_string("search:extracted/uk:cite/text()") or self._get_xpath_match_string("search:extracted/PRESS_SUMMARY_NEUTRAL_CITATION_PATH")

thoughts @jacksonj04 @dragon-dxw ?

LGTM, we just need to yank the judgment-specific flavours from the API as well.

Yeah I had added the judgment specific method to the api just so we didnt have to remember to filter by judgment in PUI and EUI but since it is only needed in PUI now we can probably remove it when we want but not an urgent thing


refactor: validate phoenix paths

I saw on the readme that there are some plans to support "flavors" of validations.
Currently I see some projects that I'm involved in just ignoring the *_web (and its test) folder to avoid this library's errors.
My first commit on this branch (https://github.com/mirego/credo_naming/commit/a00afcbc3b8c348c15932b37ca37c3351ed46f7b) just adds something like this "flavor" idea.
But after some tries, I saw that the current code is making some strange validations:

on the suggestion list there are some dot-separated paths, such as lib/my_app_web.service.user_controller.ex and lib/my_app_web/service.user_controller.ex that makes no sense for me;
also there is an option repeating the file name like lib/my_app_web/service/user_controller/user_controller.ex for a module named MyAppWeb.Service.UserController`:
this problem also gives us some false negatives, like when you have a module named Service.MyContext that is wrongly placed  in /service/my_context/my_context and the current behavior says it is ok.

Then I came up with a little refactor on this path validation also mixing up with the newly "phoenix flavor" by default (so there is no option such as in first commit to enable phoenix validation).

@duzzifelipe Hi! Terribly for the long delay on this 🤦♂ I think what this PR needs is just some tests to make sure these newly supported cases are documented. What do you think?

@remi I entirely forgot about tests. Now I wrote them and also split the phoenix-specific validation into a module. This way, users can choose if they will check for phoenix naming consistency.

@duzzifelipe any chance to get this moving?

@prem-prakash its currently just waiting for review.
I think there is a decision from @remi with 2 breaking changes I've inserted:

no support for filenames with dots, such as my.controller.ex (the only format accepted now is my_controller.ex);
no support for "index" files. Before you were allowed to have my_app/context/context.ex with a module named MyApp.Context (the file and the previous folder with same name). With this PR, having a file in my_app/context/context.ex would require a module named MyApp.Context.Context

Ok, about the breaking changes:

no support for filenames with dots -> acceptable
no support for "index" files -> very questionable, because contexts are a pattern in the elixir/phoenix community, and having a MyApp.Context.Context is not an acceptable requirement (IMHO). Any chance of accepting of adapting your PR to accept a my_app/context/context.ex to be named MyApp.Context?

@prem-prakash I changed the PR to put this "context index" pattern back. I removed it because I was trying to be as much simpler as possible by just converting module names into paths directly.
Take a look at my last commit. To be honest, I didn't like it too much, but I don't have any other idea on how to do this since I must duplicate the list of valid paths

Hey @duzzifelipe, it looks good enough to me.
@miregoit can take a look, please?

:tada: This is great! I’ll wait for the CI build and then merge it.
I’ll then document the new plugins option in README.md, changes in CHANGELOG.md and cut a new release. Probably 2.0.0 because of the “dot-in-filenames” breaking change. What do you think?

@duzzifelipe Yep it should. Please rebase your branch against master! 🙏

@remi done

All green, let’s go! 🚀

@duzzifelipe @prem-prakash credo_naming 2.0.0 has been published! 🎉

@duzzifelipe I also added you to the README.md’s contributors list 🙌


xds: implement extension config discovery for HCM

Commit Message:
Implements a filter config discovery client. Modeled after RDS with a few differences:

subscriptions are shared between unique config providers;
streams are started via one of two targets: the subscription target for a warming case and the provider target for a non-warming case.

Remaining items to finish:

[x] wire stats to the client
[x] unit and integration tests
[x] documentation
(later PR) config dump

One interesting issue with contextual validation is that adding a context may invalidate a resource in xDS (e.g. adding a reference to a filter config as a terminal filter in the filter chain after the non-terminal filter config is received).
Risk Level: low (the code is not activated unless the config is used)
Testing: manual for now
Docs Changes: needed
Release Notes: add a filter config discovery client
Fixes: #7867

@kyessenov before diving into the details, I guess it might be worth discussing whether it's worth having another config-specific management code for FilterConfigDS. I.e. there is a ton of conceptual and implementation complexity in both RDS and FilterConfigDS in terms of how warming, shared configuration, thread-local state and provider/subscriber notions are handled. Can we unify them?
I think the one thing that might make some abstraction and reduction of complexity hard is that RDS needs to deal with VHDS and SRDS as well. Nonetheless, it's worrying that we are continuing to expand the amount of config state management complexity when we have these common patterns in RDS and FilterConfigDS. Any thoughts on how to make this better?

@htuch RDS is mired in the complexity of SRDS and VHDS so it's really hard to reuse it's pieces. The sharing model is also rather strange (shared provider with shared subscriptions), so it would need some refactoring to become reusable. I thought about that, but it's so intertwined that it's hard not to break.
The warming bit is interesting since it's not present in any other xDSes, so that's novel.
I agree that the majority of the code is just glue, but not sure if it's going to make it simpler to understand if we abstract all the glue into some framework.

TSan failure in VHDS integration test seems irrelevant.

Two more test flakes... Not sure how I can deflake it.

Added integration tests. PTAL.

How do I debug failures on Azure? I don't have a gcc build setup. 1000 iterations means I need to run it for 4 hours? Is that really the requirement to add an integration test?

How do I debug failures on Azure? I don't have a gcc build setup. 1000 iterations means I need to run it for 4 hours? Is that really the requirement to add an integration test?

Run it locally and check for flakes? How does that take 4 hours? Yes, checking for flakes is required when adding a test like this as dealing with flakes in CI is hugely costly.

It takes 14.4s to run once with Asan. Trying it without Asan.

It takes 14.4s to run once with Asan. Trying it without Asan.

Doing things in parallel might help (as bazel does). ;)
In any case, you clearly have a flake which was already exposed in the previous run, there may be more. These must be fixed. Thanks!

OK, I'm stuck on figuring out why integration test framework flakes for me. I'm seeing delayed connection error 111 on a test request sometimes, and I have no idea why the connection is rejected.

Integration fiasco might be linked to https://github.com/envoyproxy/envoy/issues/11871. Listeners is marked as ready (in both waitUntilListenersReady and the stats), yet the connection is refused.

Tested a few times with 100 iterations. --runs_per_test=1000 causes time out issues (I guess it's too much load for my 32 cores).

Does it time out in your test or elsewhere?

I haven't tried other tests. I just ran it again, and got 2/1000 failures:
[2020-07-23 17:22:47.059][12][critical][assert] [test/integration/http_integration.cc:389] assert failure: result. Details: Timed out waiting for new stream.
[2020-07-23 17:22:47.148][12][critical][backtrace] [bazel-out/k8-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #2: Envoy::HttpIntegrationTest::waitForNextUpstreamRequest() [0x4faf00]

It looks like it times out at default timeout which is 10s. Maybe I need to bump it?

2/1000 is probably OK to merge but unfortunately we have a real issue right now with test flakes and this is bound to fail in super slow CI. cc @alyssawilk for thoughts on ^.

Thanks. I agree that the flakes should be burnt with fire. I find it very hard to write a non-flaky test in the framework though.
I found a way around it. I made HCM do a direct response, and that fixed the flake. There must be another race between the upstream being ready, and the readiness checks I have in my test.

Somewhat relevant question: is there a way to simulate the integration tests with an out-of-process test driver? I like that the test is very sensitive to timing, but would prefer to use the common agents (which are in golang usually). I think I'd need some way to receive a fast update about internal events (server initialized, metric counter incremented). Currently, we depend on polling which does not allow detecting O(ms) races.

@kyessenov unfortunately the integration tests are flaking regularly on master. PTAL tomorrow to see if you can fix. Otherwise I will need to revert and I can help you fix if you can't figure it out. Thank you!

I noticed it fail once locally. Could it be there is a delay between when listener is accepted and applied? I suspect there's some latency between when a filter config provider posts TLS and when a worker picks it up.

(by listener applied I mean HCM receives the accepted filter config)

OK, seems like some destruction sequence:

[2020-07-24 05:22:24.959][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #1: Envoy::Config::GrpcMuxImpl::queueDiscoveryRequest() [0xf32183]
[2020-07-24 05:22:24.962][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #2: Envoy::Config::GrpcMuxImpl::GrpcMuxWatchImpl::~GrpcMuxWatchImpl() [0xf35141]
[2020-07-24 05:22:24.965][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #3: Envoy::Config::GrpcMuxImpl::GrpcMuxWatchImpl::~GrpcMuxWatchImpl() [0xf3519e]
[2020-07-24 05:22:24.968][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #4: Envoy::Config::GrpcSubscriptionImpl::~GrpcSubscriptionImpl() [0xf3092a]
[2020-07-24 05:22:24.971][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #5: Envoy::Filter::Http::FilterConfigSubscription::~FilterConfigSubscription() [0xe7235b]
[2020-07-24 05:22:24.974][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #6: Envoy::Filter::Http::DynamicFilterConfigProviderImpl::~DynamicFilterConfigProviderImpl() [0xe70416]
[2020-07-24 05:22:24.977][34][critical][backtrace] [bazel-out/k8-opt/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:96] #7: Envoy::Filter::Http::DynamicFilterConfigProviderImpl::~DynamicFilterConfigProviderImpl() [0xe705ee]

I'll take a look.

Merged master and it happens a lot more frequently. Must have been some recent changes.

Let's see if https://github.com/envoyproxy/envoy/pull/12268 fixes it. It passed with 1000 iterations locally.


Ibrahim

Update donation page, with

Network switch modal
Currency switch modal

managing network and currency state on url
deployed test usdt on sepolia for test smart contract

@IbrahimIjai  Thanks for the update. I will take a look and keep you updated


Ghost hints not showing up on archipelago text client (or HintMachine)

After updating from rando version 3.2.4 to 4.0.1 ghost fox hints are no longer showing up in archipelago text client or the third party tracking app HintMachine. When troubleshooting this i downgraded my server and forgot to downgrade the game and it still didn't send me hints on a freshly generated seed. When i did downgrade the game rando version it did start to give ghost fox hints again leading me to believe the issue is the game not sending the hints to the server.

Thanks for the report, I will look into it when I get a chance! In the meantime, I would double check that the setting for sending hints is enabled (in the options menu under Randomizer Settings -> Archipelago Settings -> Send hints to server). I don't think it would be the case, but it's possible it got turned off somehow after the update? I should also note that not every ghost hint can get sent as a hint, only certain ones do (ones that mention a specific location in your game e.g. mountain top, 20 fairies, etc.)


Incompatibility with updated SQLAlchemy (v1.4)

Tests failed with a new version of SQLAlchemy (v1.4)
https://github.com/COSIMA/cosima-cookbook/runs/2128612003#step:5:63
E           AttributeError: 'DataFrame' object has no attribute 'experiment'

Errors went away when SQLAlchemy was pinned to a version <1.4.
It seems version 1.4 had some major updates which might break undesirable/deprecated usage patterns.
https://docs.sqlalchemy.org/en/14/changelog/migration_14.html

Error was flagged in this PR https://github.com/COSIMA/cosima-cookbook/pull/234

Looks like this wasn't pinned for the latest conda environment, I'll tackle it now.

I can re-pin. Probably not a bad idea in any case.

Haved pinned to sqlalchemy<1.4 and error has been resolved for the time being.

Closed with #283