Log refactoring

to #2821
This might need some reviewing and testing. I will yet adjust repo class itself to remove unnecesary methods.
@larshp But it already demonstrates what I was talking about in #2821. So in essence:

zcx may optionally receive a log instance
Example of usage is in zcl_abapgit_objects=>delete - all handling on it's way is removed and it bubbles up till ...
... the GUI catches the exception and checks of log is there, and show is. (yet to do the gui_page error rendering feature - I didn't touch it)
the log class got 2 new features (not used in the code though yet): merge_with and from_exception. The first will be very useful to merge logs created in different parts of the code (e.g. mass serialization). The second is for converting one sception to a log, shell we decide to choose log as a main way to communicate with user
added some UTs for the log

UPD:
6) log can also clone, and merge_with( min_level ), where level is severity of message
The rest of changes are more or less unifications of log usage in various places (needs testing)

Hmm, looks like the standalone version moves the exception class to the top (makes sense) but it requires zif_abapgit_log. Which by the way require zif_abapgit_definitions ...

hmm, and the some of the interfaces use the exception classes, perhaps adding more logic to abapmerge will fix this scenario

thanks for the refactor. much better this way. 👍
i don't know the abapmerge internals, but can't the exception classes be handled with the same dependency tree/ check like the other classes and interfaces? On a quick view, I don't see any circular deps, so it should work.

abapmerge: it is not a circular dependency. It is just the fact that zcx_exception is defined (forcefully) at the very top of the file. I think either definitions&zif_log should also forced to the top. Or (crazy idea) define log as a ref to object in zcx and some simple way to convert it to log back e.g. zcl_log=>cast_obj_to_log( ). Not sure which is better. The latter approach is a crutch ... but it decouples things ... :)

Hehe, now this pops up at every deserialize :))))

Maybe still some room for fixes ... :)

We should also check if "Log" shows up in the menu (if it contains messages). It was one of the things that didn't work with uninstall.

the standalone works if you first put all interface deferred, then all zcx* classes, then class deferred, then all zcl* classes.

We should also check if "Log" shows up in the menu (if it contains messages). It was one of the things that didn't work with uninstall.

It doesn't. I mean, I didn't check but current does not suppose this really. Needs some more refactoring to get it back

OK, so ready for review again. I wouldn't say this is ideal. But I got rid of the log in the repo. The log class gained some useful features. And the log handling os more or less unified in UI (though there is a room for improvement). Needs a review and testing.
P.S. abapmerge issues are fixed in relevant PRs.

Code looks good on my iPhone 😀 Many touched files. I will test tomorrow to get this merged quickly.

I tested deserialize and uninstall. took a long look and added some comments.

deserialize: always log popup (easy fix provided)
uninstall: no log popup and not error message althought exception was raised
deserialize and uninstall: log not available in menu

the code is certainly better but we lost a core feature: being able to view the log after the process is done no matter the state. we should be able to view the log even if it's all green and also in case of any exception.
the key problem I see is that the log will only be available (via mi_last_log) if an exception was raised with ii_log set. however, if any other exception occurs before that or if no exception is raised at all, then mi_last_log is not set and does not show in the menu.
now there's a mixture between exceptions and the log which makes things more complicated. we basically have to think for every exception whether it's caught and added to a log or whether it needs the log object and set it itself. i think it's better to keep them separated.
the only way i can see logging work consistently, is if the UI layer creates the log and passes it to the process. the process can then log whatever it wants. it can catch exceptions and log them or let other exceptions raise up to the UI (stopping the process). but the log would always be there in the UI.
we have mi_last_log at gui_page level. that's good and it should be the only log object we need. here's how i think it should work for example in gui_router->repository_services:
WHEN zif_abapgit_definitions=>c_action-repo_purge.
  " set the log in event constructor or via gui_services to reference mi_last_log
  li_log = ii_event->get_log( )->clear( )->set_title( 'Uninstall log' ).
  zcl_abapgit_services_repo=>purge( iv_key = lv_key ii_log = li_log ).
  if li_log->li_log->get_log_level( ) >= zif_abapgit_log=>c_log_level-warning.
     zcl_abapgit_log_viewer=>show_log( li_log ).
  endif.

this would work with any process that wants logging. it also remove the create log and show log logic from the process(es).
i know that's a lot and quite a bit different but it's a tricky subject that really needs work.

Requirements:

log is the result of operation, negative or also positive
not all operations can produce log
not all of operations should reset current log state
we want to decouple log from repo
we want a proper systematic place/approach to keep log
log may have a title (questionable, see below)

So let's "helicopter view"
Problem one: location of the log
We have GUI class as a singleton controller for all UI stuff, it contains the stack of event handlers and the current page. The current page may consist of components (if we follow the POC I made with new-online page and imho it is a proper way - remove inheritance, introduce composition).

Each component may be an event handler as well. + the router. A user may call a command which may land in different event handlers (including global router which does not know about current page). Also consumers of the log may appear on different levels potentially (if log is available - hide/show buttons)
So we need some common denominator - where the log will stay. And page is not the best place. Because of the router. And because of the fact that page may consist of decoupled components without common base (in current concept there is mx_error or mi_last_log in the page_base but it is bad imho).
The only common denominator seems to be the GUI instance (accessible via GUI services). Which makes log a global variable. But it is a global variable anyway. More on that below.
Problem 2: where the log instantiates
There are 2 approaches - from top or from bottom. Currently most of the code supposes "from top" - ii_log is passed as a param. So it must traverse all the layers. I think it is suboptimal. And less flexible. And demand additional is bound checks in the lower levels of code. I think it should be bottom to top. So, say, serializer creates a log instance as a deliverable. Then repo instance can merge serializer logs together, add own messages on top and pass above and so on.
But ! If we return log, how we return the actual result ? Options:

via exception ! Exception is not coupled with the log logically - it is a transport. This is OK imho. But ! We cannot use it for info/warning. So does not fit for all cases
via return structure - one piece is out result, another is a log instance. This is ugly.
and, my favorite, via an interface. A class (e.g. repo) may implement zif_loggable which will expose get_log or get_log_messages (better imho) and which can be target for log->merge. So

  create object global_log.
  create object x.
  some_stuff = x->run.

  global_log->merge_if_loggable( x ).
  " which checks if X is loggable and acquires the messages

clean and universal. Though will need to convert some static stuff into instances.
And thus the log will bubble up and aggregate.
And then it can be assigned to gui via gui_service and be accessible for all consumer who wants it.
And ! Exceptions ! They are still here. They are a transport of a log with errors. However, with zif_loggable it may give one potential option. It can be a log instance. Or ! It can be me of the caller. Which may implement loggable. Maybe raise can even get it from stack automatically ... (can it ???).
Advantage: no direct coupling with zif_log, the reference can be to object.
Disadvantage: we expose lower level instance to higher level, kind of insecure.
But potentially more elegant and automatic.
Let's get back to Problem 1 and global var issue. In this concept I think it is inavoidable to have log as a global var ... But i'm thinking how to reduce the scale of the disaster. And I think that maybe we should have not the log global var but some kind of operation_context - a bigger objects which would hold a log, an operation title (instead of the log which is a bad place in fact, especially if we consider merging), a repo (!) - the context is maybe a better place for the repo instead of passing instance between the components AND to make pages less dependent on creation parameters and make them more stateless (which could be good for web version eventually).
How this solves "log global var issue" - it does not directly, but it would be harder to forget to reinitialize the context properly that to reset a global log instance, there will be no "reset log", instead we will create new contexts.
Looking forward for comments and judgements
And sorry for the long read :)

Thanks for the detailed analysis. It is quite technical. I'm still kind of new here ;-) and we are discussing a complete re-design. So I'm asking myself... Why is AG doing logging differently than other ABAP applications? Why do we need a different logging framework? Why not standard SAP application logging? I have the feeling that we are reinventing something here.
Refined requirements:

log is the result of one or more operations, negative or also positive
not all operations can produce log, but processes with many steps shall log operations
no operation should reset current log state. the application (AG) shall be in control of opening, closing, and displaying the log
we want to decouple log from repo
we want a proper systematic place/approach to keep log
log may have a title (questionable, see below), but start/end of operations must be identifiable
it shall be possible to persist logs (via setting)
logging shall work for dialog and background processes

No one likes BAL_... function calls but there are solutions hiding this complexity (like ABAP-Logger). Everyone understand how it works and there's no need for "contexts", "interfaces", "passing log instances up or down", "is bound checks", "merging" etc. The process is simple: open log, any (!) operation can add messages, close log
Let's use an example: "pull"
There are multiple operations: "serialize local files", "login remote", "get remote files", "calculate diff", "check deserialize", "user decisions", "deserialize objects", "activate objects"
Currently only "deserialize objects" is logged. Ideally however, the end-to-end process should be logged and optionally the log should be persisted (audit requirement of who did what when).
I will use abap-logger because it's so easy to understand and use. I'm not saying we should use this library but the pseudo code below should show how I see it work in principle.
Problem 1:
Processes might span multiple pages or components. So, yes, the global GUI class provides the logging service.
CLASS-DATA: gi_log TYPE REF TO zif_logger.

class-method get_logger.
  ri_log = gi_log.
endmethod.
class-method set_logger.
  gi_log = ii_log.
endmethod.

Problem 2:
When a process begins, it opens a new log. It's "from top" and it's in the UI layer (outside of "operations").
gui=>set_logger( zcl_logger_factory=>create_log( object = 'ABAPGIT' subobject = 'LOG' desc = 'Pull' ) ).

Operations just get the logger instance and add messages. No import or export of the log. This way we can add logging anywhere in AG.
li_log = gui=>get_logger( ).

li_log->( 'Operation description...' ).
loop at ...
  li_log->add( 'details' ).
endloop.

Problem 3:
Using an auto-save of the log (persist each message immediately) avoids having to close the log explicitly. So we can retrieve the current log anywhere: Directly at the end of the process, via a menu item later, etc.
gui=>get_logger( )->show( ).

As you wrote, GUI is already global. Therefore, I don't see the problem of a global log included with it.
Just my 3 cents.

Reinventing - quite probably. But I would not compare to a regular abap app.
First, a regular logging abap program is one operation, not an interactive tool. A global log for the whole execution would be fair for one-action-prog (for AG this scenarios is for background jobs only).
Secondly, I'm not sure abap follows "leading practices" in logging. E.g. what I described took some ideas from JS projects I know. I think it would be a better benchmark.
Having said this, I think we are talking about very close things. Just disagree on some details.
E.g. top-to-bottom, bottom-to-top. If there is a GUI service to provide log, then e.g. object_deserializer will know about GUI. Where is the GUI and where is the deserializer? This would be a very strong coupling. I think I have to commit some code to show what I mean with loggable idea.
Context/no-context: this is more subtle. The idea is that context is potentially less error prone, then global log. Intuitively. Maybe it should be in a separate PR ... because actually it is another subject.

  "@router
  "do_some_action

  context = gui_services->get_context( iv_create_new = abap_true ).
  context->set_title( 'do_some_action' ).
  context->set_repo( repo_srv=>get_repo( repo_id_extracted_from_the_event_params ) ).

  try.
    create object lo_deserializer.
    lo_deserializer->do_some_stuff( context->get_repo( ) ).
    context->get_log( )->merge_if_loggable( lo_deserializer ).
  catch zcx_error into lx_error.
  	" catching will be in GUI actually ... but just to demo the idea
  	context->get_log( )->merge_if_loggable( lx_error ).
  endtry.

  ...
  "@page
  context = gui_services->get_context( iv_create_new = abap_FALSE ).
  if context->get_log( )->count( ) > 0.
    ...
  endif.
  render_some_repo_stuff( context->get_repo( ) ).

Autosave and persistence in general. I think it is a good feature. At least for BG jobs for sure. Just for a separate PR. It should be easy to add zcl_log_persistence to convert the log class content to BAL*
framework.

an operation can return a log, this is whats implemented right now IMHO
yea, some of the logs should maybe be returning instead of importing, but this is minor
the current approach I see as similarto BAPIs, which is an operation, and it returns a log, not really sure I understand what the design problem is with this?

do programming to an interface,
I don't like having global variables, where the caller needs to know the implementation of the action to know where to look for side effects. Eg. BAPIs have the log as part of the API

Quick call summary:

leave the ii_log params for now, make them mandatory
remove clear method from the log class - to ensure log is not cleared occasionally at lower levels
UI log goes to gui_services - set/get_log methods, but this is very error prone, so let's think about the context stuff in some future
supposedly a new log will be created very early in pages or the router

One thing we forgot to discuss if we keep the exception as a transport for the log (the one with errors of course). If the log is mandatory param then maybe we don't need it ... on the other hand it may get handy at some point.

I think its okay to have the logs possible to be transported via exceptions

@sbcgua whats the status for this PR?

Hi Lars, a bit busy at  the moment, cannot get my hands on it for some time. Does it block anything ?

no, just wanted to figure out what the status for it is, can you convert it to draft, if its in progress?

Closing for now. Cannot find time for this for last couple of month, sorry =( The next step was almost done in April - https://github.com/sbcgua/abapGit/tree/log2 but still needed some bug fixing.


The number one missing feature for GitHub

There's one thing that has been bothering me about GitHub for years: There's no way to update/rebase a PR with the commits of the base branch.
Why, just WHY does GitHub not implement this? GitLab has a feature to rebase the branch using a slash command in the comments, which is really handy:

As far as I can tell, GitHub does not have such a feature. You want to update a PR when you're out and about? Well, you're out of luck. You need a local copy of the code and trigger a rebase from there!
This really bothered me during my recent vacation.  In those circumstances I usually add new commits to the PR by rebasing the branch onto the base branch, which triggers new CI runs. But since I didn't bring my laptop, there was no way to do that. Only once I got home three weeks later, I was able to merge those PRs. If you're an author of one of those PRs, you now know why it took me so long to merge it.
Please, GitHub. It shouldn't be so hard!

There is an "Update branch feature for GitHub:
grafik


Allow DWaveCliqueSampler to use a user specified clique embedding

I'm interested in using all the functionality of the clique sampler (range-scaled uniform torque compensation, per-qubit coupling checks), but I would like the option of passing my own embedding instead of generating it on the fly:
https://github.com/dwavesystems/dwave-system/blob/7b702351f61294459db475fa4fe92aac1f44f16d/dwave/system/samplers/clique.py#L389
This allows reproducibility, graph-isomorphic transformations, testing new embeddings, etc.

Definitely a feature we could (easily) add. But in the mean time you could get the same effect with just using the same set of composites https://github.com/dwavesystems/dwave-system/blob/7b702351f61294459db475fa4fe92aac1f44f16d/dwave/system/samplers/clique.py#L406

🌟


Logging module includes property sku for sentinel

Logging module template includes a non-allowed "sku" property for microsoft.operationsmanagement/solutions
Template-spec for the resource does not include the sku-property, I'm guessing the RP modified the existing template-spec-api to remove the sku-property sometime after the simplified-pricing(Unified) was introduced.
https://learn.microsoft.com/en-gb/azure/templates/microsoft.operationsmanagement/solutions?pivots=deployment-language-bicep

Hi @picccard, that makes sense to me as well. @jtracey93 is this something we can remove or was this supporting some edge case that it needs to stay in?

This was done way back in https://github.com/Azure/ALZ-Bicep/pull/582 relating to https://learn.microsoft.com/azure/sentinel/enroll-simplified-pricing-tier?tabs=microsoft-sentinel#change-pricing-tier-to-simplified and i introduced it in a non-breaking way.
The API version it was pinned to should still support the deployment and bicep linter may be incorrectly flagging this, have you deployed it @picccard to confirm?
Happy for it to be removed if not needed, but to my understanding it should be fine to leave to cover customers using the classic pricing tier

Just tested it, and the classic pricing model still works with this API version so will leave it in.


[e2e]: container schedule main provenance-repository slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/10650522916
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.container.schedule.main.provenance-repository.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.container.schedule.main.provenance-repository.slsa3.yml
Trigger: schedule
Branch: main
Date: Sun Sep  1 03:13:09 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/10660039445
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.container.schedule.main.provenance-repository.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.container.schedule.main.provenance-repository.slsa3.yml
Trigger: schedule
Branch: main
Date: Mon Sep  2 03:09:46 UTC 2024
Tests are passing now. Closing this issue.


[Bug] fern check does not check overlapping URL paths in the Documentation

Describe the bug
If there are two paths that overlap (i.e. two sections with the same name) then the docs will 500 because they dont know which page to render. fern check should validate against this and make sure that
To Reproduce
Example of a docs.yml that causes this:
navigation:
  - section: API Reference
    layout: ...
 - section: API Reference
    layout: ...

Expected behavior
fern check should return an error message:
> docs.yml -> navigation -> section -> 0
Two different pages have URL conflicts, please change the section name or override using the slug property.

moving to linear


d128::from_str() returns Ok on non valid inputs

d128::from_str("Not_Valid_String") returns Ok with a "NaN" value result.

this is explained in the documentation:

The syntax of the string is fully checked; if it is not valid, the result will be a quiet NaN and an error flag will be set.

Another clue is the Err type of the FromStr impl is ().
Although this is not an idiomatic FromStr implementation, it has been this way for years now so at this point breaking this behavior could break people's code that expected it.


Document property source precendence using spring.config.import defined in application.yml vs adding as -Dspring.config.import

Describe the bug
When we add spring.config.import in application.yml of an application's src/main/resources vs the same property is added as -D parameter during the start up of the application, the behavior changes in terms of property order.
Sample
A test case is added namely ServerMyTestApplicationTests under spring-cloud-config/spring-cloud-config-sample/src/test/java (https://github.com/nagsuchandra/spring-cloud-config.git) and it's method contextLoads shows the issue. There is documentation added to the source file .
Error case:
application.yml has the following
spring:
  cloud:
    config:
      uri: http://localhost:${config.port:8888}
  config:
    import: configserver:${spring.cloud.config.uri}

Now if we run the test ServerMyTestApplicationTests.contextLoads, the property sources are as follows.

Config resource 'class path resource [application-baz.yml]' via location 'optional:classpath:/':{key=jarlocal-app-baz-yml}
configserver:file:././target/repos/configmytest-repo//payroll-baz.yml:{key=remote-payroll-baz-yml}
configserver:file:././target/repos/configmytest-repo//application-baz.yml:{key=remote-app-baz-yml}
configserver:file:././target/repos/configmytest-repo//payroll.yml:{key=remote-payroll-yml}
configserver:file:././target/repos/configmytest-repo//application.yml:{info.foo=bar}
Config resource 'class path resource [application.yml]' via location 'optional:classpath:/':{info.component=Config Samples, endpoints.restart.enabled=true, logging.levels.org.springframework.boot.env.PropertySourcesLoader=TRACE, logging.levels.org.springframework.web=DEBUG, spring.cloud.config.uri=http://localhost:${config.port:8888}, spring.config.import=configserver:${spring.cloud.config.uri}}

application.yml does NOT have the spring.config.import in there and -Dspring.config.import is passed in

configserver:file:././target/repos/configmytest-repo//payroll-baz.yml:{key=remote-payroll-baz-yml}
configserver:file:././target/repos/configmytest-repo//application-baz.yml:{key=remote-app-baz-yml}
configserver:file:././target/repos/configmytest-repo//payroll.yml:{key=remote-payroll-yml}
configserver:file:././target/repos/configmytest-repo//application.yml:{info.foo=bar}
Config resource 'class path resource [application-baz.yml]' via location 'optional:classpath:/':{key=jarlocal-app-baz-yml}
Config resource 'class path resource [application.yml]' via location 'optional:classpath:/':{info.component=Config Samples, endpoints.restart.enabled=true, logging.levels.org.springframework.boot.env.PropertySourcesLoader=TRACE, logging.levels.org.springframework.web=DEBUG}

Config data files ordering gets reversed if application.yml has spring.config.import defined in it , but -D maintains the ordering in the right precedence.

Application properties packaged inside your jar (application.properties and YAML variants).
Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants).
Application properties outside of your packaged jar (application.properties and YAML variants).
Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants). – highest priority

https://github.com/spring-cloud/spring-cloud-config/pull/1839 ( Pull Request link )
The test ServerMyTestApplicationTests.contextLoads shows the issue , comments added.

Spring cloud has no control over the precedence anymore, it is controlled by spring boot. IIRC @philwebb and I had a conversation about this and he said this is the working behavior of boot.

@spencergibb , there is no consistency in working behavior of boot then.
i.e.,

class path resource [application-baz.yml] i.e., application-baz.yml local to jar is given precedence when spring.config.import is supplied via application.yml local to jar
application-baz.yml from spring cloud config repo gets precedence when spring.config.import is supplied via system properties

@philwebb will have to talk about that.

@philwebb @spencergibb : this is not a documentation bug (it is incorrectly labelled so).
As illustrated, classpath:application-{profile-name} (local to jar) is overriding cloud config repo's application-{profile-name} which is incorrect.

@maggmanu77 as I've said, spring cloud can only document this, I can't change the behavior. You'll need to file an issue in spring boot.

Something else to consider in the documentation https://github.com/spring-cloud/spring-cloud-config/issues/1807#issuecomment-810579138

I've pushed something to Spring Boot that will allow imported ConfigData items to indicate that specific property sources should be considered "profile specific".

We started running into this recently when we finally started upgrading Spring Boot, and I believe the issue is slightly more involved than described.  We are running on Spring Boot 2.7.4 and Cloud Config Server 2022.0.1 and we are experiencing different results depending on where we run the application from.
Basic setup: Application class files and application.yml are under /app
Example 1:
Our working directory is /app and we run java -cp . Main - spring.config.import cannot be in application.yml without breaking precedence (cloud config cannot override any properties specified in application.yml).
Example 2:
Our working directory is / and we run java -cp /app Main - spring.config.import can safely be included in application.yml and precedence works as expected (cloud config taking priority over all other settings)
I'm not sure if this is Cloud or Boot, but this is the only issue i still see open, so I started here.  Is this something expected, or should I try fleshing out an example to provide?


making the code faster

Hi once again awsome work you did
in your head.py lines 371-376 :
default_boxes_xyxy_wrt_fm = self.box_grid_generator_feature_map_level.create_strided_boxes_columnfirst(fm_size=image_fm_size)
default_boxes_xyxy_wrt_fm = default_boxes_xyxy_wrt_fm.view(1, 1, image_fm_size.h, image_fm_size.w, 4)
# 1 (to broadcast to batch_size) x 1 (to broadcast to class batch_size) x  box_grid_height x box_grid_width x 4
default_boxes_xyxy_wrt_fm = default_boxes_xyxy_wrt_fm.to(resampling_grids_local_coord.device)
resampling_grids_fm_coord = convert_box_coordinates_local_to_global(resampling_grids_local_coord, default_boxes_xyxy_wrt_fm)

and lines 405-410:
default_boxes_xyxy_wrt_image = self.box_grid_generator_image_level.create_strided_boxes_columnfirst(fm_size=image_fm_size)
default_boxes_xyxy_wrt_image = default_boxes_xyxy_wrt_image.view(1, 1, image_fm_size.h, image_fm_size.w, 4)
# 1 (to broadcast to batch_size) x 1 (to broadcast to class batch_size) x  box_grid_height x box_grid_width x 4
default_boxes_xyxy_wrt_image = default_boxes_xyxy_wrt_image.to(resampling_grids_local_coord.device)
resampling_grids_image_coord = convert_box_coordinates_local_to_global(resampling_grids_local_coord, default_boxes_xyxy_wrt_image)

thus line do the same calculation, and they don't have trainable parameters, why we can't reuse the first calculation for the second one?

Note that line 371
https://github.com/aosokin/os2d/blob/96c488b3979c505b92245ccdab941fb01fdf99de/os2d/modeling/head.py#L371
and line 405
https://github.com/aosokin/os2d/blob/96c488b3979c505b92245ccdab941fb01fdf99de/os2d/modeling/head.py#L405
depend on self.box_grid_generator_feature_map_level and self.box_grid_generator_image_level, respectively.
These two are different objects:
https://github.com/aosokin/os2d/blob/96c488b3979c505b92245ccdab941fb01fdf99de/os2d/modeling/head.py#L218-L220
If I remember correctly, the first one produces boxes in the coordinates w.r.t. the feature map, the second one - w.r.t. the input image.


add Chinese name of Chongqing University

I hope you can check again, I just try to register a email address, but I can not,After I refer to the principal, he told me that one can not resister an email address there if he is not a student of Chongqing University, For our school，Once a student register, our school will allocate a email address for the student. for post graduate, there email address is liking student number and<EMAIL_ADDRESS>for master and PHD， we can apply for changing our email address that could contains our name so that we can contact with other school professors or students, but the master and PHD can not change the domain<EMAIL_ADDRESS>The situation that a person that is not a student of our school can register a email address is not exist.

@liyuanshuo Thank you for the additional information.
Regrettably, JetBrains detected a lot of compromised accounts last months, and many of them were linked to Chongqing University students. The problem is serious: some of them is selling an access to their accounts on Taobao.
The students shared their account information with third parties, which is a violation of terms and conditions that they accepted when received a free subscription to JetBrains tools.
Therefore, if you are a student of this university, we ask you to apply using "OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students.
Thus, this domain remains in the blacklist. Thank you for understanding.


Adjustments to fetch API

Adjust fetch API to support some requirements for the EDPOP VRE:

Start fetching from an offset instead of from the beginning (this is needed because Reader objects won't be shared across API requests from the frontend, since every request might run in a different process)
Adjust the maximum number of new results to fetch each time (this is needed to allow the user to control how many records they want to see)
Merge the fetch() and fetch_next() methods

Quick comment: this seems like a solution for one of your open ends in UUDigitalHumanitieslab/EDPOP#148. Next time you report a problem in one repository and work on a solution in another, please add a cross-reference at either end (like I'm doing here) so that it will be visible for future readers (like me) that you are already working on a solution.

Quick comment: this seems like a solution for one of your open ends in UUDigitalHumanitieslab/EDPOP#148. Next time you report a problem in one repository and work on a solution in another, please add a cross-reference at either end (like I'm doing here) so that it will be visible for future readers (like me) that you are already working on a solution.

Sure, will do next time!!


Add static_array macros to Char and String?

Feature Request
More of a tiny feature discussion. The static_array macro only exists for Int types. Is there a particular reason why it doesn't exist for Char and String, as well?
It's a convenience macro, but I had a use case a couple weeks ago, so I whipped up a little patch to add them, and I couldn't see any reason why they are a bad idea.
Is there a reason why they are a bad idea? If not, I'll make a PR.
class Foo
  SomeChunkOfKeywords = String.static_array("this", "that", "thensome")
  AlsoCharacters = Char.static_array('1', '2', '3', 'x', 'y', 'z', 'A', 'B', 'C')
end

I think this macro exists specifically for integer types to avoid duplication of type suffixes in the literal.
For most other types, such as Char and String, the regular StaticArray.[] constructor should be sufficient:
some_bytes = UInt8.static_array(1, 2, 3, 4, 5)
other_bytes = StaticArray[1_u8, 2_u8, 3_u8, 4_u8, 5_u8]

strings = StaticArray["this", "that", "thensome"]
chars = StaticArray['1', '2', '3', 'x', 'y', 'z', 'A', 'B', 'C']

Perfect. I figured that there was solid reasoning for it, and that does make sense. Thank you.

There should definitely be a reference in the API docs.


[communication-calling] Screensharing notification stays on after call.stopScreenSharing

Package Name:  @azure/communication-calling
Package Version:  1.23.2
Operating system: Windows
[ ] browser

name/version: Chrome/124.0.6367.207

Describe the bug
On Google Chrome sometimes when user is sharing screen and stops with await call.stopScreenSharing(), screen sharing notification bar in google chrome stays active in shared tab. This mostly happens when sharing another tab. After 10s-60s this notification will disappear.
To Reproduce
Steps to reproduce the behavior:

In active room call user starts screen sharing with await Call.startScreenSharing()
User selects tab to share with browsers screen sharing window and observes screen being shared and sees screen sharing notification bar.
User stops screen sharing with await Call.stopScreenSharing()
User keeps seeing screen sharing notification in Chrome. Screen sharing is not sent to other call participant.

Expected behavior
Screen sharing should stop consistently when await Call.stopScreenSharing() is called
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
This does happen often with Windows Chrome. Also Linux Chrome has some delay with screen sharing notification bar disappearing.
Variable Call.localVideoStreams is empty array after calling await Call.stopScreenSharing() also in cases where notifcation bar got stuck.

I was able to get around this by forcing the media tracks stop before calling Call.stopScreenSharing.
screenSharingHTMLVideoElement.srcObject.getTracks().forEach((track) => track.stop());
await call.stopScreenSharing()

Issue should be fixed in our latest versions (https://www.npmjs.com/package/@azure/communication-calling/v/1.27.1-beta.2).


WebMock with allow net connect mangles and unbuffers streamed responses

require 'net/http'

# If you include this
# 1. you only get 1 chunk back instead of 5
# 2. the chunk you get is incorrectly compressed

require 'webmock'
WebMock.enable!
WebMock.allow_net_connect! # <== leads to error

uri = URI("https://www.discourse.org")
Net::HTTP.start(uri.host, uri.port, use_ssl: (uri.scheme == "https")) do |http|

  req = Net::HTTP::Get.new('/', {
    'Accept-Encoding' => 'gzip'
  })

  http.request(req) do |resp|

    resp.decode_content = true

    resp.read_body do |chunk|
      p chunk.length
    end
  end
end

Without webmock output is
16384
16384
16384
16384
5898

With webmock and allow_net_connect!
27369

I ran into this today, it also breaks streaming json responses. It gets combined into a single chunk which is an invalid json document.

@babelfish could you please provide an example? why would a single chunk be invalid json?

I was dealing with responses to the docker api, an endpoint that returns streaming JSON. Each chunk is a JSON object. If you concatenate them together you get an invalid JSON document, e.g.
{"some_field":"some value"}
{"some_field":"some value"}

@babelfish thank you. That makes sense. Webmock's Response would have to hold a collection of chunks in order to handle that instead of a single response body string.

We just ran into the same issue. Happily, WebMock can be disabled in that test, but it took some time to find it was the source of the problem.


How does acvtool handle crashes?

What is this supposed to mean?
INSTRUMENTATION_RESULT: shortMsg=keyDispatchingTimedOut
INSTRUMENTATION_RESULT: longMsg=Input dispatching timed out (Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up.)
INSTRUMENTATION_CODE: 0
It seems to me if the application under test crashes, acvtool also crashes...no more reports.
How does it handle crashes then?

AcvInstrumentation.smali overrides onException to handle app-level exceptions and save it into errors.txt file. See documentation here https://developer.android.com/reference/android/app/Instrumentation (onException).
I believe it will not handle crashes related to system.
keyDispatchingTimedOut most probably occurs because of too many events injected. Android system can't process too many events and freezes. If you run monkey to generate events give it throttle parameter (at least 0.5 seconds).

@pilgun  How can I check the number of crashes using acvtool? I recall you mentioned that the tool records code coverage and crashes. I cannot find anywhere on the reports generated that states the crashes;

@pilgun

AcvInstrumentation.smali overrides onException to handle app-level exceptions and save it into errors.txt file. See documentation here https://developer.android.com/reference/android/app/Instrumentation (onException).
I believe it will not handle crashes related to system.

Hmm the error comes shows up during testing phase...the acvtool stops...but the tests keep going on. Is there a way to continue running acvtool after those errors come out?

If there was an error and both acvtool and the app have stopped, there is no sense to continue testing, is it?
If the app continues running but only instrumentation process stopped, then it is a problem either with acvtool or with your testing pipeline that can stop instrumentation process for some reason.
If you say, the that manually everything works fine, then there is a conflict with that testing tool.


Reduce the default input voltage limit to 10V instead of 12V

Motivation
EuroPi's output voltage is limited to 10V, but the input accepts up to 12V. This limits compatibility between multiple EuroPi modules, as the output of one can never sweep the full input range of the other. This also limits the ability to self-patch a single EuroPi module.
We still support 12V inputs via EuroPiConfig if desired, but I don't believe 12V input should be the default.

@awonak thanks for the speedy review!
Before I merge this I'm going to see if there are any more responses to the question I posted on Discord relating to this. If it turns out that the 12V input limit is something widely-used/relied upon (which I doubt, but I might be wrong) I'll close this without merging. But my suspicion is that we can merge this and it won't affect anyone negatively.

It's been a week and there haven't been any objections raised on Discord. So I think we're okay to do this.


[$250] Can't go back in "Contact methods" if triggering "Back" button using Enter

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.79-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @kosmydel
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1696849230849869
Action Performed:

Go to Settings -> Profile -> Contact method
Select the "Back" button using Tab.
Press Enter

Expected Result:
Should go back to the previous screen
Actual Result:
Opens the "New contact method" screen and immediately closes it.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/38435837/c08178af-b155-4a6b-9b62-7f8eab4a0f4d
https://github.com/Expensify/App/assets/38435837/7a0099aa-7884-4707-98e2-d5547afcded9

MacOS: Desktop

.
https://github.com/Expensify/App/assets/38435837/fe211360-781c-4877-9c71-99a6f29e1bbe

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014d24f78857b6fbc3
Upwork Job ID:<PHONE_NUMBER>241732608
Last Price Increase: 2023-10-10

This looks like a simple bug, and I imagine the solution will be simple as well, so I decreased the bounty

A pull request affecting the Enter key's behavior got merged and recently deployed to production.
It could provide some insight on why this issue occurred.

Proposal
Please re-state the problem that we are trying to solve in this issue.
On Contact Methods page after focusing on the back button with the Tab key and pressing enter; it doesn't navigate back
What is the root cause of that problem?
Because there is the new contact methods button with pressOnEnter enabled, in addition to the navigate back code the create new contact methods' code is also executed. So that's why the page will navigate to the new contact page and it will get back to the contact methods page(instead of navigating back to the profiles page).
What changes do you think we should make in order to solve the problem?

This problem must exist everywhere there is a Button component with pressOnEnter enabled. So the fix should be applied to our Button component.
Changes to be applied:
Here,
https://github.com/Expensify/App/blob/a6d2f3e3564c19f32caba3837a81adc837f6c752/src/components/Button/index.js#L181-L185
we need additional logic to check if the focus is not on another element (it should be on the button element or on its parent) so it should be changed to
if(document.activeElement.contains(this.ref.current))                 this.props.onPress();
POC:
https://github.com/Expensify/App/assets/38649957/2a9e55d2-01be-4cdd-b2a0-faaf5000f46d
What alternative solutions did you explore? (Optional)
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Closing per https://github.com/Expensify/App/issues/29132#issuecomment-1754652679


Generated Homebrew formulas make brew spit warnings

See this warning from brew output:
Warning: Calling plist_options is deprecated! Use service.require_root instead.
Please report this issue to the bbkane/tap tap (not Homebrew/brew or Homebrew/homebrew-core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/bbkane/homebrew-tap/Formula/grabbit.rb:49

As this formula is generated with GoReleaser, I've made https://github.com/goreleaser/goreleaser/issues/3990 to track on that side.

Updated goreleaser!


cli_pkg breaking changes incoming

Hey folks! I noticed you're using cli_pkg, so I wanted to give you a heads-up about a breaking change coming in https://github.com/google/dart_cli_pkg/pull/57. We're changing the configuration variables from plain Dart properties to instances of a new ConfigVariable class, which allows users to set variable values as callbacks so that expensive and fallible operations like parsing files don't have to happen for unrelated Grinder tasks. All you need to do to become compatible with the new version is change pkg.variable = ... into pkg.variable.value = ....
Unfortunately, since we're still in the pre-release versioning stage, we don't have a clean way of designating this new breaking change with a major version bump. Instead, I'm filing issues against downstream packages to make sure they're aware of the change in advance and have time to update.
To minimize breakage, I'm planning to land https://github.com/google/dart_cli_pkg/pull/57 and tag it on git for a period of time before I release it on pub. This will allow you to add a temporary dependency override on the Git version with the new API:
dependency_overrides:
  dart_cli_pkg:
    git:
      url: git://github.com/google/dart_cli_pkg
      ref: 1.0.0-beta.10

Once all the downstream dependencies have updated, I'll release 1.0.0-beta.10 for real and you can remove this override.
Sorry for the trouble! I hope to release a proper stable version once https://github.com/google/dart_cli_pkg/pull/56 is resolved and Chocolatey support is online again.

@nex3 Thank you for taking the time to do this!

The PR has landed and the tag has been pushed. Please let me know when you've updated so I can release it on pub.


Create CODEOWNERS

Description

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

:tada: This PR is included in version 1.3.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Create 0x7131EBf9182cC7851a6dEf9c98d05941c736c754

Thanks team!

Wrong pr, you should create folder and upload logo.png there and not create empty file

@Unsehrtain, you shared this message in another thread but the logo wasn't updated yet. Is there anything additional that I need to do?
You opened PR https://github.com/traderjoe-xyz/joe-tokenlists/pull/1125 for logo upload, will process that one and ignore this one


"Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1","code":"CredentialsError

Hello,
I'm trying to find any error in the chart about miss configuration, appear this message in the api kubernetes-external:
{"level":50,"message_time":"2021-04-23T13:13:53.280Z","pid":17,"hostname":"k8s-vivo-ext-kubernetes-external-secrets-7558dbcd8b-9btn2","payload":{"message":"Missing credentials in config, if using AWS_CONFIG_FILE, set l-secrets:
AWS_SDK_LOAD_CONFIG=1","code":"CredentialsError","time":"2021-04-23T13:13:53.280Z","requestId":"170f88a7-a83c-4816-9d1c-9b026725c10c","statusCode":403,"retryable":false,"retryDelay":95.98201895564404,"originalError":{"message":"Could not load credentials from ChainableTemporaryCredentials","code":"CredentialsError","time":"2021-04-23T13:13:53.280Z","requestId":"170f88a7-a83c-4816-9d1c-9b026725c10c","statusCode":403,"retryable":false,"retryDelay":95.98201895564404,"originalError":{"message":"User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/eksRoleNode/i-0d7eadfb581567e5f is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::330482684181:role/webserver-secrets-role","code":"AccessDenied","time":"2021-04-23T13:13:53.280Z","requestId":"170f88a7-a83c-4816-9d1c-9b026725c10c","statusCode":403,"retryable":false,"retryDelay":95.98201895564404}}},"msg":"failure while polling the secret prod/db-applications"}
I Added AWS_INTERMEDIATE_ROLE_ARN as a Role for eksRoleNode (Is the Role of Nodes in my EKS) and i attached a policy for access a secret manager on that.
My policy to access the secret manager is like this:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"secretsmanager:GetResourcePolicy",
"secretsmanager:GetSecretValue",
"secretsmanager:DescribeSecret",
"secretsmanager:ListSecretVersionIds"
],
"Resource": [
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-application-xxxxx",
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-subscription-xxxx",
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-wallet-xxx",
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-camunda-xxxx,
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-password-xxxxx",
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-user-xxxxx",
"arn:aws:secretsmanager:sa-east-1:xxxxxxxxxxxxxsecretsecret-cluster-password-xxx"
]
}
]
}
I my ExternalSecret where i'm deployed, appears the same error of:
db-applications 9s ERROR, Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
Any sugestion about it?

Did you get solution for this error? I am also getting the same error.

Yeah, i'm still have this error right now:
{"level":50,"message_time":"2021-05-06T21:56:41.656Z","pid":17,"hostname":"k8s-vivo-ext-kubernetes-external-secrets-64dbf454d7-n7w6s","payload":{"message":"Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1","code":"CredentialsError","time":"2021-05-06T21:56:41.656Z","requestId":"996c9438-ca39-4edc-9151-8e8edb08c489","statusCode":403,"retryable":false,"retryDelay":22.788347113797602,"originalError":{"message":"Could not load credentials from ChainableTemporaryCredentials","code":"CredentialsError","time":"2021-05-06T21:56:41.656Z","requestId":"996c9438-ca39-4edc-9151-8e8edb08c489","statusCode":403,"retryable":false,"retryDelay":22.788347113797602,"originalError":{"message":"User: arn:aws:sts::111111111111:assumed-role/eksRoleNode/i-0b98ff847d7237978 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::111111111111:role/webserver-secrets-role","code":"AccessDenied","time":"2021-05-06T21:56:41.655Z","requestId":"996c9438-ca39-4edc-9151-8e8edb08c489","statusCode":403,"retryable":false,"retryDelay":22.788347113797602}}},"msg":"failure while polling the secret prod/db-applications"}
{"level":30,"message_time":"2021-05-06T21:56:41.677Z","pid":17,"hostname":"k8s-vivo-ext-kubernetes-external-secrets-64db

I think you have multiple issues as per my understanding.


Changed ELs to TLs

There's just issues with some capitals

The uikit update should not be part of the change. Maybe this was a git commit -a situation that also added the submodule?

I will fix the problems:

the accidental replaces
the uikit add


Warnings fix for incorrect state_class and device_class combination

Fixes #122, #128

Thanks @jyrkih !

@JaccoR could you release a new version with this fix?

Applied this fix manually. Seems to work fine.

How do you fix it mannually?


[Experiment][WIP] Perform culling optimization before fuse_roots

While working on a PR to move Dask-DataFrame's from_delayed to Blockwise @ian-r-rose pointed out that fuse_roots
will always materialize a Blockwise layer when root-fusion is successful.  My intuition is that this is probably okay if we move things around so that culling is performed while the Layer is still Blockwise.  This PR makes this small change for dask.array and dask.dataframe.

xref #8560, which didn't get a lot of discussion at the time (apologies @gjoseph92!)

xref #8560, which didn't get a lot of discussion at the time (apologies @gjoseph92!)

Oops! Completely missed that PR @gjoseph92 - Good catch!  It looks like from_delayed is one of the fuse-roots applications that you were curious about (optimize_blockwise doesn't capture Delayed dependencies, but fuse_roots does).  I don't think there is any reason to call cull again after fuse_roots, but I certainly don't understand the optimization completely :)


tcurl crashes when receiving non-ok result

[benfleis] ~/src/ringpop $ for i in 0; tcurl -p <IP_ADDRESS>:300$i ringpop /trace/remove -2 '{ "event": "membership.update", "sink": {"type": "log"}}'

/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/as/json.js:299
            self.logger.warn('Got unexpected invalid JSON for arg2', {
                        ^
TypeError: Cannot call method 'warn' of undefined
    at TChannelJSON.parse [as _parse] (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/as/json.js:299:25)
    at onResponse (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/as/json.js:125:32)
    at gotArg23 (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/request.js:134:13)
    at TChannelInResponse.withArg23 (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/in_response.js:88:5)
    at DefinedEvent.onResponse [as listener] (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/request.js:133:13)
    at DefinedEvent.emit (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/lib/event_emitter.js:86:14)
    at TChannelRequest.emitResponse (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/request.js:106:24)
    at TChannelRequest.onSubreqResponse (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/request.js:264:14)
    at DefinedEvent.onResponse [as listener] (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/request.js:242:14)
    at DefinedEvent.emit (/Users/benfleis/.nvm/v0.10.26/lib/node_modules/tcurl/node_modules/tchannel/lib/event_emitter.js:86:14)

My client was temporarily hard coded to resp.sendNotOk().
When looking at said as/json.js code, I don't see why it would be null. I will try a little more debugging, but perhaps somebody over there has more insight into this. (I am also unsure whether it's fundamentally a tchannel problem, or a tcurl problem.)

@benfleis an empty string is invalid json.
The json arg scheme for tchannel requires json in arg2 and arg3.
You should send '{}' or 'null'

Yes, but tchannel can give a lot better of an error.

Agreed on error handling for such a situation. Perhaps I misunderstood -- is the tchannel/tcurl contract such that all data must be JSON? i.e., can you never send an Ok with no data?

@benfleis For the interim, TCurl accepts JSON for arg2 and arg3 for JSON and Thrift argschemes, or raw strings for the raw argscheme. It could be taught to use {} Thrift by default (or null if we adjust Thriftifty/ThriftRW to accept null in place of an object with all optional properties). I also have this crazy idea of finishing Argunauts to make it a little more natural to express JSON as command line arguments.

@jwolski agreed. We need to pass a logger into tcurl.
@benfleis if you want to do raw encoding then we have a --raw flag.
If you want an easier way to do json then you can import tchannel/as/json and it will do the correct thing for you.

I concur with @jwolski. This issue remains open until we provide a better error.


Misaligned menu after navigating back from sub-menu

Description
After navigating back to main menu there is a visual bug where the new main menu looks to be overlayed on the previous one.

This seems like an issue that was specific to my terminal, I updated it and it resolved itself. Closing for now.


[Q] How to clear cache?

I have run several experiments and logged the metric A, and then I delete the local cache files (./wandb) and the cloud runs. However, when I start the new experiments and log the new metric B instead of A, it seems that the history still exists. Two points evidence this:

The run name string is continued (not from xxx-xxx-1 after I clear the local and online cache).
The A metric still exists in online view.

So I want to know how to clear cache and re-initialize the wandb correctly.

Do I have to delete the project online to achieve this cache clearing?

Hi @geyao1995, once the local cache files and the runs from cloud are removed, then only data associated with those runs are removed. If several runs logged metric A, then unless you delete all runs that logged metric A, it will continue appearing in the online view.  Please verify that all runs that logged metric A were deleted from the project UI.
Additionally, the incremental counter for randomly generated run names cannot be reset once a project is initialized. However, you can override it by assigning your own run names in wandb init()

Thanks for your reply. That helps me!


Color on Interactive Summary Drop-down is off, cant read the text

Removed type="Button" from div element


doc: why do users need apisix? what problem can apisix solve?

@moonming if you have any new process, pls update this issue.


Added new mechanism to install plugins

Added new mechanism to install plugins, by adding plugins on under pluginsList on the CRD, the operator will add the plugin installation to the pods command, it will install the plugins and will start the node.

also: how to provide configuration for the plugins? often plugins have local config files which need to be provided

This will be resolved in #213


Trust Disclaimer for ChatGPT

From the second round of feedback, Concern around us not trusting research - is that why we used ChatGPT for descriptions?
User Stories:
As a user, I want to see a explanation why the ChatGPT description can be trusted
As a user, I want to see this explanation just below the description, so it is visibly present when I read the ChatGTP description
Text for Disclaimer:
We are currently in the process of validating all ChatGTP descriptions via our Biocurator team. Once a description is validated, we will link references below each description with a (validation icon).

@ashin-czi Harley is on PTO at the moment, is there anything in SDS that we can borrow for now?

One small nit - Can we have the disclaimer italic text starting in line with Source: ChatGTP, that way the second sentence is ending below Source: ChatGTP. Thanks

Thanks, that's perfect. Thank you.
On Wed, Jun 21, 2023, 11:09 AM Andrew Shin @.***> wrote:

@niknak33 https://github.com/niknak33
[image: image.png]
https://camo.githubusercontent.com/d2a3764b46763ae1af92477f4080b5a7b20fe83ff679b3d7e72a819d97357347/68747470733a2f2f696d616765732e7a656e68756275736572636f6e74656e742e636f6d2f3632646565383031653437653536323565613132643237662f36373635663564612d316438622d346433372d383332332d306164323331656533646165
How does this look?
—
Reply to this email directly, view it on GitHub
https://github.com/chanzuckerberg/single-cell-data-portal/issues/5032#issuecomment-1601339403,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2S5ZBDVHTKIZ2O6W4PFE5DXMM2ETANCNFSM6AAAAAAZHGH4DA
.
You are receiving this because you were mentioned.Message ID:
@.***>


ModuleNotFoundError when trying to build project

Environment
Here is my local configuration environment:
➜  ~ sw_vers
ProductName:		macOS
ProductVersion:		13.1
BuildVersion:		22C65
➜  ~ node --version
v18.14.1
➜  ~ yarn --version
3.4.1
➜  ~ python --version
Python 3.10.9

Issue
When following the library's docs, I was at the yarn build step and I ran into 2 problems, in order of appearance:

ModuleNotFoundError on missing dependencies for the plugin: it aborts the build process with an error and says "Package required: [missing_package]". Simply adding the missing dependencies to the package.json file is enough, but there are quite a few, and it seems the only way to work around the issue is to yarn add the missing package once you find out it's missing, then yarn build, and so on until there are no more missing dependencies. So after the 3rd missing dependency, I got lazy and wrote a python script to automate this (if there's a better way to do this I'm all ears). I put a reference to this script at the bottom of the issue for anyone interested.

FYI, here is the list of missing dependencies I got:
sanitize-html
highlight.js
markdown-it
markdown-it-abbr
markdown-it-container
markdown-it-deflist
markdown-it-emoji
markdown-it-footnote
markdown-it-ins
markdown-it-mark
markdown-it-sub
markdown-it-sup

Another ModuleNotFoundError but I'm unable to solve this one: Can't resolve 'highlight.js/styles/solarized-dark.css'. Because I already installed highlight.js, I cannot go past this step. Apparently, it comes from this piece of code in your library:

const loadCss = async () => {
  await import(/* webpackChunkName: "highlight.js" */ 'highlight.js/styles/solarized-dark.css');
};

In the highlight.js library, the solarized-dark.css file is under the styles/base16 folder. Maybe I need to downgrade to an older version of highlight.js for it to work?
NB: the python script I mentioned in 1.:
import subprocess
import re

def install_missing():
    pkgs = []
    while True:
        # Find package name in error
        res = subprocess.run(["yarn", "build"], capture_output=True)
        if len(res.stderr) == 0:
            break
        m = re.search("Required package: ([a-zA-Z0-9\-\.@\/]+)", res.stderr.decode("utf-8"))
        if m is None:
            break
        pkg = m.group(1)
        print(f'Found missing package {pkg}')
        pkgs.append(pkg)
        # Install missing package
        res = subprocess.run(["yarn", "add", pkg], capture_output=True)
        if len(res.stderr) > 0:
            print(res.stderr.decode("utf-8"))
            break
        m = re.search("Done", res.stdout.decode("utf-8"))
        if m is None:
            print(res.stdout.decode("utf-8"))
            break
        print(f'Installed package {pkg}')

    # Print package names line by line
    for p in pkgs:
        print(p)

if __name__ == "__main__":
    install_missing()

1+
same issue
env:
node: v16.19.1
strapi: v4.4.3
ModuleNotFoundError: Module not found: Error: Can't resolve 'react/jsx-runtime' in '/Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/icons/dist'
Did you mean 'jsx-runtime.js'?
BREAKING CHANGE: The request 'react/jsx-runtime' failed to resolve only because it was resolved as fully specified
(probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
The extension in the request is mandatory for it to be fully specified.
Add the extension to the request.
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/Compilation.js:2016:28
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:798:13
    at eval (eval at create (/Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:10:1)
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:270:22
    at eval (eval at create (/Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:434:22
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:116:11
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:670:25
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:855:8
    at /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/webpack/lib/NormalModuleFactory.js:975:5
resolve 'react/jsx-runtime' in '/Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/icons/dist'
  Parsed request is a module
  using description file<EMAIL_ADDRESS>(relative path: ./dist)
    Field 'browser' doesn't contain a valid alias configuration
    resolve as module
      /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/icons/dist/node_modules doesn't exist or is not a directory
      /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/icons/node_modules doesn't exist or is not a directory
      /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/node_modules doesn't exist or is not a directory
      /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/node_modules doesn't exist or is not a directory
      looking for modules in /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules
        existing directory /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/react
          using description file: /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/react/package.json (relative path: .)
            using description file: /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/react/package.json (relative path: ./jsx-runtime)
              Field 'browser' doesn't contain a valid alias configuration
              /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/react/jsx-runtime doesn't exist
      looking for modules in /Users/amirmahmoodi/Desktop/shahdarad/node_modules
        /Users/amirmahmoodi/Desktop/shahdarad/node_modules/react doesn't exist
      looking for modules in /Users/amirmahmoodi/Desktop/node_modules
        /Users/amirmahmoodi/Desktop/node_modules/react doesn't exist
      looking for modules in /Users/amirmahmoodi/node_modules
        /Users/amirmahmoodi/node_modules/react doesn't exist
      /Users/node_modules doesn't exist or is not a directory
      /node_modules doesn't exist or is not a directory
      looking for modules in /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/admin/node_modules
        /Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/admin/node_modules/react doesn't exist
ModuleNotFoundError: Module not found: Error: Can't resolve 'react/jsx-runtime' in '/Users/amirmahmoodi/Desktop/shahdarad/backend/node_modules/@strapi/icons/dist'

I found a similar issue on strapi repo here


Flow manager dynamic args for action dispatcher

Flow manager requires to use binding values from fact

implemented if given fact is in exec list, convert to string and replace in the args


fix: make tests compatible with Node.js -pre releases

This PR contains:

[x] bugfix
[x] refactor
[x] tests

Breaking Changes?

[ ] yes
[x] no

Please Describe Your Changes

I don't know why, but execa.node() with the input option works with
Node.js -pre releases where the current configuration fails. This has
the benefit of making sure that the test is run with the version of
Node.js currently being used to execute the test suite, rather than
whatever is first in the user's path.
Before, with Node.js 13.0.0-pre:
$ ~/io.js/node node_modules/.bin/ava test/test.js

  1 test failed

  binary stanity

  /Users/trott/temp/csv-parser/test/test.js:247

   246:
   247:   t.snapshot(stdout)
   248: })

  Did not match snapshot

  Difference:

  - ''
  + '{"a":"1"}'
$

FWIW, this means that the test fails with CITGM run against the Node.js master branch.
This is somewhat strange because the offending commit in Node.js to be removed to fix this would seem to be ones like this: https://github.com/nodejs/node/commit/bbbe07a4475b06b9295007c6f5bcefb5ba1431e5 I imagine the issue is somewhere inside execa but I'm not 100% sure. Nonetheless, I think this is a better/more-clear/less-brittle way to write the particular line?

@Trott thanks for taking the time to put together a PR. Node pre-releases aren't something I'm in the habit of supporting in any project I maintain. This odd incompatibility seems like something better taken up with execa than here in the tests. It looks like the node() method just dropped in June (https://github.com/sindresorhus/execa/releases/tag/v2.0.0), which would explain why I hadn't heard of it :smile:
I think the current test as-is is clear to anyone familiar with shell commands, and an echo and pipe shouldn't be foreign. For clearness, I think the current is the winner. For intent, we def want this to be executed using the shell. node() docs state the shell option cannot be used, which is a negative here (https://github.com/sindresorhus/execa/blob/master/index.js#L251), as the goal is to simulate running in the/a shell.

@Trott thanks for taking the time to put together a PR. Node pre-releases aren't something I'm in the habit of supporting in any project I maintain. This odd incompatibility seems like something better taken up with execa than here in the tests. It looks like the node() method just dropped in June (https://github.com/sindresorhus/execa/releases/tag/v2.0.0), which would explain why I hadn't heard of it 😄
I think the current test as-is is clear to anyone familiar with shell commands, and an echo and pipe shouldn't be foreign. For clearness, I think the current is the winner. For intent, we def want this to be executed using the shell. node() docs state the shell option cannot be used, which is a negative here (https://github.com/sindresorhus/execa/blob/master/index.js#L251), as the goal is to simulate running in the/a shell.

Fair enough. I'll see if I can find and fix the bug in execa (if it's actually there!).
For this, I'd still recommend changing node to ${process.execPath} so that you're testing with whatever version of Node.js the rest of the tests ran with rather than whatever is in the user's path (which will usually be the same node binary but not always, of course).


ARROW-16166: [C++][Compute] Utilities for assembling join output

Adding utilities that make it easier to filter, replicate and accumulate rows from potentially multiple sources in a single exec batch.
This is meant to be used in hash join for reducing overheads in producing its output.
Also, moving light-weight array utilities to the same file and adding helper functions for generating them.
Thanks to Weston Pace for updating comments and writing the unit tests.

@pitrou @lidavidm I'd appreciate your eyes on this if you have time.  I think these utilities could be generally useful outside of hash-join and it might be nice to have some more eyes on them.

Looks good to me, I guess I already reviewed a bunch of this code on the other PR. One thing: is it worth to add Hashing32::HashBatch and Hashing64::HashBatch in this PR? I need those for Bloom Filter pushdown, not sure if those fit better here or there.

Hashing seems unrelated to the topic of this PR, but we could possibly make a tiny separate PR just for HashBatch (or put it into Bloom filter pushdown).

I've added ARROW-16224 for for the follow-up to add support for large binary types and dictionary encoded types as key columns.

@lidavidm Any further thoughts?


Adds colorls

Checklist for submitting a pull request to Terminals Are Sexy:

[x] I have carefully read and comply with the Contributing Guidelines of this repo.

[x] I have searched the PRs of this repo and believe that this is not a duplicate.

Title: colorls

Link: Beautify the terminal's ls command, with color and font-awesome icons.

Category: Tools & plugins

Description: Colorls is a Ruby gem that adds a lc command on installation. lc functions like ls, but with colors and font-awesome icons. lc is also slowly getting support for all flags like ls. 😄

Merged! :)


BUG: can't connect to metamask

This seems intermittent and happens on curvebot as well as palomabot

This is due to switching out bloxroute for quicknode. Now that we are NOT using bloxroute, we need to refactor the endpoint functionality.

Closing as part of #1113


Dark theme not working.

We downloaded the current js and css files and tried using the dark theme.
This is the output:

Doesnt look dark to me :P

v1.1.4+
iziToast.show({
    theme: 'dark',
    message: 'Hello!',
});

Yeah if i do that, this is the output:

version 1.1.4?

Yes

Ok i fixed it, Cloudflare fckd it up :D

-.- what was?

Cloudflare kept the old version of the css file in Cache

I imagined.

Thanks for your help tho :P


Fix token endpoints ignore specified account

Fix #26234
close #26323
close #27040

#27040 is also related

I made the same change as #27040 in #26323, but the intent of the person who raised the issue was for admins to manage other users' tokens.
So I'm re-initiating this PR.

If a endpoint is mean to uses by admins, it should be in the /admins route. You should also note that admins can use the sudo function of the API.

If a endpoint is mean to uses by admins, it should be in the /admins route. You should also note that admins can use the sudo function of the API.

Yes, that's how I implemented it in #26323 as well. but
https://github.com/go-gitea/gitea/pull/26323#discussion_r1325390384

As an admin I would like it more to use this instead of an admin/users endpoint. I know I'm an admin, I don't need every of my actions behind admin/.

I don't get that argument. It's nice that you know that, but that doesn't matter. here.  A API should try to keep a consistent design to not confuse users. And the current design is, that all endpoints under /username/{username} can be used by any user (some even with login) and that endpoints, who are meant to be used by admins should live under /admin. Most of the users of the API are not Admins.
I think the best way to solve this is to simply move the endpoint to /user/token. It will only work for the current User. If you are a Admin, you can simply use the sudo parameter/header of the API. It works the same way as editing e.g. OAuth2Application though the API or changing the Avatar.

I we introduce a new role moderator which could edit users and repos but not admin related stuff like auth sources, what do we do? Add all routes again under /moderator?
For me the /users/{username} routes are correct. If you have the permission to perform the action, everything is fine. If you don't have permission, you get the matching error code.

I'm not saying the current system is perfect, but at least we have a system. And in the current  system we use the /user route for User stuff like e.g. editing OAuth2 Apps, GPG keys, avatars, emails, hooks, settings etc. This /user (not /users/<username>) route is for the current User. If a Admin wants to use those routes, he can use the sudo  functionality. This may have quirks, but this is how it's currently works. I see no reason why a single endpoint should work differently.

I see no reason why a single endpoint should work differently.

This is the first and only endpoint, so there is no difference to other endpoints.
Gitlab follows the same scheme:
https://docs.gitlab.com/ee/api/users.html#add-ssh-key

Creates a new key owned by the authenticated user.
POST /user/keys
Create new key owned by specified user. Available only for administrator.
POST /users/:id/keys

@waTeim  @lonix1 You mentioned that you need to use this interface, what do you think?

This is the first and only endpoint, so there is no difference to other endpoints.

As I said, there are other endpoints to edit the settings of a User

Gitlab follows the same scheme:

This is Gitea, not GitLab

This is the first and only endpoint, so there is no difference to other endpoints.

As I said, there are other endpoints to edit the settings of a User

Yep, in the admin area where they should not be.

Gitlab follows the same scheme:

This is Gitea, not GitLab

They did not make the mistake.

I'm a strong proponent of always using plural on REST API URLs.

We do that, just not for the /user/ endpoint which uses the calling user as context.

Please run the make generate-swagger

Please run the make generate-swagger once again.

No new changes were made to Swagger, and the re-execution has nothing to commit.

Do we need to backport to 1.20? @lunny

No I guess


docs: disconnected fixup in store

Signed-off-by: Ryan Russell<EMAIL_ADDRESS>Small fix-up in disconnected message

Thank you!


Error: undefined method 'epoch' for Time.class

Error with code of example.

Crystal:  0.34.0 [4401e90f0] (2020-04-06)
OS: Debian 10.3

`
In lib/discordcr/src/discordcr/rest.cr:56:31
56 | reset_time = Time.epoch(response.headers["X-RateLimit-Reset"].to_u64) # gotta prevent that Y2k38
^----
Error: undefined method 'epoch' for Time.class
`

This is fixed in master. We should have a release soon to address this and other 0.34 updates.


chore: remove unused test deps

:tada: This issue has been resolved in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


TP Broken in version 0.0.9+

TP stopped working in version 0.0.9 and newer. When rolling back to 0.0.8, it works normally.
Model: "EleutherAI/gpt-neo-1.3B" with tp_degree=8
File "/usr/local/lib/python3.10/site-packages/neuronx_distributed/parallel_layers/layers.py", line 180, in __init__
    ) = EmbeddingUtility.range_from_global_vocab_size(
  File "/usr/local/lib/python3.10/site-packages/neuronx_distributed/parallel_layers/utils.py", line 62, in range_from_global_vocab_size
    per_partition_vocab_size = divide(global_vocab_size, world_size)
  File "/usr/local/lib/python3.10/site-packages/neuronx_distributed/parallel_layers/utils.py", line 17, in divide
    ensure_divisibility(numerator, denominator)
  File "/usr/local/lib/python3.10/site-packages/neuronx_distributed/parallel_layers/utils.py", line 9, in ensure_divisibility
    assert numerator % denominator == 0, "
{}
 is not divisible by
{}
".format(
AssertionError: 50257 is not divisible by 8

Hi @samir-souza,
For which model?
Everything seems to work here. It just says that the dimension is not divisible by your tp size. From what I can guess, it seems to be the embeddings that are the source of the problem. What happened most likely is that we added embedding parallelization for your model between 0.0.8 and 0.0.9. We will make sure to add a feature to disable embedding parallelization in the next release.

@michaelbenayoun thanks for the update. The model is EleutherAI/gpt-neo-1.3B. Yeah, this feature will help a lot. We can also align with the neuronsdk team and create a good documentation for customers to know how to overcome this issue without disabling the feature.


Windows Menu Items not Working

Apologies if this noob user/installation error.
I have installed latest version R-BOX and SendCode in SublimeText3 3126. I have configured SendCode choose program to RStudio. RStudio is open.
I can send code from Sublime to RStudio console via Ctrl-Enter, works great. However, if I try to do same using menu item for R-Box "Send Current Line/Selection..." instead of actually sending the code it seems to send 'v' and I get the message Error: object 'v' not found.
I get this same error message for most but not all other menu items under R-Box. The menu items that don't send a 'v' to RStudio don't appear to do anything.
I have tried uninstalling and reinstalling both R-Box and SendCode. I don't have SublimeREPL or any other Sendtext package installed (that I know of).
Ctrl-Enter is not bad but it would be great to actually be build packages, source files and so on.
Any ideas?

It is a know issue of Windows RStudio (I should have it documented). I am still actively looking for a solution.

Alternatively, you could use R GUI.

np. thanks. should have tried other settings for SendCode. Working perfectly with r console in ConEmu. Brilliant package for Sublime and R. Thank you.

The menu is now working with RStudio on Windows.

Randy, hi. I'm still getting the "Error: object 'v' not found" error from sublime R-Box to RStudio gui. Have uninstalled and reinstalled R-Box so assume I have latest version of R-Box. SendCode works well from same project with sublime, i.e. ctrl-enter sends to RStudio and executes without issue.

Did you also reinstall SendCode?

Good question; just reinstalled SendCode, restarted sublime. SendCode working fine; still getting R-Box error

Actually I take that back. SendCode isn't working to send to RStudio now. Still works for R term in ConEmu.
I reinstalled both SendCode and R-box from scratch taking care to delete any R-Box and SendCode sublime config files in /Data/Packages/ and /Data/Packages/User dirs. The remove package of Package Control leaves a couple in place including /Data/Packages/User/R-Box/Main.sublime-menu and Data/Packages/User/SendCode.sublime-settings and Data/Packages/User/R-Box.sublime-settings.
I'm actually worse off now than before I think. SendCode was working great to RStudio until I tried updating R-Box and SendCode this afternoon.
Is there any info I can provide to help diagnose this?

Just to double check the versions not working for me are: SendCode:0.3.9 and R-Box:3.5.7

I also have these versions of SendCode and R-Box, they are working fine and sending code to RStudio.
How does it not work when you hit ctrl+enter and the R-Box menu?

The issue as shown in the sublime console is that SendCode is losing "sight" of RStudio. I rebooted, and opened single console in project; launched subl and then rstudio. worked fine. So it is user error again; my apologies.
Having said that it does seem a bit brittle in use.
For example, from a clean reboot:
(1) if I open a console in R proj, launch subl and rstudio; then SendCode/R-Box work fine.
(2) Leaving RStudio open from (1), launch a new console different project, open subl, open RSudio from this new console. SendCode/R-Box works but sends code to RStudio from (1). Maybe that is fine, only one RStudio process at any one time. I see from winauto.py that you find rstudio from windows handles titles so that makes sense but perhaps in session prior to reboot I had many handles titled rstudio and the order was getting messed up??
(3) Now if I close original RStudio, leave subl up from (1); open new console, launch new subl and rstudio. SendCode/R-Box sends to new RStudio but with "Error: object 'v' not found". Keep sending, after a few tries starts working.
Can't provide much more info than that, and no insight; sorry.
Anyway I think if I stick to single project open at anyone time; seems to work without any issue.
Thanks again for your help and great tool. Much faster than working with rstudio for editing and your R-Box gives best of both worlds all the nice bits of RStudio for debugging, viewing, etc. but still with super sublime editor.

Thanks for the detail report. It looks that things that I would expect. SendCode will only search for a RStudio window (it is actually the topmost RStudio window if I am right). If a previous session has just been closed, try switching focus to the remaining window several times, it should help SendCode to locate it. SendCode sends code to RStudio by pasting the clipboard. Sending a "v" letter means that the ctrl key didn't arrive there correctly. There is unfortunately not much I can do now..

Also, try not to release the ctrl key "immediately" (I mean really immediately) after ctrl+enter. Keep the ctrl key pressed for about half a second. It will also make sure the ctrl key will be sent correctly.

thank you for pointers; will do


TS6133 triggered even when the 'using' keyword is used

🔎 Search Terms
6133
TS6133
using 6133
using TS6133
🕗 Version & Regression Information

I was unable to test this on prior versions because using is a new feature.

⏯ Playground Link
https://www.typescriptlang.org/play?noUnusedLocals=true&target=9#code/BQZQngtgRg9gNgAgIYGdkDswEoB0ATASxQAcYUBTBBAfmoF4Fxp5gAiJ2OfI0i1rANwAoUJE7I0STLlRh0AYwAiPMpVoMOLdmPg5ZC5SVX9hQ+XFRoAYjBgIA3kKpV5MdCgAuAJwCu8jzBewFgOTs4ubijw5DhwMADmwADkAMJe5EgeBOjxSYJhVAC+BQgA2qLMiKgY2NxGFAC6waHhEe7RsQlshrzZ8SYlxcVCAGY+ClluCBBI2c0tCAD0iwjoMB6UHgAWmQgEHnto8elg5HgIMD4HwFLn5F5egWgA7lvk6KswALTjPhR4Xzi8iQcDQRAQ7yQUDgZwQWDCfz6CHSUR8XnklAY6HIzwQNhgwWEwxmc0EQA
💻 Code
(Symbol as any).dispose  ??= Symbol("Symbol.dispose");
(Symbol as any).asyncDispose ??= Symbol("Symbol.asyncDispose");

class Foo {
    constructor() {
      console.log('Creating');
    }
    [(Symbol as any).dispose]() {
      console.log("Disposing");
    }
}

function main()  {
  // note that it is greyed out (and errors when no-unused-locals is enabled )
  using resource = new Foo();
}

main();

🙁 Actual behavior
I get an error:  'resource' is declared but its value is never read.(6133)
🙂 Expected behavior
Ideally the using keyword would, well, you know... make it so that local was marked as "used" so that it's not giving an error that I didn't use the thing that I explicitly specified was being used by using the using keyword.
(that was fun 😄)
But seriously... I think the using keyword should count as "using" and not just a declaration.
Additional information about the issue
No response

Duplicate of #55538.


Unregistered data handler (fixes #16)

This is a first attempt at #16 using a std::function and a global (fixed) default.
Includes two new test cases.
My feeling is that it might be too simple given the rest of the design but it is user facing so it might be good keeping it simpler.
Potential issues:

There is a new header file, it might be possible to fold everything into the existing configreader.h.
The name of the new header unknown_data.h might not gel well with the other header names.
The typedef for the std::function is a little long (UnknownDataHandler).
The handler function receives a figcone::StreamPosition (defined in figcone_tree/streamposition.h). That might be exposing too much implementation details to the user.
Using a class rather than a simpler std::function might be able to distinguish between unknown nodes and unknown parameters as different calls.
I couldn't find a way to keep a global default that could be modified in a header-only solution. The global default is hardwired and cannot be changed.
Nested readers most probably won't inherit the data handler

I'll be happy to evolve the changes and address some of these issues based on your review.
Once the changes are good, I can include also changes to the README and maybe an example if you think that'll be good.

Hi, thanks a lot for your contribution!
Currently, it doesn't cover this requirement: "It should be possible to register a handler for a specific Config type." Therefore, I think we should work on this more, as I want to support the following use case.
Imagine if we have a configuration like this:
{
    "header" : {"id" : 20, "random_field" : "foo", "random_field_2" : "bar"},
    "data" : ["Hello", "world"]}
}

The "header" node must contain the "id" field, but it can also have random fields that aren't important for our app.
So, if we register it with figcone:
struct HeaderCfg : figcone::Config{
    FIGCONE_PARAM(id, std::string);
};

struct Cfg : figcone::Config
{
    FIGCONE_NODE(header, HeaderCfg);
    FIGCONE_PARAM(data, std::vector<std::string>);
};

The problem is that, with your current solution, we can't allow only the "header" subnode to have random fields(
What I had in mind for this issue is using template specializations to be able to register handlers for the necessary config types used in subnodes.
Instead of:
static inline UnknownDataHandler defaultUnknownDataHandler()
{
    return [](std::string nodeName, std::string paramName, StreamPosition position) {
        if(!nodeName.empty())
            throw ConfigError{"Unknown node '" + nodeName + "'", position};
        throw ConfigError{"Unknown param '" + paramName + "'", position};
    };
}

We place the regular exception-throwing handler in the template:
template<typename TConfig>
struct UnknownDataHandler{
    void operator()(std::string nodeName, std::string paramName, StreamPosition position)
    {
        if(!nodeName.empty())
            throw ConfigError{"Unknown node '" + nodeName + "'", position};
        throw ConfigError{"Unknown param '" + paramName + "'", position};
    }
};

And instead of calls like this:
 UnknownDataHandler handler = handler_ ? handler_ : defaultUnknownDataHandler();
 handler(nodeName, std::string(), position);

We can use it like this:
UnknownDataHandler<TConfig>{}(nodeName, std::string(), position);

Then the user could add the UnknownDataHandler specializations for only those node types that require a handler for unregistered fields:
template<>
struct UnknownDataHandler<HeaderCfg>{
    //Do nothing and allow HeaderCfg to have any fields besides the registered ones.
    void operator()(std::string nodeName, std::string paramName, StreamPosition position)
    {
    }
};

Check out how cmdlime uses this technique to register post processors (https://github.com/kamchatka-volcano/cmdlime#using-post-processors)
Right now, the big problem is that UnknownDataHandler should be called inside the ConfigReader::load() method, which doesn't have access to the current config type. It's also not possible to convert it to the template method taking a config type as a template argument because load() is a virtual method that is invoked polymorphically through the detail::IConfigReader* pointers. So currently, this problem needs some research; right now, I can't even say if it's even possible with the current design.

I'm closing the PR, as this functionality was implemented in v3.0.0


Replace req.url with req.originalUrl in Express extractor

Fixes URL path not being set correctly

[x] Tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

@DominicKramer this is gettin moldy.  Should we close it out?

On further thought, it looks like req.url is the url we should use so that if the app rewrites it, the error will report the rewritten url.  As a result, I will close this.


Non staff user should be able to fetch collections from products

I want to merge this change because non staff user should be able to fetch collections from products

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Task linked: SALEOR-1936 Non staff user cannot query collections field in prod


bcp version less than 15 after update

on Win10 machine I used the page link to 'download Download Microsoft Command Line Utilities 15 for SQL Server (x64)'
Ran the .msi file
From the page: To check the BCP version execute bcp /v command and confirm that 15.0.1300.359 or higher is in use.
cmd line 'bcp /v' shows Version: 14.0.2027.2   ???
BCP does work...

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

ID: 86bd520a-7468-fd55-c357-b0f645a917ef
Version Independent ID: 3dc9dee5-afcb-8287-4441-e84ff717186a
Content: bcp Utility - SQL Server
Content Source: docs/tools/bcp-utility.md
Product: sql
Technology: tools-other
GitHub Login: @markingmyname
Microsoft Alias: maghan

@rjrjack -- thank you for your feedback.  I will pass it along!


Removed LuceneDemoTest from team6 main folder

Removed LuceneDemoTest class from team6LuceneTweetExample main folder, which is causing a compilation error.. @inkudo Can you please review it quickly?

Looks fine. Please merge.


Added Eclipse Temurin Java 17 JDK from Eclipse Adoptium project for Linux agents

Description
Added Java 17 JDK for Ubuntu 18 and 20 from the official APT repository of the Eclipse Adoptium project, see https://blog.adoptium.net/2021/12/eclipse-temurin-linux-installers-available/.
This PR also (automatically) updates Java 8 to 8.0.312+7 and Java 11 to 11.0.13+8 and Gradle to 7.3.3 (as it is installed with a 'latest' version in the same script). The default for Ubuntu 18 is kept at version 8 and the default for Ubuntu 20 is kept at version 11.
Version 12 is removed from Ubuntu 18 as it is no longer supported by most vendors (it wasn't an LTS version for any vendor).
Related issue:
https://github.com/actions/virtual-environments/issues/4085
Check list

[x] Related issue / work item is attached
[ ] Tests are written (if applicable)
[x] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

Hi @Davio .
I'm going to close this PR.
@mikhailkoliada is working on this. There's a lot more changes needed to be done.


Web Support

Any plans of adding web support?

Not sure at the moment.... But will spare some time to read about it...

is there any possibility to migrate the project to android v2?


jxlmux tool

We don't currently have any tool to handle the jxl container format, and do things like:

extract, add or strip Exif/XMP/JUMBF boxes
Brotli-compress/decompress Exif/XMP/JUMBF boxes to/from brob boxes
strip jpeg bitstream reconstruction box
convert between naked codestream and container-wrapped codestream

Such a tool would be useful, as well as corresponding API functions (ideally the tool would use the API).

Closing this one since I accidentally created a new, similar one (https://github.com/libjxl/libjxl/issues/871).


WIP: restore isAlive behavior for consul liveness check (issue #713).

FYI @psuter
Will pile this on as part of #722.

Replaced with newer PR.


[Feature] Want to add Profile update from .

Description
A Profile Update Form is a web form designed to allow users to modify and update their personal information stored on a website or application.
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Do you have supporting screenshot @Pujan-sarkar


Close hanging tasks in correlateFindings Action workflow

Description
Close hanging tasks in correlateFindings Action workflow
Issues Resolved
#879
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Moving this commit to #880


Invalid GraphQL requests must result in HTTP 400 responses

As explained in the GraphQL over HTTP spec:

If the GraphQL response does not contain the {data} entry then the server MUST reply with a 4xx or 5xx status code as appropriate.
Note: The GraphQL specification indicates that the only situation in which the GraphQL response does not include the {data} entry is one in which the {errors} entry is populated.
If the GraphQL request is invalid (e.g. it is malformed, or does not pass validation) then the server SHOULD reply with 400 status code.

Currently Spring for GraphQL responds with an HTTP 200 OK response in this case:
{
  "errors": [
    {
      "message": "Validation error (FieldUndefined@[spring]) : Field 'spring' in type 'Query' is undefined",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    }
  ]
}

@erwinc1 Yes. I've updated the title.
We discussed this issue this morning and we are pausing it to get some clarification about this. Other issue comments seem to contradict this statement in the spec.

Just to add "from the horse's mouth" to this:

If the GraphQL response does not contain the {data} entry then the server MUST reply with a 4xx or 5xx status code as appropriate.

This is still true for responses that are served using the application/graphql-response+json media type.
Note: all servers are expected to support the application/graphql-response+json media type by 1st Jan 2025, and clients should start adding it to their Accept headers now so that they can get the goodness of HTTP status codes if the server supports them, without the ambiguities inherent in using HTTP status codes with legacy GraphQL-over-HTTP.

only requests that cannot be parsed should result in 4xx/5xx response status codes.

This is true for responses using the application/json legacy media type only.