Revise transient progress reporting

The progress bar shown on the /transients page should be based on the fraction of tasks in a transient workflow that are still possible to process instead of the fraction of tasks that have the status "processed". In other words, "progress" should refer to the data processing activity, not the amount of information that Blast can in general calculate for a transient.
Look at the example of transient 2024ijh: The "validate local photometry" task results in a "no valid phot" state, which precludes the processing of the "Local host SED inference" task. If all possible tasks have completed and no further data processing will take place for that transient, then the progress should be 100%.

see PR #239

@djones1040 The get_progress() function you improved is only executed by the _run_process() function when a task is executed, and I see that the "Log transient processing status" periodic system task is disabled (app/host/system_tasks.py:263). Should we reconcile and consolidate these two progress updater functions (perhaps by calling get_progress() from the periodic task and enabling it), or does it make more sense to define a summary progress task and add it as the final task in the transient workflow app/host/workflow.py:80? The latter sounds cleaner, since by design the workflow's Celery tasks will all execute even when the results of individual processing stages block subsequent dependent stages, ensuring that the final progress calculation is executed.

unfortunately if we add it as a final task, it will only update the progress once, so it'll only give the progress when it's 0 or 100%.  The system tasks one does all transients at once so it was getting crazy slow as the database size increases, so I think that one should be gone for good.

The system tasks one does all transients at once so it was getting crazy slow as the database size increases, so I think that one should be gone for good.

Roger that.

unfortunately if we add it as a final task, it will only update the progress once, so it'll only give the progress when it's 0 or 100%.

There would still be the call to get_progress() in each task's _run_process() function, so it should progress with each task execution.

oh I don't think we need it at the end of the workflow if it's being run after the final task already though right?

Your update looks like it has fixed this issue. I retriggered a set of recent 2024i* transients and monitored their Celery task progress while refreshing the /transients page, and the progress bars advanced properly. Workflows (e.g. 2024inn, 2024ino, 2024inp) aborted due to "no GHOST match" or "no valid phot" are shown as completed, and they also show that even those host matching failed, the local aperture photometry processing stage was not blocked.

thanks for checking!


Is it possible to support 2DGS?

https://github.com/hbb1/2d-gaussian-splatting
2DGS has smaller result file by filtering points and changing scale from 3 float to 2 float.
Usually, training using default parameters and the same images, 2DGS would have a result which is half of 3DGS's.
And the edge point of the object is more clear than 3DGS.
By manually change the 2DGS ply file to 3DGS ply file (add 3rd scale with small value like 0.00001),
supersplat could be used to delete points.
But the preview is not correct.
Is it possible to support 2DGS, or where could I change the preview algorithm manually?
Thank you.
2DGS (add 3rd scale):

3DGS:

Hi @oUp2Uo , can you provide an example 2dgs file? Thanks!

Thanks for the reply.
2DGS ply has almost the same format as 3DGS.
The difference is that the header do not have property float scale_2.
Here is one simple example I have trained and then edited as I said.

point_cloud.zip

I tried adding scale_2 with 0's to this model at load time, but it doesn't work.
I created an issue on the original repo here. Perhaps the original authors can help.

I'd forgotten PLY stores log(scale). Here is your model in SS with the simple loading change:

If you want to do this yourself make sure scale_2 is filled with Math.log(1e-06) or similar.
We could also add support for adding the missing scale_2 on load, but then we'd probably need to remove scale_2 on saving.

Can u share your code? I can see nothing when I test the point cloud

Thanks for the reply.
2DGS ply has almost the same format as 3DGS. The difference is that the header do not have property float scale_2.
Here is one simple example I have trained and then edited as I said. Could not have the correct preview, so the result has many noises.

point_cloud.zip

I don't understand how to modify the code.


Adds the 'flow run cancel' command. Closes #1870

Closes #1870
Remarques:
Needs squashing commits

Awesome 👏🏻 Thank you @Abderahman88 we will review shortly 👍🏻
We can squash the commits for you at merge time.
You may however find this guide helpful https://garrytrinder.github.io/2020/03/squashing-commits-using-interactive-rebase

Merged manually. Thank you! 👏


add improved pagination

Improves pagination by:

keeping always the same number of visible buttons (as an option keepButtonsNumber true/false, defaults to false)
always show first/last buttons (if not on first/last page)
adds ellipsis "symbol" for invisible part of pagination
changes behavior of pageButtonLimit option it is now not the total number of buttons but number of buttons on each side from active button (previous meaning of this option doesn't make sense for my solution)

Examples has settings keepButtonsNumber=true and pageButtonLimit={1}.
This is how it looks like with default styling:

And here is pagination styled with bootstrap 3 (I didn't make pull request with bootstrap version but if you want it I can share it):

CI error is caused by number of visible buttons which is now different, it is OK (IMHO).

I'm conceptually OK with this, but it needs tests

Unfortunatelly I get strange error when I try to run default test suite.
Running "karma:unit" (karma) task
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
  TypeError: 'undefined' is not an object (evaluating '_reactTransformHmr2["default"]')
  at /Users/user/Work/ruby/react/github/reactable/build/reactable.js:233
PhantomJS 1.9.8 (Mac OS X 0.0.0): Executed 0 of 0 ERROR (0.072 secs / 0 secs)
Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.

Do you have any idea what's going on?
Line 233 is:

    var _reactComponentWrapper = (0, _reactTransformHmr2["default"])({
        filename: "src/reactable/filterer.jsx",
        components: _components,
        locals: [module],
        imports: [_react2]
    });

Please tell me if I should look for issue in the code or in my tools (maybe this is some PhantomJS bug)

I found nasty bug in the code, so I'm closing this PR till I find a solution.


update test reporting

The set-output command is deprecated and will be disabled soon. See:
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
This is caused by the test reporting: update it.

Coverage: 96.458% (+0.1%) from 96.319% when pulling 53dbb73d61bf9554026e5fee5c0e32fec7af52ba on users/alexpeck/save-state into 5df1ff390adb4a5ecf7b90229970a76189c5093f on main.


feat(root): add vue output target

Summary of the changes
Adds vue to the ic-ui-kit target. The package works, compiles and everything. It just misses tests and a filled readme/documentation.
You can test it locally using this repo
->

clone the repo
npm i
npm run dev
open browser to port 5173

Screenshot

Related issue

#2876

Checklist
General

[ ] Changes to docs package checked and committed.
[ ] All acceptance criteria reviewed and met.

Testing

[ ] Relevant unit tests and visual regression tests added.
[ ] Visual testing against Figma component specification completed.
[ ] Playground stories in React Storybook up to date, with any prop changes and additions addressed.
[ ] Compare performance of modified components against develop using Performance addon in React Storybook.

Accessibility

[ ] Accessibility Insights FastPass performed.
[ ] A11y unit test added and yields no issues.
[ ] A11y plug-in on Storybook yields no issues.
[ ] Manual screen reader testing performed using NVDA and VoiceOver.
[ ] Manual keyboard testing for keyboard controls and logical focus order.
[ ] Correct roles used and ARIA attributes used correctly where required.
[ ] Logical heading structure is maintained, and the HTML elements used for headings can be changed to fit within the wider page structure.

Resize/zoom behaviour

[ ] Page can be zoomed to 400% with no loss of content.
[ ] Screen magnifier used with no issues.
[ ] Text resized to 200% with no loss of content.
[ ] Text spacing increased as per the WCAG 1.4.12 success criterion with no loss of content.

System modes

[ ] Browser setting 'prefers reduced motion' tested. No animations or motion visible whilst this setting is on.
[ ] Windows High Contrast mode tested with no loss of content.
[ ] System light and dark mode tested with no loss of content.
[ ] Browser support tested (Chrome, Safari, Firefox and Edge).

Testing content extremes

[ ] Min/max content examples tested with no loss of content or overflow.
[ ] All prop combinations work without issue.
[ ] Tested for FOUC (Flash of Unstyled Content) in both SSR (Server-Side Rendering) and SSG (Static Site Generation) settings.
[ ] Controlled and uncontrolled input components tested.
[ ] Props/slots can be updated after initial render.

Thank you for your contribution! We do not have the resources to maintain this additional output and have not had enough people express interest in Vue specific components to warrant creating a separate Vue package. For this reason, I'm closing this PR

Understandable 👍🏾


Enhance the data package

Basically plagiarise the ideas from this page.

[ ] Implement the Merton Jump-Diffusion Model and the Heston Stochastic Volatility Model.
[ ] Add more compelling data generator documentation/example.

Also check out the links at the top of the pages for sample code.

Newest link is http://stuartreid.co.za/interactive-stochastic-processes/

Thanks @jdunkerley, I'd spotted it had broken but hadn't worked out where it had gone.

Superseded by https://github.com/d3fc/d3fc-random-data/issues/3


Added a ReDirect Button To save time

When Kirat teaches, he occasionally needs to switch to ExcaliDraw to explain concepts more effectively. To save time, I've added a button that redirects to ExcaliDraw.

When Kirat teaches, he occasionally needs to switch to ExcaliDraw to explain concepts more effectively. To save time, I've added a button that redirects to ExcaliDraw.

not needed

yo hkirat do we still need the note making functionality ? im almost done but not sure if we still want it ?


Sub-annual time step compatibility

With @behnam2015 we went through the model core and highlighted parts of code that are not yet including sub-annual time steps and this feature might be useful.

Equations where time is missing but it is probably not necessary:
EXTRACTION_EQUIVALENCE, RESOURCE_CONSTRAINT, STOCKS_BALANCE and related
OPERATION_CONSTRAINT, MIN_UTILIZATION_CONSTRAINT

Equations where time is missing and it would make sense to have it. However, it would lead to backwards incompatibility issues
EMISSION_EQUIVALENCE, EMISSION_CONSTRAINT
RELATION_EQUIVALENCE

We also highlighted parts that might be incompatible or that might not be flexible to set year-to-substep mappings. For example in the commodity balance the demand can be yearly and the supply at the sub-annual time level. We are not sure if this is true for other blocks of equations and we think some others' opinion is necessary.
ADDON_ACTIVITY_LO and _UP
SHARE_CONSTRAINT_COMMODITY_UP and other share constraints
RENEWABLES_EQUIVALENCE, SYSTEM_RELIABILITY_CONSTRAINT, SYSTEM_FLEXIBILITY_CONSTRAINT and all renewable related equations

In terms of compatibility, I am not sure if renewable_capacity_factor should have time in it. If it is simply a multiplier at different grades and the variability in renewable capacity factor can be expressed in capacity_factor, then it should be fine.

@ Adriano, I'd like us to pick this and tackle the issues one by one. As the first step, I will create a separate discussion for the third bullet point (commodity balance equation and timesteps).


Similarity maps applying machine learning model

Hi,
Thanks for develop so useful code for the cheminformatic community. I have a question, and I hope that you could help me. When you apply similarity maps using a machine learning model for obtain information about what part of the molecule is contribuiting to respond your question (solubility, toxicity...whatever kind of class problem). would it be possible extract a dataset where you have the parts of molecule which are contributing to a low solubility or toxicity?
Thanks,
Pablo

I'm closing this because it is a question, not a bug report or enhancement request.
Please ask questions using the "Discussions" tab.


Adapt the indoor routing algorithm to integrate seamlessly with MapLibre GL

heavily inspired from:
https://github.com/maplibre/maplibre-gl-directions/tree/main
https://github.com/perliedman/geojson-path-finder/tree/master?tab=ISC-1-ov-file

Have u guys looked into osrm cause maplibre GL direction is using it but because osrm hosted api is driving, it cannot do walking

Yes, of course. We also use it for outdoor route visualization, but for indoor routes, the route calculation doesn't have to be done on the server; instead, it can be done on the client. That's what we are trying to achieve.

does this mean u are using osrm for outdoor route and for indoor route it's purely on the client or u are aiming openIndoormaps to be an entirely client side application

only the indoor route calculation should be done on the client

any reason why do u want to make it only client for indoor ? It's usually bad practice to reinvent the wheel especially considering how powerful routing engine like osrm and vallahala exists with a very big community already. Furthermore, it will complicate the routing process if the user want to navigate something like within their uni campus as it can involves going through multiple indoor and outdoor spaces.
Also do u guy got any discord or something, I still has a lots of question i.e I am gonna bloat the comment of this issue... and I am very interested in contributing

I understand your point, but we decided to use client-side routing because it would be more performant to do the route calculation on the client since the graph is very small. The functionality of other routing services would be overkill for simple indoor routing. Other solutions also handle indoor routing on the client side.
Very nice of you that you want to join the team, we do have a discord channel. we just need to make a few changes,and then we will invite you so we can talk

Here you can join us: https://discord.gg/gaDkUGag


Set Token on ExpiredTokenException

Set Token on ExpiredTokenException
This can be useful when you want to fetch the token when it is expired.

It looks like there are some issues on the CI that are not related to this pull request. Can anyone take a look at it ? @chalasr

Thank you @AdrienBr.


Attachments are not accessible from public pages

Bug introduced in 0fef112ad3f7aeff4c491064f8a4c63700bc57cc
File path handling was changed when Attachment service was introduced, but this change wasn't accommodated in the Public controller.

Fixed in #662


K8SSAND-1113 ⁃ PVC is not used when deploying with the example config

What happened?
After creating a Cassandra cluster, everything is created as expected. But the data is not written into the PVCs. Inside the container I can see that the data is actually written to /opt/cassandra/data/data. This is because the default location is $CASSANDRA_HOME/data/data (can be seen here).
To write to the PVC one has to add these lines to the cassandra.yaml.
data_file_directories:
    - /var/lib/cassandra/data
hints_directory: /var/lib/cassandra/hints
commitlog_directory: /var/lib/cassandra/commitlog
cdc_raw_directory: /var/lib/cassandra/cdc_raw
saved_caches_directory: /var/lib/cassandra/saved_caches

Did you expect to see something different?
I expected the cass-operator to set all configs so that data is automatically written to the VolumeClaim. If that expectation was wrong then I would expect the example configuration to reflect that.
How to reproduce it (as minimally and precisely as possible):
Environment

Cass Operator version:
cass-operator v1.5.0
Kubernetes version information:
1.20
Kubernetes cluster kind:
Openshift
Manifests:

apiVersion: cassandra.datastax.com/v1beta1
kind: CassandraDatacenter
metadata:
  name: dc1
spec:
  clusterName: a-cassandra-cluster
  serverType: cassandra
  serverVersion: 3.11.7
  managementApiAuth:
    insecure: {}
  size: 3
  resources:
    requests:
      memory: 5Gi
      cpu: 3
    limits:
      memory: 5Gi
      cpu: 3
  storageConfig:
    cassandraDataVolumeClaimSpec:
      storageClassName: storage
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 100Gi
  config:
    cassandra-yaml:
      num_tokens: 8
      authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
      authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
      role_manager: org.apache.cassandra.auth.CassandraRoleManager
    jvm-options:
      initial_heap_size: 2G
      max_heap_size: 2G
      additional-jvm-opts:
        - "-Dcassandra.system_distributed_replication_dc_names=dc1"
        - "-Dcassandra.system_distributed_replication_per_dc=3"

Cass Operator Logs:
n/a

Anything else we need to know?:
┆Issue is synchronized with this Jira Task by Unito
┆friendlyId: K8SSAND-1113
┆priority: Medium

Thanks for the info. Unfortunately, I don't have control over the operator version we are using and currently we do not have a newer version available to us.

For me it looks like this (before changing the config):
sh-4.2$ ls -l /opt/cassandra/data/
total 0
drwxr-xr-x. 2<PHONE_NUMBER> root  80 Dec  8 14:25 commitlog
drwxr-xr-x. 9<PHONE_NUMBER> root 152 Dec  8 14:30 data
drwxr-xr-x. 2<PHONE_NUMBER> root   6 Dec  8 14:25 hints
drwxr-xr-x. 3<PHONE_NUMBER> root  22 Dec  8 14:26 mcac_data
drwxr-xr-x. 2<PHONE_NUMBER> root  49 Dec 13 18:25 saved_caches

Is the different user relevant? I think that's due to our cluster setup.
For the manifest I followed this one: https://github.com/datastax/cass-operator/blob/master/docs/user/README.md#example-config

After some more testing, I found out, that the issue only happens with the UBI image of the cass-operator. It happens for both v1.7.1 and v1.5.0

The image I used for testing (1.9.0) is UBI always these days. But the build process was changed between 1.7.1 and 1.8.0 for UBI, so it's possible that older images have this issue.

Thanks for the info. Unfortunately, Redhat does not yet provide a newer image than 1.7.1

We'll work on getting the Red Hat catalog updated.

Can confirm that RH catalog lists 1.5.0 as the latest available version, would be great to have 1.9.0 as an option in OpenShift :pray:


[Tracking Issue][UX][Unity] Private annotations in TVMScipt

Global symbol right now needs to be manually attached, for better UX, it is desirable to move to the following model
class IRModule:
    # implies a private function
    @R.function(private=True)
    def func1():
        pass

    # implies a function with global_symbol=func2, and we do not need to fill in the attr field.
    @R.function
    def func2():
         pass

cc @quic-sanirudh

cc @yongwww @Hzfengsy @cyx-6

i think below would work
def dec(f=None, label=None):
     def wrap_function(f):
        def wrapper(*args, **kwargs):
            if f is None:

    if f is not None:
         return wrap_function(f)
    else:
         return wrap_function

Wow, that is a very clever solution and it indeed works. I will implement this solution for purity annotations and we can also use it for privacy too.

Implemented


Auto Create AIR Project

Hello guys.
I already achieved to add multiple folders into a single workspace and named it AIR Workspace. When I hit CNTRL + ENTER, then I can choose which project to debug/release. But only projects which I add the asconfig.json, .vscode>launch.json and .vscode >tasks.json to, appear in the drop down to be build for debug/release, so to fix that, I'd have to go folder by folder adding those files and setting them up.
So my question is, is there any way to just create an AIR Project and all those required files automatically get created, like in FlashDevelop?
FlashDevelop:
1- Create Project
2- Select Project Type (Air Desktop Projector, Air Mobile APP, etc.)
3- All the neccesary files are created automatically for that project and the project it's ready to be build for debug/release.
Thank you!

As I understand Microsoft's philosophy with Visual Studio Code, it tends to encourage you to manually create configuration files that you need... as you need them. They seem to treat VSCode slightly more as a text editor than an IDE, which involves more manual configuration. As I work on the AS3 & MXML extension, I try to look to how Microsoft implements similar features for their core languages supported by VSCode, including TypeScript and JavaScript. They don't have commands to automatically create tsconfig.json, tasks.json, and launch.json all in one step, so I don't do that either.
This is a perfect place for someone like @neminovno to come along and provide another extension for people who want a more IDE-like experience. One nice thing is that VSCode supports extension packs, so you can bundle the AS3 & MXML extension with others to create a single package that provides all the bells and whistles.

Wow this community is very active!
Thanks guys for responding so fast and for the solutions provided.
If nothing left to add, you can close this issue.

@angelhdz AIR desktop app can be created using Flex/AS and only AS so that is why are those project names. Anyway, once I create new repo please create any issues you have. Last 30 days I was offline most of the time. First I need to catch up with all the work that @joshtynjala has done.
For fast project creation, idea is to have menu item on right click in explorer menu like this:

I Wanna thank you @neminovno . Still using your extension to create AS projects.
Cheers!


operator/v1/types_network: IPsec enablement

Add flag to enable IPsec for OVN Kubernetes
Signed-off-by: Mark Gray<EMAIL_ADDRESS>

/retest

@sttts @soltysh Made those updates as requested. CI is failing but make verify passes for me?

LGTM.
This needs some other networking team member to lgtm.

/lgtm


Replace stop with signal/kill and delete

The spec currently states in runtime.md:
stop <container-id>

This operation MUST generate an error if it is not provided the container ID. This operation MUST stop
and delete a running container.

Stopping a container MUST stop all of the processes running within the scope of the container.

Deleting a container MUST delete the associated namespaces and resources associated with the container.

Once a container is deleted, its id MAY be used by subsequent containers.

Attempting to stop a container that is not running MUST have no effect on the container and MUST generate an error.

In a discussion with @crosbymichael https://github.com/opencontainers/runc/issues/681 it was pointed out that the spec does not explain "how" or what it means to "stop."  Suggest changing the spec to remove stop and replace it with the requirement for a signal or kill command, and a delete command.
Thoughts?

On Wed, Mar 23, 2016 at 11:44:38AM -0700, Mike Brown wrote:

In a discussion with @crosbymichael it was pointed out that the spec
does not explain "how" or what it means to "stop."  Suggest changing
the spec to remove stop and replace it with the requirement for a
signal or kill command, and a delete command.

Previous discussion on what stop would mean in [1,2].  Should we move
this to the list (see also 3)?
 Subject: Definining "container" and "container processes" on Linux
 Date: Thu, 8 Oct 2015 09:47:08 -0700
 Message-ID<EMAIL_ADDRESS>
 Subject: Clarify distinction between ‘stop’ and ‘delete’
 Date: Wed, 23 Mar 2016 11:49:35 -0700
 Message-ID<EMAIL_ADDRESS>

There was some discussion in today's meeting 1, with the main
concern being “is a signal-based approach portable”.  It looks like
basic signal handling is part of ISO C 2:
The ISO C standard only requires the signal names SIGABRT, SIGFPE,
SIGILL, SIGINT, SIGSEGV, and SIGTERM to be defined.
so an OCI signal command that sends those should be portable to other
systems.  However, signal(2) has 3:
The signals SIGKILL and SIGSTOP cannot be caught or ignored.
so I think we want the spec to have a ‘signal’ command (possibly
called ‘kill’ to match POSIX 4) which also supports a an uncatchable
kill (which may be SIGKILL on Linux, but another action for VM-based
containers or other platforms that don't support an uncatchable
SIGKILL).  The uncatchable kill is @julz' “forceful stop” 5, which
seems like a cross-platform idea.
I'm not sure how VM-based platforms would handle requests for SIGTERM,
but I'm ok with spec wording that requires the requested ISO C signal
be sent if possible, or an unsupported error be raised if impossible.
I'm not clear enough on Window's containers to know if they also
support sending SIGTERM, etc. into the main container process.  But
the worst-case scenario (VM-level support, erroring on anything except
SIGKILL requests) seems like an acceptable lower bar.  @RobDolinMS may
be able to add more clarity there.
I think we need to explicitly say which runtime calls trigger which
signals because the non-KILL signals are a mechanism for runtime
callers to communicate with their container process (e.g. SIGTERM says
“please stop gracefully”).  If we don't specify which signals a
runtime call sends, it's hard to write portable container images (What
do you listen for to trigger a graceful shutdown?  Which container
processes might receive that signal from the runtime?).

Done in #384.  I think we can close this.

Issue has been satisfactorily resolved by removing the stop operation and adding kill (with optional signal values for platforms that have signal support) and delete.

runc pause
kill   // PID field from runc list
runc resume
#at this time, runc list shows container in stopped
runc delete


RCS is broken!(aimPunch)

The RCS is broken(aimPunch). When you are controlling your spray with the cheat, it does infact control the recoil; however, your crosshair does not go along with the recoil therefore you can never use this cheat while streaming. It is simply impossible for your recoil to control like this. It also throws off your muscle memory.
What the cheat RCS looks like - https://gfycat.com/rewardingzigzaggalapagospenguin
What recoil control looks like legitly - https://gfycat.com/blindweightyhartebeest
Can you see the difference? Please address the issue, I know you make constant updates.

Yeah, my opinion is same.
Of course, RCS work really great now - but only, if we are talking about where the bullets go, and accuracy.
Other thing is the how RCS works, wtf it wont be ever legit if someone have crosshair 6 feets over where the bullets go.

https://www.unknowncheats.me/wiki/Counter_Strike_Global_Offensive:Recoil_Compensation
Read INTERNAL. This is what happened in your cheat! They gave example how to fix it

Should be fixed.

Should be fixed.

Now it's standalone RCS  👎


CFP: ServiceImport auto creation for MCS-API

Cilium Feature Proposal
The goal of this issue is to discuss how we can implement ServiceImport auto creation in the context of the MCS-API implementation within Cilium (related to issue #27902 and PR #32555 that triggered this).
Here is for context how the Cilium MCS-API should look like from a somewhat high level view (and simplified):

Each color represent one separate mechanism/kubernetes controller, the blue and green represent mechanisms outside of the scope of this issue but are included in the schema for context. Our main focus here are the red arrows which is about how the ServiceImport is created.
As you can see in the schema the goal of the controller that would auto create the ServiceImport object is to aggregate all the exported service (the ServiceExport resource + its associated Service) of the same name and manage the ServiceImport object based on that. The aggregation is supposed to take the data from the Service related to the oldest ServiceExport resource (based on the creation timestamp).
So we need to have at least the following data from each service that are exported through MCS-API:

The creation timestamp of the ServiceExport object (to resolve conflict)
The list of ports
The type (in the sense of ServiceImport, meaning if it's headless or not)
The session affinity (which for additional context is split into two fields SessionAffinity and SessionAffinityConfig)

We cannot retrieve as is these info from the derived service that is already shared and global through the traditional Cilium/non MCS-API means as the info there would be post-aggregation and we need to get the original data pre-aggregation.
Also note that we don't necessarily have to use the mcs-api struct or even the kubernetes api struct directly to share these data, we could theoretically have our own as long as we are able to reconstruct similar data noted in the list above.
Solution 1: encoding the JSON data in a annotation in the derived Service
This solution would involve copying the data that we need into the derived Kubernetes Service encoded in JSON through an annotation (initial proposal in PR #32555 was doing this).
This allows to reuse all the existing clustermesh infrastructure that allow to share services and build controllers (for instance the GlobalServiceCache) which I believe could helps keeping the MCS-API implementations much more contained in its own package. Encoding some JSON data in an annotation is probably not very common (and even a bit weird) but is also not something that was never done before in the Kubernetes world as for instance kubectl does that for its last applied annotation.
Solution 2: Store directly the data in ClusterService objects without going through an annotation
This is somewhat similar to Solution 1, but here we would instead try to store the data directly in the ClusterService objects without exposing it in an annotation in the derived Service.
The obvious advantage here is that we don't expose (somewhat) unnecessary info in the derived Service object through an annotation.
But from what I can see the implementation could be significantly more complex as the ClusterService struct is directly derived from the cilium Service struct which means that we would have to develop a controller (or update the existing one that create the cilium Service struct) that would detect derived Service and check its corresponding Service and ServiceExport and directly inject data in the cilium Service objects or ClusterService. This sounds kind of complex to do and would most likely (?) involve much more code dealing with MCS-API outside of the mcsapi go package and even a good amount of code in go packages that are not even directly related to clustermesh at all.
Solution 3: Create a new type of objects shared in a clustermesh
This involves creating a separate type, for instance MCSAPIServiceExport, shared in the clustermesh like we do for nodes, services, identities and endpoint.
The advantage is similar to solution 2 with probably a significantly less complex implementation. However, this solution would still most likely involve updating a bit more code outside of the mcsapi go package than solution 1 as we would need to add this new type in a few places in the clustermesh code + we would probably have to rebuild/refactor things to have something similar in term of features to the GlobalServiceCache to build the controller that would create ServiceImport.

Hi @giorio94 @YutaroHayakawa @joamaki :wave: , here is the issue that I promised on https://github.com/cilium/cilium/pull/32555, describing the ServiceImport creation mechanism and how we would deal with sharing the data that we need in the clustermesh.
Let me know if something is unclear or need more details and which proposed solution (or another solution if you have some other ideas to implement this) you would like to see being implemented.

Thanks @MrFreezeex for the write-up, this is definitely useful to better understand the overall context.
Based on my understanding so far, I'm personally in favor of option 3, that is the introduction of new dedicated etcd path for MCS-API related information (the specs of Services targeted by ServiceExports if I'm not missing anything). To me, the biggest advantage would be the clear separation between what needs to be accessed by the MCS-API logic inside the Cilium Operator, and the already existing Cilium agents side logic to implement global services, especially considering that they depend on pretty different fields. The segregation would enable improved flexibility of the MCS-API side until the implementation is fully settled, as well as increased performance as each component needs to only retrieve the information that actually needs. For instance, the ServiceExports representation does not depend on the actual endpoints, and omitting them allows to reduce the number of events to be processed in that case by the MCS-API logic.
Overall, in terms of implementation, I wouldn't expect it to be much different compared to the annotation-based solution (except for the need of the additional synchronization logic, but you could mostly reuse already existing building blocks there). Yet, it avoids piggy-backing partially unrelated information into the derived services, as well as the possible fragility of annotations.
That said, let me try to summarize my understanding of the overall flow in that case, to verify whether we are aligned there. Let's suppose we have two clusters A and B, with a Service S in cluster A to be exposed in B as well.

The user creates the Service S in cluster A, and subsequently a ServiceExport with matching namespace/name;
The clustermesh-apiserver (or cilium-operator, depending on whether Cilium operates in CRD/KVStore mode) observes the creation of the ServiceExport, and exposes the necessary information inside etcd.
The cilium-operator in every cluster combines for each ns/name the local ServiceExport information (if present) and the entries retrieved from the remote clusters through etcd, and creates the corresponding ServiceImport merging the different fields according to the conflict resolution strategy.
The cilium-operator in every cluster reconciles the ServiceImport and creates the corresponding derived service (i.e. with name derived-$hash). The derived service is marked as global, and optionally shared if the ServiceExport is present in the local cluster.
cilium-agents configure the BPF maps to load-balance that address using all available endpoints via the usual global service mechanisms.
The cilium-operator optionally (e.g., in case of headless services) creates endpointslice objects for the endpoints in remote clusters via the logic you already introduced.
The already existing MCS-API controller reflects the Service's ClusterIP into the dedicated field of the ServiceImport resource.
Users in all clusters can access the exported service via the multicluster-aware DNS name.

/cc @marseel FYI, and in case you have any additional thoughts here.

Thanks for your input @giorio94 :pray:.

Based on my understanding so far, I'm personally in favor of option 3 [...]

Sure, that sounds fair :+1:. Also this would allow me to decouple it from the endpointslicesync package (which I wanted to use to read remote service info), which is a good thing as it's cleaner although a bit more code would be involved.

That said, let me try to summarize my understanding of the overall flow in that case, to verify whether we are aligned there. Let's suppose we have two clusters A and B, with a Service S in cluster A to be exposed in B as well.
1. The user creates the `Service` S in cluster A, and subsequently a `ServiceExport` with matching namespace/name;

2. The clustermesh-apiserver (or cilium-operator, depending on whether Cilium operates in CRD/KVStore mode) observes the creation of the `ServiceExport`, and exposes the necessary information inside etcd.

3. The cilium-operator in every cluster combines for each ns/name the local `ServiceExport` information (if present) and the entries retrieved from the remote clusters through etcd, and creates the corresponding `ServiceImport` merging the different fields according to the conflict resolution strategy.

4. The cilium-operator in every cluster reconciles the `ServiceImport` and creates the corresponding derived service (i.e. with name `derived-$hash`). The derived service is marked as global, and optionally shared if the `ServiceExport` is present in the local cluster.

5. cilium-agents configure the BPF maps to load-balance that address using all available endpoints via the usual global service mechanisms.

6. The cilium-operator optionally (e.g., in case of headless services) creates endpointslice objects for the endpoints in remote clusters via the logic you already introduced.

7. The already existing MCS-API controller reflects the Service's ClusterIP into the dedicated field of the `ServiceImport` resource.

8. Users in all clusters can access the exported service via the multicluster-aware DNS name.

Yep this is correct :+1:

not stale


feat: add cmakelint

@mason-org/triage notify(Reason::NewPullRequest)
This comment ensures a notification is delivered to maintainers.
 🤖 This is an automated comment.    📖 Source code


The Library is not able to release the locks - ARM platform

Hello,
I am building this library for ARM with GCC11.4 but found that if I launch my code as process using fork ( linux )  which call GAPP the code hangs and unable to proceed but if launched as boost::thread it works !!!!
if (auto* local_queue = local_worker_queue(); !local_queue)
{
remaining_tasks.wait();
}
else while (true)
{
while (!local_queue->empty()) { std::invoke(*local_queue->take()); }
if (remaining_tasks.try_wait()) break;
std::this_thread::yield();
}
The code gets stuck in While true loop in thread_pool.hpp. Please suggest !!! It works nicely in Intel
I even tried looking into architecture specific code : This also doesn't work
define GAPP_PAUSE() asm volatile("yield" ::: "memory") in utility.hpp
I am stuck for 2 weeks, any hit would be helpful

Hi,

What version of the library are you using? Can you try the latest version from master to see if it works?
If you are using the latest code from master and it still doesn't work, can you also try to run everything in the library on a single thread? You should be able to do this by calling gapp::execution_threads(1)  before running things from the library (and before calling fork). You can also try doing something like setting the number of threads to 1 before forking, and setting it back to a higher value after the fork call.
Can you provide more details about the issue? Please provide a complete example that can reproduce the issue, and a more complete explanation about what gets stuck, with stack traces.
If you can, prefer using std::jthread and std::thread over fork. It's generally not a good idea to mix multiple threads and fork.

Hello, I solved the issue, there is a bug in the library and major code issue : Let me explain the issue first, I created my code which links to the GAPP library as dynamic linked library. and my code was launched using Fork(), unfortunately code was hanging as Semaphores were not getting released. After careful debugging found the issue
struct execution_context
{
GAPP_API inline static thread_pool global_thread_pool;
};
Thread_pool.cpp, this creates the instance of thread_pool when library is loaded ( when parent process is loaded ) but was getting used by child process where semaphore were locked this was changed to
/*  struct execution_context
{
GAPP_API inline static thread_pool global_thread_pool;
};*/
template<typename F, typename Iter>
requires std::invocable<F, std::iter_reference_t<Iter>>
void parallel_for(Iter first, Iter last, F&& f)
{

     GAPP_API  static thread_pool global_thread_pool;
     global_thread_pool.execute_loop(first, last, 1, std::forward<F>(f));

}

Thus ensuring that the code only executes when object is created, if you find this useful please add to main branch.

Major Issue, I have a requirement of creating multiple instances of GA in my code and run them in parallel, but current code structure would fail in this as parallel_for is not part of any class hence all instances will use the same call, which is also not thread same, putting the parallel_for also in class structure holding instance of thread_pool would solve the issue. Please let me know, I can support if required and you find the information useful.

Please read my first comment, especially points 2 and 4. You can't just fork a multithreaded process, there is no issue with the library in this respect.
Regarding your second point, you should be able to do what you want without any issues. There are no threading issues in parallel_for.
See also:
https://stackoverflow.com/questions/12868724/threads-and-fork-how-can-i-deal-with-that
https://stackoverflow.com/questions/1235516/fork-in-multi-threaded-program


Build failure: Miso Sample app

Steps To Reproduce
Steps to reproduce the behavior:
$ nix-env -iA cachix -f https://cachix.org/api/v1/install
$ cachix use miso-haskell
$ git clone https://github.com/dmjio/miso
$ cd miso/sample-app
$ nix-build

Build log
error:
       … in the left operand of the update (//) operator
         at /nix/store/9r1vhvri4ba913g4vyg5jqrhg6pb9amn-source/pkgs/development/haskell-modules/lib.nix:39:7:
           38|     mkDerivation = drv: (args.mkDerivation drv).override f;
           39|   })) // {
             |       ^
           40|     overrideScope = scope: overrideCabal (drv.overrideScope scope) f;

       … in the left operand of the update (//) operator
         at /nix/store/9r1vhvri4ba913g4vyg5jqrhg6pb9amn-source/pkgs/development/haskell-modules/lib.nix:39:7:
           38|     mkDerivation = drv: (args.mkDerivation drv).override f;
           39|   })) // {
             |       ^
           40|     overrideScope = scope: overrideCabal (drv.overrideScope scope) f;

       … while evaluating a branch condition
         at /nix/store/9r1vhvri4ba913g4vyg5jqrhg6pb9amn-source/lib/customisation.nix:72:7:
           71|     in
           72|       if builtins.isAttrs ff then (ff // {
             |       ^
           73|         override = newArgs: makeOverridable f (overrideWith newArgs);

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: cannot coerce null to a string: null

Additional context
Previously raised and closed in the Miso project here back in 2022. Is this something that maintainers here are aware of?
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"aarch64-darwin"`
 - host os: `Darwin 23.5.0, macOS 14.5`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.21.2`
 - nixpkgs: `/nix/store/0kl2p60mvnpscnza21p8583sz3f60jxf-source`

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

@grahamegee Unless I'm misunderstanding something, I don't think this Nixpkgs repo is the correct place to report problems with the miso sample apps not building.
I imagine you'd have more luck reporting on the miso issue tracker.
Feel free to respond if this is actually some sort of Nixpkgs problem, and we can reopen this issue.

Oh, I just read https://github.com/dmjio/miso/issues/705 and the miso devs seem to say that they think this is some sort of Nixpkgs problem.
I'll reopen this, but we'd appreciate if someone could investigate exactly what is going on, and pinpoint what is causing the error here.

The error above comes from the very simple default.nix for the miso repo's sample app:
with (import (builtins.fetchTarball {
  url = "https://github.com/dmjio/miso/archive/refs/tags/1.8.tar.gz";
}) {});
pkgs.haskell.packages.ghcjs.callCabal2nix "app" ./. {}

so it doesn't look like a lot could be going wrong on the miso side (unless it uses some cabal features cabal2nix doesn't support?).

I got something similar, not entirely sure if it's the same issue or not.
Likely relevant part:
       … while evaluating a path segment
         at /nix/store/9r1vhvri4ba913g4vyg5jqrhg6pb9amn-source/pkgs/build-support/cc-wrapper/default.nix:151:12:
          150|     + (if nativeTools then ''
          151|       echo ${if targetPlatform.isDarwin then cc else nativePrefix} > $out/nix-support/orig-cc
             |            ^
          152|

       error: cannot coerce null to a string: null

Full trace: https://gist.github.com/ishamf/bd96b7a76cedb1a60bed0bcbe6ece449
It seems to point to this line.
I'm using an M1 Mac. So I assume that isDarwin is true. So it seems cc is null?
At the top of the file I see a few assertions
assert nativeTools -> !propagateDoc && nativePrefix != "";
assert !nativeTools -> cc != null && coreutils != null && gnugrep != null;

This seems to imply that cc should be used only if nativeTools is false. But the problem line uses it in this case.
So it seems either the assertion or the code is wrong. Or there is a missing assertion regarding to isDarwin, and the values of cc and nativeTools need to be updated for Mac somewhere.
Unfortunately I'm not very familiar with Nix, so I can't check it further.


[SPARK-21278][PYSPARK] Upgrade to Py4J 0.10.5

What changes were proposed in this pull request?
This PR aims to bump Py4J in order to fix the following float/double bug.
Py4J 0.10.5 fixes this (https://github.com/bartdag/py4j/issues/272).
BEFORE
>>> df = spark.range(1)
>>> df.select(df['id'] + 17.133574204226083).show()
+--------------------+
|(id + 17.1335742042)|
+--------------------+
|       17.1335742042|
+--------------------+

AFTER
>>> df = spark.range(1)
>>> df.select(df['id'] + 17.133574204226083).show()
+-------------------------+
|(id + 17.133574204226083)|
+-------------------------+
|       17.133574204226083|
+-------------------------+

How was this patch tested?
Manual.

Test build #79039 has started for PR 18502 at commit bfdfcf5.

Test build #79039 has finished for PR 18502 at commit bfdfcf5.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79039/
Test FAILed.

Test build #3827 has started for PR 18502 at commit bfdfcf5.

Test build #3827 has finished for PR 18502 at commit bfdfcf5.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #79044 has started for PR 18502 at commit f708dde.

Thank you for review, @srowen . I'll investigate the failure.

Test build #79044 has finished for PR 18502 at commit f708dde.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79044/
Test FAILed.

Merged build finished. Test FAILed.

Retest this please.

Test build #79076 has started for PR 18502 at commit f708dde.

Test build #79076 has finished for PR 18502 at commit f708dde.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79076/
Test FAILed.

Retest this please.

Test build #79093 has started for PR 18502 at commit f708dde.

Test build #79093 has finished for PR 18502 at commit f708dde.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79093/
Test FAILed.

Test build #79121 has started for PR 18502 at commit 5ba7b11.

Test build #79121 has finished for PR 18502 at commit 5ba7b11.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79121/
Test FAILed.

Actually, the Spark failure is due to flaky test.
However, for PySpark failures, we are hitting https://github.com/bartdag/py4j/issues/278 .
We need to wait for 0.10.6.

I'm going to close this PR for a while. Thank you and sorry for this PR, @srowen .


After loading the soft body (using flexcomp and with .msh file), the simulator crashed

hi,
I have a model from a BioTac, and I've converted the mesh into a .msh file. However, when I try to open the simulator using ./simulate and drag the XML file into the simulator, it shows a long loading time, and eventually, there's no response.
Here is the XML code:
<mujoco model="soft">
  <option timestep="0.01" integrator="implicitfast" solver="CG"/>

  <worldbody>
    <light diffuse=".5 .5 .5" pos="0 0 5" directional="true" dir="0 0 -1" />
	  <geom name="floor" type="plane" size="10 10 10" pos="0 0 0" rgba="1 1 1 1" />
    <flexcomp name="softbody" type="gmsh" dim="3" rgba=".8 .2 .2 1" radius="0.001" pos="0 0 .3" mass="10" scale="1 1 1" file="int_ext_skin_combined_ftw.msh">
        <edge equality="true"/>
    </flexcomp>
  </worldbody>
</mujoco>

The .msh file contains 4,246 vertices and 15,410 faces. Could the issue be caused by the data size being too large? Has anyone encountered the same problem? How much memory would be required for this? I was able to load it successfully on Colab, but calculating certain scenarios, such as falling, takes an extremely long time.
.msh file:
int_ext_skin_combined_ftw.zip
yifan

Please don't use the old MSH file format. We will remove it soon.
Use OBJ, let us know if this also fails and how, if yes.

Please don't use the old MSH file format. We will remove it soon.
Use OBJ, let us know if this also fails and how, if yes.

Thank you for your reply. I converted the file loaded in the flexcomp to .obj and set the type to mesh, with dim set to 2 (it shows that dim can only be 2 when using mesh).
Here is the code:
<mujoco model="soft">
  <option timestep="0.01" integrator="implicitfast" solver="CG"/>

  <worldbody>
    <light diffuse=".5 .5 .5" pos="0 0 5" directional="true" dir="0 0 -1" />
	  <geom name="floor" type="plane" size="10 10 10" pos="0 0 0" rgba="1 1 1 1" />
    <flexcomp name="softbody" type="mesh" dim="2" rgba=".8 .2 .2 1" radius="0.001" pos="0 0 .3" mass="10" scale="1 1 1" file="int_ext_skin_combined_ftw.obj">
        <edge equality="true"/>
    </flexcomp>
  </worldbody>
</mujoco>

However, it still crashes at the end.

Could you please suggest any more effective methods to simulate a soft body, especially where some of its faces need to be fixed to a rigid body?
here is the mesh file:
skin.zip

error from the terminal:
yifan@yifan-Ubuntu ~/.m/m/bin> ./simulate                                           (base)
MuJoCo version 3.1.6
Plugins registered by library 'libsensor.so':
    mujoco.sensor.touch_grid
Plugins registered by library 'libsdf.so':
    mujoco.sdf.bolt
    mujoco.sdf.bowl
    mujoco.sdf.gear
    mujoco.sdf.nut
    mujoco.sdf.torus
    mujoco.sdf.sdflib
Plugins registered by library 'libelasticity.so':
    mujoco.elasticity.cable
    mujoco.elasticity.membrane
    mujoco.elasticity.shell
    mujoco.elasticity.solid
Plugins registered by library 'libactuator.so':
    mujoco.pid
ERROR: mj_stackAllocInt: requested size is too large.

Did you try increasing the memory size?
https://mujoco.readthedocs.io/en/latest/XMLreference.html#size-memory

Did you try increasing the memory size?
https://mujoco.readthedocs.io/en/latest/XMLreference.html#size-memory

I'm not sure how much memory size I have to set. When I tried with setring it to 8G, the program can display, but I can't perform any operations, and it still crashes. How much memory is needed for this size of file? My computer only has 16G of memory.
Alternatively, is there another method? This project was previously running on Isaac Gym.

after this, the programm still crashes.
Is this due to hardware limitations, or is there another reason? What solutions might be available?

Do you still get the issue if you set
<contact selfcollide="none" internal="false"/>
I suspect that the solver might be trying to allocate a huge number of self- and internal collisions.

It's this issue that has been resolved; I can open it now. Thank you very much.
I have a new questio, actually is that I have added the rigid body to the simulation (as described in https://github.com/google-deepmind/mujoco/issues/2077#issuecomment-2368062610), but I have not yet pinned the area where the soft body contacts the rigid body. However, the soft body (the red part, which looks like a balloon) is expanding. Why is this happening?

Also, when it is first loaded, the soft body does not appear to be the correct size, as I have not applied any scaling. The correct situation is shown in the picture.

xml:
<mujoco model="biotac-sim">
  <!-- <compiler autolimits="true"/> -->
  <option solver="CG"/>
  <size memory="8G"/>

  <extension>
    <!-- add extension -->
  </extension>

  <asset>
    <mesh name="top_side_core_bc" file="top_side_core_bc.obj"/>
    <!-- <mesh name="skin" file="int_ext_skin_combined_ftw.msh"/> -->
  </asset>

  <visual>
      <!-- <headlight ambient=".7 .7 .7" diffuse=".2 .2 .2" specular="0.1 0.1 0.1"/>
      <map znear="0.01"/> -->
      <!-- <scale contactwidth=".02" contactheight=".5"/> -->
  </visual>

  <default>
    <!-- <geom friction="0.4" solimp="0 0.95 0.02"/> -->
  </default>

  <extension>
		<plugin plugin="mujoco.elasticity.solid" />
	</extension>

  <statistic center="0 0 1" extent="1" meansize=".1"/>

  <worldbody>
    <light pos="1 0 .3" dir="-1 0 -.3"/>
    <light pos="-1 0 .3" dir="1 0 -.3"/>

    <geom name="floor" pos="0 0 0" type="plane" size="1 1 .01"/>

    <body name="biotac" pos="0 0 0.1">
      <!-- <freejoint/> -->
      <geom name="core_bc" type="mesh" mesh="top_side_core_bc" euler="90 0 0" contype="1" pos="0 0 0" conaffinity="1" rgba=".5 .5 1 1"/>

      <flexcomp name="softbody" type="gmsh" dim="3" rgba=".8 .2 .2 0.3" radius=".005" euler="90 0 0" pos="0 0 0" mass="5" file="int_ext_skin_combined_ftw.msh">
        <edge equality="true" solref="0.01 1" solimp=".95 .99 .0001" damping="3"/>
        <contact selfcollide="none" conaffinity="1" internal="false"/>
        <plugin plugin="mujoco.elasticity.solid">
            <config key="young" value="8e4" />
            <config key="poisson" value="0.2" />
            <config key="damping" value=".0001" />
        </plugin>
    </flexcomp>
    </body>

  </worldbody>
</mujoco>

(Should I create a new issue since the original problem has been resolved?）

Do you still get the issue if you set
<contact selfcollide="none" internal="false"/>
I suspect that the solver might be trying to allocate a huge number of self- and internal collisions.

It's this issue that has been resolved; I can open it now. Thank you very much.
I have a new questio, actually is that I have added the rigid body to the simulation (as described in https://github.com/google-deepmind/mujoco/issues/2077#issuecomment-2368062610), but I have not yet pinned the area where the soft body contacts the rigid body. However, the soft body (the red part, which looks like a balloon) is expanding. Why is this happening?

Also, when it is first loaded, the soft body does not appear to be the correct size, as I have not applied any scaling. The correct situation is shown in the picture.

xml:
<mujoco model="biotac-sim">
  <!-- <compiler autolimits="true"/> -->
  <option solver="CG"/>
  <size memory="8G"/>

  <extension>
    <!-- add extension -->
  </extension>

  <asset>
    <mesh name="top_side_core_bc" file="top_side_core_bc.obj"/>
    <!-- <mesh name="skin" file="int_ext_skin_combined_ftw.msh"/> -->
  </asset>

  <visual>
      <!-- <headlight ambient=".7 .7 .7" diffuse=".2 .2 .2" specular="0.1 0.1 0.1"/>
      <map znear="0.01"/> -->
      <!-- <scale contactwidth=".02" contactheight=".5"/> -->
  </visual>

  <default>
    <!-- <geom friction="0.4" solimp="0 0.95 0.02"/> -->
  </default>

  <extension>
		<plugin plugin="mujoco.elasticity.solid" />
	</extension>

  <statistic center="0 0 1" extent="1" meansize=".1"/>

  <worldbody>
    <light pos="1 0 .3" dir="-1 0 -.3"/>
    <light pos="-1 0 .3" dir="1 0 -.3"/>

    <geom name="floor" pos="0 0 0" type="plane" size="1 1 .01"/>

    <body name="biotac" pos="0 0 0.1">
      <!-- <freejoint/> -->
      <geom name="core_bc" type="mesh" mesh="top_side_core_bc" euler="90 0 0" contype="1" pos="0 0 0" conaffinity="1" rgba=".5 .5 1 1"/>

      <flexcomp name="softbody" type="gmsh" dim="3" rgba=".8 .2 .2 0.3" radius=".005" euler="90 0 0" pos="0 0 0" mass="5" file="int_ext_skin_combined_ftw.msh">
        <edge equality="true" solref="0.01 1" solimp=".95 .99 .0001" damping="3"/>
        <contact selfcollide="none" conaffinity="1" internal="false"/>
        <plugin plugin="mujoco.elasticity.solid">
            <config key="young" value="8e4" />
            <config key="poisson" value="0.2" />
            <config key="damping" value=".0001" />
        </plugin>
    </flexcomp>
    </body>

  </worldbody>
</mujoco>

(Should I create a new issue since the original problem has been resolved?）

Backgroud

I am making a synthetic tool for robot training, the physics engine is mujoco

https://github.com/user-attachments/assets/b79713ef-c30f-4993-87f4-574750d9c969

Render engine using self-developed realtime raytracing(same tech from issac)
It was great when the whole scene is built with rigid body
But when it cames to soft body，the performance can not be realtime and has some bug
Here is the real scene what I want to achieve

https://github.com/user-attachments/assets/75608369-7a9c-4b94-8edb-2307c5ce64ce
Sample Scene

To demonstrate it I wrote a simple soft scene with only one tetrahedron below

https://github.com/user-attachments/assets/48790ef5-f2aa-456e-9116-f3a0059ef2b1

And I use fTetWild to tedrahetralize the tiger mesh as the official doc told

https://github.com/user-attachments/assets/9fd4e6be-97d9-483b-90ea-71761bfb9f26

The video shows the performance is not acceptable, and the tiger mesh never falls down to the groud
Here is the origin scene data - softbody.zip

Question

① Am I doing right for building such kind of tedrahetra mesh to simulate?
② How to make it faster?
③ Is there any plan to optimize performance for soft body simulation?
④ If I using other soft body algorithm to replace mujoco's, is this feasible?

Thanks

I have try the method as @quagla said in #2079
It works!

Solution

To solve the low performance, use this

<contact selfcollide="none" internal="false"/>

To make mesh drop, choose small time step

<option solver="CG" tolerance="1e-6" integrator="implicitfast" timestep="0.001"/>

Final result

Here is the mjcf

https://github.com/user-attachments/assets/2a62a750-45d6-4d95-a007-50d6f96b9db8

Do you still get the issue if you set
<contact selfcollide="none" internal="false"/>
I suspect that the solver might be trying to allocate a huge number of self- and internal collisions.

It's this issue that has been resolved; I can open it now. Thank you very much.
The current issue is that the soft body seems to be too soft, as it deforms excessively and sags significantly, and it also tends to break apart. I have adjusted the parameters shown in the XML below, but there has been no noticeable change. Which parameter should I focus on?

You should either use edge equality="true" or elasticity.solid, not both at the same time. If you want something very stiff, I'd recommend the former, if you want something softer, the latter (since it may require a very small time step when you increase the parameters). But your solref and solimp look already quite stiff, so I'm surprised you are getting a soft solution? Maybe your boundary conditions are not what you would like them to be, i.e. you either have to pin some vertices or add equality constraints.

Thanks

I have try the method as @quagla said in [Soft Body]Simulate performance drops when the particle reach hundred #2079
It works!

Great to hear! Sorry I deleted your other comment, but the original link is present in your response anyway :)

Another Question

If I want to add a detailed & texutred mesh driven by the simplified tetrahedron mesh
What should I do?

Potential Solution

I noticed mujoco has a skin node
If I make a skin animation between particles and detailed mesh using weights just like Skeletal Animation
Is that possible?

Yes you can use a skin referencing the bodies that you want to use as bones by name.


feat(Logic/Equiv/Basic): sumSigmaDistrib, finSigmaFinEquiv

Upstreamed from the EquationalTheories project.

I also defined finSigmaFinEquiv in another PR #19013, but this definition looks a lot neater than mine.

I also defined finSigmaFinEquiv in another PR #19013, but this definition looks a lot neater than mine.

Oh haha! When I was writing mine (which was pretty much the exact same time as you writing yours) I checked loogle/mathlib but not the current PRs.
I guess it's a testament to Mathlib's naming convention, that two of us could write totally separate implementations of the same idea, that do the exact same thing, with the exact same name.

Apart from one comment, LGTM


updating test lab

I have cleaned up until test case creation.

@hsachinraj,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


GCC 4.9 support

With GCC 4.9.3 (debian linux) I get compilation errors related to the lack of copy constructor in std::stringstream:
Scanning dependencies of target di
In file included from /home/manuel-sanchez/Documentos/iod/tests/../iod/json.hh:15:0,
                 from /home/manuel-sanchez/Documentos/iod/tests/deep_merge.cc:4:
/home/manuel-sanchez/Documentos/iod/tests/../iod/json_unicode.hh: In function ‘decltype(auto) iod::wrap_json_input_stream(const iod::stringview&)’:
/home/manuel-sanchez/Documentos/iod/tests/../iod/json_unicode.hh:64:96: error: use of deleted function ‘std::basic_stringstream<char>::basic_stringstream(const std::basic_stringstream<char>&)’
   wrap_json_input_stream(const iod::stringview& s) { return std::stringstream(s.to_std_string()); }
                                                                                ^
In file included from /home/manuel-sanchez/Documentos/iod/tests/../iod/json.hh:9:0,
                 from /home/manuel-sanchez/Documentos/iod/tests/deep_merge.cc:4:
/usr/include/c++/4.9/sstream:502:11: note: ‘std::basic_stringstream<char>::basic_stringstream(const std::basic_stringstream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
     class basic_stringstream : public basic_iostream<_CharT, _Traits>
           ^
/usr/include/c++/4.9/sstream:502:11: error: use of deleted function ‘std::basic_iostream<char>::basic_iostream(const std::basic_iostream<char>&)’
In file included from /usr/include/c++/4.9/iostream:40:0,
                 from /home/manuel-sanchez/Documentos/iod/tests/deep_merge.cc:1:
/usr/include/c++/4.9/istream:795:11: note: ‘std::basic_iostream<char>::basic_iostream(const std::basic_iostream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
     class basic_iostream
           ^

What I can say from the output is that it seems that for some reason that function is not triggering RVO and the stdlibc++ stream has no move constructor (So the compiler picks the copy ctor instead).
UPDATE: After adding gcc 4.9 to the build matrix I see that the "issue" is just that the library no longer supports GCC 4.9 in its current form.
Do you have plans to maintain compatibility with GCC 4.9?

It depends on the work it requires,. Could you make it compile on gcc 4.9 already ?


#38: Add an optional data-file attribute to display file names in header

Hey @kwalrath, how about this?
For an example, see the first code section in http://localhost:9000/docs/dart/latest/guide/displaying-data.html
To display a corresponding file name/path pass an optional attribute data-file, like this:
data-file="web/main.dart"

Check my changes in displaying-data.jade to see all that is required for adding file names.

@gorork I'm making some significant changes to the code boxes, I have a branch out to turn them into directives. I'll add the title attribute into that branch for this meta data.

@alexwolfe Yes, directive looks reasonable for these code boxes. Could you self-assign this and all the related issues, since they're already under development?

@gorork Yes, really sorry about that.

I just saw these, and I'm really looking forward to them going in. Thanks for your work, @gorork!

@kwalrath Glad it can help! :)
Actually, if merged, you could start adding file names to code boxes right away and use it until new directive is ready.

@gorork sorry unfortunately it would create more work for me to undo in my branch. I'm going to leave this for now and then when my changes are merge in, I'll see if I can roll your branch in.

@alexwolfe Ok, let me know if you need me to edit this pr to fit your changes.

Closing because this document is being completely rewritten based on the new TS version.
Many thanks for your engagement and contribution. We need that!


Make cc.nginx.ip configurable

A short explanation of the proposed change:
Allow nginx to bind to specific address

An explanation of the use cases your change solves
We would like to bind nginx to localhost instead of all interfaces

[X] I have viewed signed and have submitted the Contributor License Agreement

[X] I have made this pull request to the master branch

[X] I have run all the unit tests using bundle exec rake

[X] I have run CF Acceptance Tests on bosh lite

@mdelillo @aemengo

Thanks for the contribution! Looks good to us.
@thausler786 && @michaelxupiv


Some questions or bugs?

Hi,
Thanks for you providing so nice code.
But when I try to play with "lets-do-irl/mujoco/vail", It make me very confused that the code in train_model.py:
         vdb_loss = criterion(learner, torch.ones((states.shape[0], 1))) + \                     criterion(expert, torch.zeros((demonstrations.shape[0], 1))) + \                     beta * bottleneck_loss
I think this should be:
         vdb_loss = criterion(learner, torch.zeros((states.shape[0], 1))) + \                     criterion(expert, torch.ones((demonstrations.shape[0], 1))) + \                     beta * bottleneck_loss
. In other words, the learner should be pushed to zeros, and expert should be pushed to ones, isn't it? Or both is fine?
By the way, the code in the same file:
        beta = max(0, beta + args.alpha_beta * bottleneck_loss)
If beta equals beta + args.alpha_beta * bottleneck_loss, at the next time backward, there will report a bug about beta, which is modified by a inplace operation.

1 or zero does not matter. Because the goal of discriminator is to distinguish the traj of expert and learner, who is 1 does not matter.


New profile for FEIT_SYW-PLUGWIFIG2

I recently got at an auction, 30 Feit smart plugs.   Costco brand with the WB2s module.
Of those 30, I was able to successfully flash using tuya-cloudcutter 16 of them.
The other 14 tell me there is no valid profile.
I ran test_device_exploitable.py on a few of those devices, and it appears to be to be exploitable.
I used bk7231tools to get a dump file.  Any help building a new profile would be appreciated.
Please let me know if I need to provide any additional information.
dump.zip

I have renamed the existing profile to Feit SYW PLUGWIFIG2 Smart Plug v1.1.2 and added a new one matching your dump as Feit SYW PLUGWIFIG2 Smart Plug v1.0.7


Suppress -Wunqualified-std-cast-call.

Wunqualified-std-cast-call was added to Clang in
https://reviews.llvm.org/D119670, which using this project when building
with -Werror. This change ignores this error as a stopgap; eventually
the unqualified std::move() instances should be qualified.

Upon further reflection, it's easier to just fix these.


truncnorm.rvs still crashes when sampling from extreme tails

My issue is related to issue #11769 which claims to have fixed this.
Sampling from the far tails of the truncated normal distribution gives an assertion if the upper bound is inf. Since the distribution is so concentrated for large lower bounds, it is probably a good work around to replace upper_bound = lower_bound+1 if lower_bound > 8 (and the same holds for small upper bounds as well)
Reproducing code example:
import scipy
scipy.stats.truncnorm.rvs(9,20) #okay!
scipy.stats.truncnorm.rvs(9,np.inf) #crash!

Error message:
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-262-74f1f8ebc8d9> in <module>
      1 import scipy
----> 2 scipy.stats.truncnorm.rvs(9,np.inf)

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_distn_infrastructure.py in rvs(self, *args, **kwds)
    978         # by _rvs().
    979         self._size = size
--> 980         vals = self._rvs(*args)
    981
    982         vals = vals * scale + loc

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_distn_infrastructure.py in _rvs(self, *args)
    911         ## Use basic inverse cdf algorithm for RV generation as default.
    912         U = self._random_state.random_sample(self._size)
--> 913         Y = self._ppf(U, *args)
    914         return Y
    915

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_continuous_distns.py in _ppf(self, q, a, b)
   7161
   7162     def _ppf(self, q, a, b):
-> 7163         return _truncnorm_ppf(q, a, b)
   7164
   7165     def _munp(self, n, a, b):

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_continuous_distns.py in vf_wrapper(*args)
   6931         @functools.wraps(f)
   6932         def vf_wrapper(*args):
-> 6933             return vf(*args)
   6934         return vf_wrapper
   6935     return vectorize_decorator

c:\program files\python37\lib\site-packages\numpy\lib\function_base.py in __call__(self, *args, **kwargs)
   2089             vargs.extend([kwargs[_n] for _n in names])
   2090
-> 2091         return self._vectorize_call(func=func, args=vargs)
   2092
   2093     def _get_ufunc_and_otypes(self, func, args):

c:\program files\python37\lib\site-packages\numpy\lib\function_base.py in _vectorize_call(self, func, args)
   2165                       for a in args]
   2166
-> 2167             outputs = ufunc(*inputs)
   2168
   2169             if ufunc.nout == 1:

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_continuous_distns.py in _truncnorm_ppf(q, a, b)
   7090
   7091     if np.isinf(b):
-> 7092         x = -_norm_ilogcdf((np.log1p(-q) + _norm_logsf(a)))
   7093         return x
   7094     elif np.isinf(a):

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_continuous_distns.py in _norm_ilogcdf(y)
   7069     z = -np.sqrt(-2*(y + np.log(2*np.pi)/2))
   7070     for _ in range(3):
-> 7071         z = z - (_norm_logcdf(z) - y) / _norm_logcdfprime(z)
   7072     return z
   7073

~\AppData\Roaming\Python\Python37\site-packages\scipy\stats\_continuous_distns.py in _norm_logcdfprime(z)
   7048 def _norm_logcdfprime(z):
   7049     # derivative of special.log_ndtr
-> 7050     assert np.abs(z) > TRUNCNORM_TAIL_X/2
   7051     lhs = -z - 1/z
   7052     denom_cons = 1/z**2

Scipy/Numpy/Python version information:
1.4.1 1.17.4 sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0)

How come we have asserts outside of tests. That should be fixed too IMO.
(Python -OO etc)

It has the 1.5.0 milestone, so it was probably only fixed in 1.5.0, whereas you were using 1.4.1 to test. Have you tried on a more recent SciPy?

Looks like this issue was fixed in 1.5 as planned. Please consider closing, @Ulfgard.
>>> import numpy as np
>>> import scipy
>>> scipy.__version__
'1.5.2'
>>> import scipy.stats
>>> scipy.stats.truncnorm.rvs(9,np.inf)
9.034588273046758

Also, to avoid problems, please import each module of SciPy separately before using them. From the tutorial Introduction:

SciPy sub-packages need to be imported separately, for example:

>>> from scipy import linalg, optimize

You can also do e.g. import scipy.stats if you prefer.

Sorry for the noise. I did only check the date and saw it was long merged to master. Did not expect that there was no release since then.

@Ulfgard there have been two releases - please just update your version.

Somewhat related, are there any plans to support broadcasting for truncnorm? See #12370


Does SixDRepNet2 works?

SixDRepNet2 likes a simple ResNET,does it works well?

yes, I did through evaluation over 300k samples. It is as good as 89% plus for yaw, but we had to clean the datasets manually, put restrictions as well.


Categorize Home Page into Sections (Trousers, Tops, Dresses, Footwear, Accessories etc.)

The current website layout lacks clear product categorization, making it difficult for users to navigate and find specific items. To improve the user experience and enhance navigation, I propose adding product categories like "Tops," "Jeans," "Trousers," "Footwear," "Accessories," etc., on the homepage. These categories should be well-structured and easily accessible from the navigation bar or through filtering options.
It will enhances user experience by simplifying product search, Increases website usability and accessibility, Encourages user engagement by making the website more attractive.
@Tejashri-Taral
plzz assign me this issue ,i wanted to work on it

Hey @aparna-44 The categorization for different categories like clothing, footwear etc. is already present. If you wish you can create a separate page under clothing and add different sections for tops, jeans. Ping me if you are willing to work on this. I will assign it to you.

@hars-21 yes  I'm willing to work on it._

Proceed!

Yes, I will work on it
On Wed, 9 Oct, 2024, 9:22 pm Tejashri Taral, @.***>
wrote:

Proceed!
—
Reply to this email directly, view it on GitHub
https://github.com/Tejashri-Taral/TrendTrove-Ecommerce/issues/151#issuecomment-2402711155,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BLJ5QIDZW53NRYQ2F34E75DZ2VGM7AVCNFSM6AAAAABPNOOKWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG4YTCMJVGU
.
You are receiving this because you were assigned.Message ID:
@.***>


Lock redis gem to ~> 4.1.4

This is because there are some annoying warnings in 4.2.0 and greater that haven't been addressed by Sidekiq yet.
Relatedly, we're also removing the no-longer-needed monkeypatch of Kernel#warn that was suppressing the warnings from redis >=4.2.0.

The biggest motivation that I have for making this change (locking the redis gem and removing our monkeypatch of Kernel::warn) is largely that the monkeypatch was difficult(/impossible?) to write test(s) for.


Create server callback for event based programmation

Callback should allow to define custom event response on the following events:

Server ready
Server shutdown
New connection
Client disconnected

Callbacks should be object-oriented or function callbacks?


Remove cla-signed condition from mergify

The CLA check is currently not working

Looks like we still needed manual intervention on this PR (because queue change was not yet applied)


CMake extend

This pull request makes these changes:

add BUILD_EXAMPLE & BUILD_TEST option, let user can choose whether build example program and unittest program, build all by default to keep backward compatibility
add output info of all the configurable options
change library project version to 0.2.0 (you may want to change it to 0.2.1 or whatever after accept this pull request)
add support for building static library, by default build shared library as usual to keep backward compatibility
static library and shared library's exported target name has shared/static suffix, breaks backward compatibility
set soversion property for library, effects shared library's soname, breaks backward compatibility (personally, it's always a good habit to set soname of a shared library)
use GNUInstallDirs set install directories (for example on redhat is lib64, on Debian is lib/x86_64-linux-gnu, etc)

Hi @JackLiar, Thank you very much for your contribution. Looks good to me! Just out of curiosity: Where do you use the library/ what is your use case?

I use this library mainly for monitoring runtime configuration files of a daemon process


[AIRFLOW-3480] Add Database Deploy/Update/Delete operators

Make sure you have checked all steps below.
Jira

[x] My PR addresses the following Airflow Jira issue and references them in the PR title.

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

Added Database Deploy/Update/Delete operators for Google Cloud Spanner
Tests

[x] My PR adds the following unit tests:

test_database_create

test_database_create_with_pre_existing_db

test_database_create_ex_if_param_missing(parameterised)

test_database_update

test_database_update_ex_if_param_missing(parameterised)

test_database_update_ex_if_database_not_exist

test_database_delete

test_database_delete_exits_and_succeeds_if_database_does_not_exist

test_database_delete_ex_if_param_missing (parameterised)

Commits

[x] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.
All the public functions and the classes in the PR contain docstrings that explain what it does

Code Quality

[x] Passes flake8

Codecov Report

Merging #4353 into master will increase coverage by 61.99%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master    #4353       +/-   ##
===========================================
+ Coverage   16.13%   78.12%   +61.99%
===========================================
  Files         202      202
  Lines       16483    16483
===========================================
+ Hits         2660    12878    +10218
+ Misses      13823     3605    -10218

Impacted Files
Coverage Δ

airflow/plugins_manager.py
93.1% <0%> (+1.14%)
:arrow_up:

airflow/executors/dask_executor.py
2% <0%> (+2%)
:arrow_up:

airflow/exceptions.py
100% <0%> (+2.85%)
:arrow_up:

airflow/utils/operator_resources.py
86.95% <0%> (+4.34%)
:arrow_up:

airflow/executors/__init__.py
63.46% <0%> (+5.76%)
:arrow_up:

airflow/utils/module_loading.py
100% <0%> (+10.52%)
:arrow_up:

airflow/utils/decorators.py
91.66% <0%> (+14.58%)
:arrow_up:

airflow/settings.py
80.41% <0%> (+14.68%)
:arrow_up:

airflow/hooks/oracle_hook.py
15.47% <0%> (+15.47%)
:arrow_up:

airflow/__init__.py
80% <0%> (+15.55%)
:arrow_up:

... and 161 more

Continue to review full report at Codecov.

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

@jmcarp  -> I pushed a fixup commit addressing the comments.

@kaxil -> implemented most of it. I again proposed to make project_id optional as separate change (we have some other operators in spanner to make them optional as well for consitency). Having separate change with only this would be much more efficient for changing and testing (then we can run our automated System tests on all environments at once for all operators after such global change.

@kaxil -> fixed and rebased to latest master

Can you resolve the conflict @potiuk  ?

@kaxil Done.

Thank you @kaxil :).


Data doesn't appear on an invisible tab

Steps to reproduce:

Open any page with c3 chart on new tab (for example c3js.org)
Do not navigate to it untill the page will not be fully loaded
See the chart with empty data

Moreover, if you hover mouse over the chart you can see "Uncaught INDEX_SIZE_ERR" error

When the chart is bulding on not visible tab the data will not appear because there is such condition:
https://github.com/c3js/c3/blob/22afe8150bb5020ea92d5a0ede944507354de05f/src/core.js#L681-L727
The code from inner else should be executed even if tab isn't visible.

C3 version: 0.6.7
D3 version: 5.6.0
Browser: Chrome, Firefox, IE 11, Edge - latest versions
OS: win10 x64

My ticket #2468 was closed as well in favor of this one. Please guys, this bug is known since 2015.

I have fixed these weird case by adding manually trigger resize event after page load:
setTimeout(function () {         window.dispatchEvent(new Event('resize'));     }, 100);


update docs location

Closes #2073
Code Changes

[ ] Updates messaging in the fides deploy up script to correctly link the new docs site

Steps to Confirm

[ ] run fides deploy up
[ ] assert the docs link at the bottom shows "docs.ethyca.com" — I've purposely omitted the https:// as it was left out before

Have added a couple of reviewers — this is just a one liner so whoever gets to it first please merge if it looks OK


Combine 6 different actions into one for building and pushing images

The PR does the following:

Combines 6 different actions into 1 based Github Action.
Makes use of dorny/paths-filter@v2 action.
Triggers a build and push only if the files in the path of an image is modified.
Deleted old Github actions.
Will have a separate PR (if required) for argocd-registrar-image as it is not included in security scans actions too. Needs discussion.

I'm not sure I understand the reason for merging all the files into a single one.
In any case it will be made obsolete once we start dogfooding, which should start happening in the next couple months.

I'm not sure I understand the reason for merging all the files into a single one.
In any case it will be made obsolete once we start dogfooding, which should start happening in the next couple months.

Please see this comment chain for the reason. It basically allows us to trigger scan only when build is done. At the moment, since we have 6 actions for each image build, it will be messy to maintain the chain of events.
Yes, once we start using our own service, we can simply delete all actions :)

I think it would be nice to put different tasks as different jobs, it would make it easier to go through the log if something breaks also doing this will enable running the workflows in parallel which is for now sequential.

We can still see the logs of individual steps in actions. See this - https://github.com/bnallapeta/pipeline-service/runs/8156337803?check_suite_focus=true
The dorny action I am using to implement path based filtering supports it at the step level.

/retest


Source repository URL in Cabal file lookl incorrect

It seems there's a colon in a place where a slash would be correct.

Thanks, fixed.


--fix is not fixing

I followed the instructions provided for IDE integration.
However, when running biotope-quality-gate using the --fix flag, some rules are not fixed (quotes and dangling commas).
NOTE
VSCode's ESLint extension throws an error, whenever opening a new .ts file:
Error: ESLint configuration in<EMAIL_ADDRESS>is invalid:
	- Unexpected top-level property "overrides[0].extends".

I also have this issue and I hate quality-gate because of it. Please fix.


new releases, no changes.

I think your GitHub bot drank too much caffeine; no changes from v01.2 to v0.1.3, but it was released as a new version anyway.

yes. in the absence of a well thought out release strategy and any ability to have versioned libraries and modules i am keeping the release versions in sync across all repos. so everytime i make a significant change to just/libs/modules i will bump version on them all to be the same. this makes the build process easier for now as all we need to do is get modules and libs for same current version of just.

I see.  Thanks for explaining!


#1093 Proposed Solution to Add RetryMechanism in Polly

Closes #1093

#1093

This is proposed solution to add WaitAndRetry mechanism of Polly, which is currently not part of Polly (QoS).
This is not proper solution, this just I am trying to understand high level changes we need to add WaitAndRetry. I have not done any refactoring.
Proposed Changes

Here we are facing everytime we create request, it creates new policy everytime which causes failure of WaitAndRetry mechanism. Also acknowledged by @ggnaegi in case of circuitbreaker. We need to fix it.
We can see only circuitbreaker is implemented, we need to create one abstraction and delegatehandling so we can add multiple policies.
Test cases and need to clean this code.

@ggnaegi @raman-m Can we discuss on https://github.com/ThreeMammals/Ocelot/issues/1093 with this proposed solution? I am unable to dedicate much time on learning Ocelot. But I think we have to think on above points.

@ks1990cn

Can we discuss on https://github.com/ThreeMammals/Ocelot/issues/1093 with this proposed solution?

Sure! I propose to remove Polly from Ocelot at all!... Because Polly is a constant source of issue/bugs being reported in our backlog.

Dear Tanmay,
Could you resolve all merge conflicts please?

Dear Tanmay, Make it ready for review! Could you resolve all merge conflicts please?

But I thought you guys are going to remove Polly. do I still need to resolve, cause its incomplete PR just had suggestion on it.

But I thought you guys are going to remove Polly.

Not now. It was a joke! 🤣
Polly removal is not discussed at the moment. It is just my idea to have less dev pain in the neck...
At least next 2 major Ocelot releases will have Polly lib being referenced definitely...


Backport "Remove duplicate comma from Matchable selector warning" to LTS

Backports #20159 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-20227.
Reference


contact

📝 Changed routes:

/contact

(view full size)

Commit 46021b2fa1f34c96a200422cb4f0f9c3442b2350 (https://tadashi0713dev-j7bxuxtin-tadashi0713.vercel.app).


feat: Implement custom user snippets

Allows us to address the following issues:
- .arc / .rc / .pin, similar to .box? https://github.com/rust-analyzer/rust-analyzer/issues/7033
- Add unsafe snippet https://github.com/rust-analyzer/rust-analyzer/issues/10392, would allow users to have this without the diagnostic)
- .ok() postfix snippet is annoying https://github.com/rust-analyzer/rust-analyzer/issues/9636, allows us to get rid of the ok postfix and similar ones
- Postfix vec completion https://github.com/rust-analyzer/rust-analyzer/issues/7773
cc https://github.com/rust-analyzer/rust-analyzer/issues/772
Zulipd discussion: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Custom.20Postfix.20snippets

bors r+


Contract list stuck loading in a failed connection

Description
When there's a connection error or slow internet connection, Contract list is stuck at loading like this and this error is shown in the console.

Should we flag this as a known issue in the release notes?

I've tried multiple situations and they were handled

Still happening, steps to reproduce:

Login and go to Contracts.
Change network to Slow 3G.
Press Refresh button.
Repeat step 3 until it happens.

Untitled_ Aug 17 2023 9_47 AM.webm
It's not a common bug but it will happen if user has a bad network or grid proxy/graphql is having a connection error.

verified
it never gets stuck may take a long time to load but works fine
Screencast from 12-27-2023 06:54:26 PM.webm

Verified:

Devnet
842ebef

This is a random issue,
I tried multiple times did't happen with me.
so please re-open if happen again.


Extra information in DataAnnotations localization

I try to esxplain the solution for use SharedResources class in Data Annotation, thanks to the comment of this issue https://github.com/aspnet/Localization/issues/286

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

@sintetico82  I edited your contribution. Can you review my changes?

@audacity76  @hishamco @simon25608 please review.

With this solution the application will use single resx. Why do not you make "NuGet-table" the DataAnnotation messages resx and therefore customizable within the application ?

Do you have a github sample for how I can localize the data annotations messages with one file?

@apis3445 you can check out the Localization.Starter.Web


Remove obsolete sysadmin script

This was used for initially loading the uniqified GitHub tokens into Redis (#3332), but is no longer needed.

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS against 732531d79eebbb8cde44c2f8529bc1a25353af72