Add react

Short Description

For background and motivation, see: https://docs.google.com/document/d/1OqN-UqESrINiiE-a2KGwRTqFPFwgtMWUBBPH5l9Q7JE/edit#heading=h.i3eokmrapks8
This integrates React components with the Flask webapp.

Changes

Initial integration:

Adds a hello-world React component created with https://create-react-app.dev/ under client/.
Moves all existing static assets from app/static/ to client/public, so they can be picked up by webpack.
Uses https://github.com/timarney/react-app-rewired to customise how the react app is built:

Sets the output target for bundled files to app/static/, so Flask/nginx can see them.
Removes all content hashes from bundled files - our Flask templates cannot know what those are, we can't use webpack to generate our templates and we don't want to have to update the templates each time we run yarn build. (Later on, Flask-Static-Digest will add content hashes again, so we can have cachebusting filenames in production.)
Has webpack create only two files, so it's easier to integrate into our base template.
Removes some unneeded plugins.

Removes the "static/" prefix from static URLs in the Flask app (CRA puts bundled assets under /static in its target folder, which would have us end up with paths like /static/static/js/file.js.
Loads React in the base template, so components are available everywhere.
Adds code (in client/src/index.js) to auto-mount components onto divs using data-is-component, data-component-name and data-props-json to specify which component to mount and with what data.
Adds an empty placeholder component as a proof-of-concept to the login page. (Uses https://styled-components.com/ for styling.)
Adds proxy setup (in client/src/setupProxy.js) that has the React dev server (started with yarn start) forward most requests to a Flask app running on port 5000.
Disables CSP headers in development - this was a problem I ran into with running the react dev server which supports HMR (a way to be able to edit components and see changes in the browser without needing to rebuild manually or even reload the page).
Adds a CSP rule to allow inline styles. This is necessary for styled-components to work. I've made a note to figure out switching to nonces/hashes soon. Should be possible.

Smaller adaptations:

Fixes some hard-coded static paths in templates.
Fixes asset paths in CSS (remove "static/" prefix).
Remove route for robots.txt (can now be served directly b/c it not longer sits at /static/robots.txt but instead /robots.txt.

Build static assets for production in the Dockerfile.
Add Flask-Static-Digest to create assets with cachebusting filenames (hashes based on file contents).

Feedback

Any and all feedback is welcome!
Do you see any issues with the changes to static paths?

@JulianRoesner I've wrapped up this initial integration by adding Flask-Static-Assets so it can be deployed in combination with https://github.com/digitalservice4germany/steuerlotse-infra/pull/23. There's much more to add before the first components end up on the page in a meaningful way and I didn't want to keep adding to this already huge PR. Let's maybe jump on a huddle later and go over this together?

This looks very good to me. There are some points where I think some of the new changes from #141 are missing.

Yeah, I haven't merged that yet but I will do that next.

I am also wondering if we can merge this directly because we'll render the placeholder login page

The placeholder has a display: none, so users will not see anything while we can confirm the component renders correctly by looking at the source. I think that's a good way to test the fundamental integration but let me know if you see any problems with this approach!

@JulianRoesner I pushed a merge with the Flask app factory changes. Do you want to take another look?

@frederike-ramin Could you take a look at this as well? I'm off work today, but maybe @JulianRoesner can already give you a run-through of the changes. Happy to huddle over it on Monday either way!

As we both stumbled into some problems setting everything up, maybe we could add the new steps to the README with correct explanations:
cd webapp/client
yarn install

cd webapp/client
cd yarn build

piepen run flask digest compile

As we both stumbled into some problems setting everything up, maybe we could add the new steps to the README.

Totally! I was holding off because things might still change, but for development you can start the flask app on port 5000, then go to webapp/client, do yarn install then yarn start to run the React dev server.
Flask-static-digest is not necessary for development - it only runs for staging/production builds, but if you want to see what it does there, you can go to webapp/client, run yarn build, go back up and run flask digest compile and start the flask app (no need for yarn start in that case - it's only for development).
Hope this makes sense, better README (and better run scripts) will follow!


feat: use nested props in fractional evaluator

This PR

This PR adds the ability to use nested properties for the bucket key in fractional evaluation. It is a breaking change from the current behaviour. If the bucket key is not provided it will default to {"cat": [{"var":"$flagd.flagKey"}, {"var":"targetingKey"}]}.
@toddbaert I am not sure that my approach to the missing bucket key is the best. I would have preferred to add {"cat": [{"var":"$flagd.flagKey"}, {"var":"targetingKey"}]} to the targeting object and let JsonLogic handle it, but it would be a bit clumsy and involve string manipulation. I don't think there is a nice way to do it, but I'll play around a bit more.
Related Issues

See #848.
Closes #843.
Notes

Follow-up Tasks

How to test

@craigpastro I'm really bummed but the changes seem to have broken the nice spread on your friends-character emails :weary: :weary: :weary:

Looks good (left a suggestion for improvement)
And I don't see this as a breaking change, so we don't have to mark the PR as a breaking change 🤔 This introduce a behavior change but that's from an invalid fractional evaluation to targetingKey as a fallback

Ya, using a "hard-coded" string also seems to still work. So I agree with @Kavindu-Dodan unless I'm missing something.

@craigpastro I'm really bummed but the changes seem to have broken the nice spread on your friends-character emails 😩 😩 😩

LOL. No, we got it back by replacing Pheobe with Joey (and RossG with just Ross)... perhaps some deeper meaning here.

Looks good (left a suggestion for improvement)
And I don't see this as a breaking change, so we don't have to mark the PR as a breaking change 🤔 This introduce a behavior change but that's from an invalid fractional evaluation to targetingKey as a fallback

Ya, using a "hard-coded" string also seems to still work. So I agree with @Kavindu-Dodan unless I'm missing something.

Oh, yes, this is true. It will no longer extract the value of that hardcoded string from the context though.

Thanks again for your help @craigpastro

It's my pleasure! Will definitely look for other opportunities to contribute in the future.

I'm going to merge this, but cc'ing @bacherfl . Hoping to put this out in a release soon now that  https://github.com/open-feature/flagd/issues/843 seems complete. Let me know if you have concerns.


Mock-ToolRunner fails to emit stdline.

ToolRunner will emit to the event 'stdline'. Mock-ToolRunner does not. Tasks that rely on the 'stdline' event are untestable.

This is a task-lib issue right?  Is there a need to create issue here as well?

Correct, it is an issue with vsts-task-lib. If adding the issue to more
places will get it taken care of, I would be in favor of that.
On Wed, May 31, 2017 at 3:39 PM, Bryan MacFarlane<EMAIL_ADDRESS>wrote:

This is a task-lib issue right? Is there a need to create issue here as
well?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vsts-task-lib/issues/227#issuecomment-305338275,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APoS-pSJppPoL73ZDm53wYXAY8xtUZfcks5r_ewogaJpZM4Ml9gv
.

Added PR to address this.


Source 2 Engine

IOSoccer in Source 2 Engine. Why not?

Closing this until we know more details about Source 2.


Update to version 1.5.0 in Edge Add-ons

Update to version 1.5.0 in Edge Add-ons
Another thing I noticed is that the IDs are generated WT.mc_id=XXX_XXXXXX but I see that normally the WT is lowercase, you could change this to vim as default ?wt.mc_id=XXX_XXXXXX
Thank you for this extension, it is very useful and I recommend it to other people!
Thanks Maison

Hi Maison,
the update 1.5.0 contains the migration to Manifest version 3, I have not been able to install it yet, but hopefully I will do so in the next few weeks.
I am not sure about the lowercase version of WT. In general, it should not matter but like in every document I see (including the MVP Docs & Learn Champion emails) it is written in uppercase: ?WT.mc_id

Ok, no problem Thanks for the response, is it possible for you to add a language option? I would love to have a Portuguese version of Brazil! Although I could fork this, but adding it to your version is welcome!

What you mean with a Portuguese version of Brazil?

Display according to the browser language, is this possible?

@maisondasilva
Yes, this is already implemented. In the extension option, you can set whether you want to make English URLs (en-us)  or language-specific URLs (xx-xx) language-neutral.

That means, if you copy a page URL with your CreatorID like this one:
https://learn.microsoft.com/en-us/microsoft-365-copilot/
It will not only append your CreatorID but also remove the language identifier:
https://learn.microsoft.com/microsoft-365-copilot/?WT.mc_id=...
If you now open this link, the page will be displayed depending on the language of your browser.
Btw, the version 1.5.0 is now live in Edge.
BR,
Martin


Add audioTracks

Hi All,
Can I add audioTracks to component like textTracks? My code example in below. In this example textTracks is working but audioTracks not working on Android. I used #1778 for IOS. But I dont solve in android. Can you have any suggestions for this? Thanks

<Video
......
audioTracks={[
              {
                language: 'en',
                title: 'English CC',
                type: 'audio/mp3',
                index: 0,
                uri: "https://file-examples.com/wp-content/uploads/2017/11/file_example_MP3_700KB.mp3"
              }
            ]}
textTracks={[
              {
                title: "English CC",
                language: "en",
                type: TextTrackType.VTT,
                index: 0,
                uri: "https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt"
              },
            ]}
selectedTextTrack={{ type: 'index', value: 0, }}
selectedAudioTrack={{ type: 'index', value: 0, }}
          />

did you find any solution for this @yasinugrl ?

is this issue resolved ?

is this issue resolved ? because selectedAudioTrack is not working


I can't connect to the database via terminal

I can't connect to the database via terminal

at the same time there is access to the mysql instance

You need to connect to the host „database“ its the container name of the database. Please see the example php connect referenced in index.php
https://github.com/sprintcube/docker-compose-lamp/blob/master/www/test_db.php

You need to connect to the host „database“ its the container name of the database. Please see the example php connect referenced in index.php
https://github.com/sprintcube/docker-compose-lamp/blob/master/www/test_db.php

Thanks for the help


UI Issue: Need Fixed Dimension for Azure service summary dialog Screen.

Currently Azure service summary dialog screen shows as below.
.So it needs Fixed  Dimension for Azure service summary dialog Screen.
This issue is  reproducible in  IntelliJ 14 IDE

LGTM in Mac. @kasturiswain just check once from your end and close the issue

This issue is reproducible in windows/intelliJ14.0.3.
PFB the screen shot.

Unable to reproduce issue on Windows - IntelliJ 14.1

I am able to reproduce this issue in latest build in windows IntelliJ 14.1.
PFB the screen shot.

Not able to reproduce after changing the screen resolution.
PFB the screen shot.


DragOverlay Not Working With Sortable Context

Use Case
Users need to be able to move squares around specific squares (in a certain order), so I thought that using SortableContext would be both be the simplest solution that would solve my problem. I'd also love to render a 'default state' of sorts when the users are moving the objects (ie a card with a number shows up)
Problem
When using drag overlay, instead of staying where the original SortableItem was, it moves around alongside the item being moved. Do you know how I could fix this?
Here's a video of the problem
https://user-images.githubusercontent.com/18711855/107376616-b8f7ca00-6aaf-11eb-9cb0-feab16c285e0.mp4
Package Information
{
    "@dnd-kit/core": "^1.0.0",
    "@dnd-kit/sortable": "^1.0.0",
}

Component In Question:
export const ScavengerHunt: React.FC<IScavengerHunt> = ({ questions }) => {
  const [activeId, setActiveId] = useState<null | string>(null);
  const [currentQuestions, setQuestions] = useState(
    questions as Array<ISHModule>
  );
  const sensors = useSensors(
    useSensor(TouchSensor),
    useSensor(MouseSensor),
    useSensor(KeyboardSensor, {
      coordinateGetter: sortableKeyboardCoordinates,
    })
  );

  const handleDragEnd = (event: DragEndEvent) => {
    const { active, over } = event;
    const oldId = over ? over.id : "";
    setActiveId(null);
    if (active.id !== oldId) {
      setQuestions((oldQuestions) => {
        const oldIndex = oldQuestions.findIndex(
          (question) => question.id === active.id
        );
        const newIndex = oldQuestions.findIndex(
          (question) => question.id === oldId
        );

        return arrayMove(oldQuestions, oldIndex, newIndex);
      });
    }
  };

  const handleDragStart = (event: DragStartEvent) => {
    const { active } = event;
    setActiveId(active.id);
  };

  const normalizedQuestions = currentQuestions.map((question) => question.id);

  const rows = lodash.chunk(currentQuestions, 3);

  return (
    <DndContext
      sensors={sensors}
      onDragEnd={handleDragEnd}
      onDragStart={handleDragStart}
    >
      <SortableContext items={normalizedQuestions}>
        <Grid container spacing={4}>
          {rows.map((row, index) => {
            const direction = (index + 1) % 2 === 0 ? "row-reverse" : "row";

            return (
              <Grid
                container
                item
                direction={direction}
                key={index}
                spacing={4}
              >
                {row.map((question) => {
                  return (
                    <Grid item xs={4} key={question.id}>
                      <SortableItem id={question.id}>
                        <SHQuestion {...question} />
                      </SortableItem>
                    </Grid>
                  );
                })}
              </Grid>
            );
          })}
        </Grid>
      </SortableContext>
      {createPortal(
        <DragOverlay>{activeId && <p>{activeId}</p>}</DragOverlay>,
        document.body
      )}
    </DndContext>
  );
};

Hey @LuisOsta,
I'm not sure I understand the problem. Can you elaborate?
The <DragOverlay> component provides a way to render a draggable overlay that is removed from the normal document flow and is positioned relative to the viewport and follows the cursor. This seems to be working as expected in the video you posted above.
As for the sortable items, they move in response to the collision detection algorithm detecting which item the drag overlay is currently over, and their position updates depending on the sorting strategy, which also seems to be working as expected in the video you posted.

Hey @clauderic ,
Ah I think I misunderstood <DragOverlay>, I wanted to display a component in the original slot that the dragged component was in> (like a card with the index)
What would be the best way to achieve that?

Hey @LuisOsta, you can use <DragOverlay> and also update the active SortableItem:

Hey @LuisOsta, to be honest I'm not really sure I understand your use-case well. Is there something that you could point me to to help me better understand what you're trying to achieve?

I'm going to close this issue for now as there does not seem to be any issue with the library, but we can continue discussing here.

I thought DragOverlay was supposed to show in the place of the item being dragged too.
However, I quickly figured out that this is not the intended case for this library as clauderic pointed out too.
You need to disable transform property of the Draggable component for the desired effect.
E.g:
 const Draggable({hasDragOverlay}){ ... const style = {     transform: hasDragOverlay ? "unset" : CSS.Translate.toString(transform),   }; ... } // set hasDragOverlay to true if you are gonna use DragOverlay

Hey I am having trouble here which is that i am just unable to move my task into another column its like they are stuck with their parent column as well as it has some weird transition when i sort my tasks into same column so ya help me out pls
https://github.com/clauderic/dnd-kit/assets/110740683/b2ff16e6-c23f-40cf-a28e-0ea09b6348e1

Just came here to say, even if this is a two year old comment, this fixed my issue 🥇

I thought DragOverlay was supposed to show in the place of the item being dragged too. However, I quickly figured out that this is not the intended case for this library as clauderic pointed out too.
You need to disable transform property of the Draggable component for the desired effect.
E.g:
const Draggable = ({...,hasDragOverlay,...}){
...
const style = {
    transform: hasDragOverlay ? "unset" : CSS.Translate.toString(transform),
  };
...
}
// set hasDragOverlay to true if you are gonna use DragOverlay

Just came here to say, even if this is a two year old comment, this fixed my issue 🥇


command open/leave chat

the official whatsapp sends a command to open chat and leave the chat? example: sendEnterChar ($target), sendLeaveChat () -> "conversations list"

Nop, it doesnt do that. It sends presence only (subscribe)
Regards


xorm oracle驱动时join表操作和给表取别名时的问题

roc1 := new(Roc)
has, err := util.Engine.Table(RPM_PAR_ROC).Alias(t).
Join("LEFT", []string{"RPM_DIM_PRODUCT", "t1"}, "t.PRODUCT = t1.PRODUCT_CODE").
Get(roc1)
这段代码生成的sql是：
SELECT * FROM (
SELECT *,ROWNUM RN FROM (
SELECT * FROM "RPM_PAR_ROC" "t" LEFT JOIN "RPM_DIM_PRODUCT" AS "t1" ON t.PRODUCT = t1.PRODUCT_CODE) at WHERE ROWNUM <= 1) aat WHERE RN > 0
这里拼接的sql应该是select aat.*,rownum rn from
还有我的 表名 和 别名 不应该有双引号

顺便提一下 oracle数据库 join查询form生成sql为：
SELECT *
FROM "RPM_BIZ_LN_COLTD_PRICING" "blcp_"
LEFT JOIN "RPM_BIZ_LN_COLTD_BUSINESS" AS "blcb_"
ON "blcp_".BUSINESS_CODE = "blcb_".BUSINESS_CODE
WHERE "blcp_".STATUS    != '0'
ORDER BY "blcp_"."CREATE_TIME" DESC
这段话：LEFT JOIN "RPM_BIZ_LN_COLTD_BUSINESS" AS "blcb_"
应该去掉AS

#1355 fixed this issue.


Register Permissions with the admin site

@all - Thoughts on making the Permissions editable from the admin panel?
Add following to admin.py
from django.contrib.auth.models import Permission
admin.site.register(Permission)

We have left overs from prior apps lurking in our database. We could expose and control these via the admin panel if that is thought to be a good way to handle this.
For example: ga_ows and ga_resources permissions remain

Could be exposed and deleted from admin panel:

Downside being ease of removal of needed permissions if not careful.

@mjstealey This editing of permission needs to be done one time right?

This editing of permission needs to be done one time right?

@pkdash - In a perfect world, yes.
Should also take into consideration other leftovers like django_docker_processes:
 public | django_docker_processes_containeroverrides                      | table | postgres
 public | django_docker_processes_dockerenvvar                            | table | postgres
 public | django_docker_processes_dockerlink                              | table | postgres
 public | django_docker_processes_dockerport                              | table | postgres
 public | django_docker_processes_dockerprocess                           | table | postgres
 public | django_docker_processes_dockerprofile                           | table | postgres
 public | django_docker_processes_dockervolume                            | table | postgres
 public | django_docker_processes_overrideenvvar                          | table | postgres
 public | django_docker_processes_overridelink                            | table | postgres
 public | django_docker_processes_overrideport                            | table | postgres
 public | django_docker_processes_overridevolume                          | table | postgres

Like everything else in the admin panel, things can go awry if buttons get pushed too hastily.

@mjstealey I mean once you delete the ga related permissions using the Admin panel we can unregister Permission so that no one has access to it in the admin panel.

I mean once you delete the ga related permissions using the Admin panel we can unregister Permission so that no one has access to it in the admin panel

@pkdash - Correct. Could simply comment it out. Or check it into the codebase already commented out, and then uncomment it when needed.

@mjstealey I think it should be possible to control whether the Permission menu appears or not from a parameter settings in settings.py

I think it should be possible to control whether the Permission menu appears or not from a parameter settings in settings.py

@pkdash - using beta as a test, have removed any permissions and/or database entries for ga_ows, ga_resources and django_docker_processes. The 2 lines of code were added manually, updates made, and then removed again. If no issues are discovered with beta, the same method can be used for production when the time comes and doesn't involve persisting any code.

@mjstealey Sounds good.

deployed to production, manually updated, and removed.


fix: Ignore IllegalDataAddress in the discovery phase

Address 0 for my Fronius GEN24 inverter returned IllegalDataAddress. This fixed the issue for me.

Also - thanks for this great library! I especially love read_model and all the auto-generated documentation!

Thanks a lot. It really is just a workaround.

I refactored that code a bit by moving the logic into the read_fixed_size function and changing the match into a Err(e) if ... expression. I think a io::Result<Option<T>> makes sense for the read_fixed_size function anyways if devices are free to reply with that kind of error. See 420d386115d1b1d1d2099c9189dd32dbfce19537
I just released sunspec 0.3.1 to crates.io including your fix. Thanks a lot!
📦 https://crates.io/crates/sunspec/0.3.1

Great, thanks! 😃


Not deploying

Environment

OS: Ubuntu 20.04
Kubernetes/K3s:  v1.21.7+k3s1 (ac705709)
AWX Operator: 0.15.0

Description
Deployment in endless loop, worked once a few days ago, but not anymore
Step to Reproduce
deploy via README.md (with acme issuer)
Logs
...has timed out progressing.", "reason": "ProgressDeadlineExceeded", "status": "False", "type": "Progressing"}], "observedGeneration": 1, "replicas": 1, "unavailableReplicas": 1, "updatedReplicas": 1}}}\n\r\nPLAY RECAP *********************************************************************\r\nlocalhost                  :
ok=41   changed=0    unreachable=0    failed=1    skipped=30   rescued=0    ignored=0
\r\n\n","job":"3116155310435672272","name":"awx","namespace":"awx","error":"exit status 2"}
{"level":"error","ts":1640068891.7860224,"logger":"controller-runtime.manager.controller.awx-controller","msg":"Reconciler error","name":"awx","namespace":"awx","error":"event runner on failed","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.2/pkg/internal/controller/controller.go:253\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.2/pkg/internal/controller/controller.go:214"}

i uncommented these lines and now it is working again:
web_resource_requirements: {}
task_resource_requirements: {}
ee_resource_requirements: {}
having 2 cores and 4GB though

i uncommented these lines and now it is working again:

This is the answer.
The each nodes in kubernetes have "Capacity" value for CPU and memory, and each Pods running on kubernetes may have a "Request" value for the required CPU and memory. The total "Request" value cannot exceed the "Capacity" value of the node, so if there is not enough capacity, the AWX deployment will fail.
AWX and its PostgreSQL has default "Request" value, and that lines you uncommented will have the effect of removing the default "Request" value for the Pods for AWX and related PostgreSQL.
You can check the "Capacity" of a node and the "Request" value of running Pods with the following command.
$ kubectl describe node
...
Capacity:
  cpu:                4
  ephemeral-storage:  41152888Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7996680Ki
  pods:               110
Allocatable:
  cpu:                4
  ephemeral-storage:<PHONE_NUMBER>6
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7996680Ki
  pods:               110
...
Non-terminated Pods:          (11 in total)
  Namespace                   Name                                                CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                                ------------  ----------  ---------------  -------------  ---
  kube-system                 local-path-provisioner-5ff76fc89d-6w89h             0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  cert-manager                cert-manager-cainjector-967788869-xnq2n             0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  cert-manager                cert-manager-webhook-6668fbb57d-r9dmj               0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  kube-system                 coredns-7448499f4d-h8g4k                            100m (2%)     0 (0%)      70Mi (0%)        170Mi (2%)     25d
  kube-system                 metrics-server-86cbb8457f-v5h4z                     0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  kube-system                 svclb-traefik-gw76c                                 0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  cert-manager                cert-manager-55658cdf68-rfqmf                       0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  awx                         awx-7d74496d7d-d66dw                                2 (50%)       0 (0%)      4Gi (52%)        0 (0%)         12d
  awx                         awx-operator-controller-manager-6d95b9cb57-t6pd2    0 (0%)        0 (0%)      0 (0%)           0 (0%)         7d10h
  kube-system                 traefik-97b44b794-5pl47                             0 (0%)        0 (0%)      0 (0%)           0 (0%)         25d
  awx                         awx-postgres-0                                      0 (0%)        0 (0%)      0 (0%)           0 (0%)         12d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests      Limits
  --------           --------      ------
  cpu                2100m (52%)   0 (0%)
  memory             4166Mi (53%)  170Mi (2%)
  ephemeral-storage  0 (0%)        0 (0%)
  hugepages-1Gi      0 (0%)        0 (0%)
  hugepages-2Mi      0 (0%)        0 (0%)
...

Closed do to inactivity. Feel free to re-open if your issue still exists.


Create3 not running

It is compiling, but when run is selected, nothing happens. Please help. The runner says: create3_connect: Waiting for the Create 3 to connect...
create3_connect: Create 3 connected!
Program exited with code nullFlipthesweitchCleaning up 2
-wombat()
-create()
Program exited with code 0

Hi @Wombatwizzards I'm not sure what you are referring to.
Are you using the KIPR wombat framework?
If that's the case I can't help you, and you should use their dedicated forum: see https://github.com/iRobotEducation/create3_docs/discussions/560#discussioncomment-8668907

Yes, we are using the KIPR framework. Thank you, I’ll go to that forum.
On Fri, Apr 5, 2024 at 6:13 PM Alberto Soragna @.***>
wrote:

Hi @Wombatwizzards https://github.com/Wombatwizzards I'm not sure what
you are referring to.
Are you using the KIPR wombat framework?
If that's the case I can't help you, and you should use their dedicated
forum: see #560 (comment)
https://github.com/iRobotEducation/create3_docs/discussions/560#discussioncomment-8668907
—
Reply to this email directly, view it on GitHub
https://github.com/iRobotEducation/create3_docs/issues/578#issuecomment-2040753260,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BGXZTCQ3SK35ERMCRPPQY3DY34V3JAVCNFSM6AAAAABFZYC7ZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBQG42TGMRWGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Lee Ann Gray, N**BCT 2009-Present
Willard
6th Grade Teacher
Never be the reason someone else has a bad day.


cast 1.0 to 1 so binary phenos coded as 1.0 and 0.0 work

coding of binary phenos was assumed to be 1 and 0, this allows 1.0 and 0.0 to work too (pandas gives 1.0 and 0.0 if not explicitly casted)

lgtm


Network name issues

Dear author ,Since the Moganet network also has a residual structure, can I call this network residual network?

Thanks for your question @xiaobaitubaibaibai, and I agree with your comment. Since ResNet was proposed, the most modern architectures all adopt the residual network.

Thank you for your reply!Thank you!

Thanks for your question @xiaobaitubaibaibai, and I agree with your comment. Since ResNet was proposed, the most modern architectures all adopt the residual network.

Dear author,I have another question:in the article ,do Moganet_tiny belong to deep neural networks?If not,which networks are deep networks?

Hi, @xiaobaitubaibaibai, sorry for the late reply. MogaNet-Tiny belongs to deep neural networks since it requires deep stacks of many network blocks despite its small parameter sizes. On the contrary, you can regard VanillaNet variants as shallow networks. I will close this issue if there are no more questions.


feat: import listens from spotify extended streaming history

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

v1.30.0
GitHub release

Your semantic-release bot :package::rocket:


(tournaments) research tournament types

We will research what types of tournaments we wish to do and document them and realize the most popular ones below

The task described in issue #36 can be considered done currently. I (Zihao Chen) have done some research on 4 different kinds of tournaments (round-robin, single-elimination, double-elimination, and multi-stage) and some descriptions of what each of these kinds are. The result is presented in the Wiki (). Based on the document, we should be able to determine the most appropriate form to be implemented. In the next step, we can start choosing the one for implementation.

Issue Score: Excellent
Comments:
Great work! Glad you guys included multiple different types of tournaments and clear explanations of all four. In the future, for documentation related issues, please link the documentation as part of a comment or in the closing statement. Also, for the summary/goal of the issue, include that in the description of the issue rather than a comment.


Refactor: metanode raftSubmit command add operator time

Signed-off-by: awzhgw<EMAIL_ADDRESS>
What this PR does / why we need it:
raftSubmit command add operator time

it is very danager .so close it


Update Polis Ext Prefixes

Hey @NicolasDorier We are going to start using this Library for one project, what we love is the altcoin support.


[FR] Add late/early evening

I've added two things for the french version :

En début de soirée (early evening)
En fin de soirée (late evening)

Note: in french evening always means night.

Thanks


Can't run tokenizer

Hi!
I am trying to run data/TokenizeData.py and I am getting the following error:
Traceback (most recent call last):
  File "/home/sasha/ML_DS/ML Research/Alilama/data/TokenizeData.py", line 5, in <module>
    from tokenizer import RegexTokenizer
  File "/home/sasha/ML_DS/ML Research/Alilama/data/tokenizer/__init__.py", line 2, in <module>
    from .regex import RegexTokenizer
  File "/home/sasha/ML_DS/ML Research/Alilama/data/tokenizer/regex.py", line 13, in <module>
    from .fastfuncs.funcs import trainFast, tokenizeFast
ImportError: dynamic module does not define module export function (PyInit_funcs)

I wonder if you know what might cause it. Googling quickly the error didn't help.

make sure you are in the root directory. I think then it should work

I am not really sure. I tried it again on my pc and it does work. Make sure to be in the root directory and then execute
python data/TokenizeData.py
You can also try to cd into the data folder and execute it directly, this also works on my pc. Let me know if this helps. If not there might be something wrong with the repo

Thank you for looking into it! This might be something Linux-specific or due to an incompatible version of Cython I have. Here is a quick way to reproduce the issue in a colab notebook: https://colab.research.google.com/drive/17w3TKkQtfJpU9hfD_GemkxtShTeQn4ih
I tried recompiling with g++ -fpic -shared -O3 -o funcs.so funcs.cpp -static-libstdc++ but this didn't help.
I have python3.11, cython==3.0.9 and numpy==1.26.4

Alright, i will take a look at it. It is probably something linux specific. I developed under windows and only tested on linux using WSL

Ok, i fixed the issue now. I just had to rename the .so file. Let me know if it works now

Thanks, it works now! BTW thank you for sharing your work here. I was looking for a bit more modern analogs of nanoGPT to play with and was lucky to stumble on your blog post and the repo.

Thanks, it works now! BTW thank you for sharing your work here. I was looking for a bit more modern analogs of nanoGPT to play with and was lucky to stumble on your blog post and the repo.


How addEventListener in nested template?

Please, see the following link for details:
http://stackoverflow.com/questions/28838190/how-addeventlistener-in-nested-template
The question is: WHEN (in which event) should I use querySelectorAll() to get my forms that are inside a second/nested template (first is "#app"). Array length is returning zero.

app.addEventListener('template-bound', function() {
    console.log('template-bound');
    var template2 = app.$.template2;
    var forms = template2.querySelectorAll('.teste');
    console.log(template2); <== ok (HTMLTemplateElement)
    console.log(forms.length); <== issue (0)
});

Question answered on stackoverflow, marking as closed


Fix integration tests' coverage data

We forgot to setup coverage in some integration tests.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (ab72b69) 69.55% compared to head (3769981) 69.55%.
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #631   +/-   ##
=======================================
  Coverage   69.55%   69.55%
=======================================
  Files          91       91
  Lines        7601     7601
=======================================
  Hits         5287     5287
  Misses       2061     2061
  Partials      253      253

Flag
Coverage Δ

integration-test
57.10% <ø> (ø)

unittests
40.72% <ø> (+0.04%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Support related resource responses in DELETE requests

Imagine a "parent" and "child" resource, like an order with order lines.
order
  totalPrice: attribute
  orderlines: relationship, to-many orderline

orderline
  order: relationship, to-one order

When you DELETE /orderlines/{id}, the parent order's totalPrice changes. With the current specification, the client must GET /orders/{id} after the DELETE in order to get the updated order data. It would be better if it was possible to include the parent resource after deleting the child resource, e.g. if DELETE /orderlines/{id} could in some way respond with the updated order.
(For the record, #1492 also deals with including resources in responses where currently unsupported, but the issues are distinct.)

Is this something that could be considered for a future version of the spec (perhaps even 1.1), or are there fundamental problems with it?

Is this something that could be considered for a future version of the spec (perhaps even 1.1), or are there fundamental problems with it?

The proposal to use . as a keyword to identify target resource if a relationship update seems reasonable to me. A pull request would be helpful to identify any potential problems we haven't noticed so far.
I think it is unlikely that it gets into v1.1. Main priority is to ship v1.1 finally to unlock experiments using extensions and profiles as far as I understood it. But beside limited time from editors and contributors nothing prevents us from shipping a v1.2 soon afterwards.

The proposal to use . as a keyword to identify target resource if a relationship update seems reasonable to me.

Did you mean to post this in #1492?

The proposal to use . as a keyword to identify target resource if a relationship update seems reasonable to me.

Did you mean to post this in #1492?

If I didn't missed something, both #1492 and this issue would be solved by introducing a keyword to identify the target resource of a relationship upgrade in include path, isn't it?
To include the target resource of a relationship upgrade, which is mainly discussed in #1492, ?include=. would work. To include a related resource, a relationship path based on the target resource could be used. In this case it would be ?include=.order.

To include a related resource, a relationship path based on the target resource could be used. In this case it would be ?include=.order.

Why not just include=order? Here, there is no need to include the target resource, which is the resource you just deleted. That can't be included. Therefore, starting a path with . (with the assumption that this would include the current resource, which has just been deleted) would be invalid.
To be clear:

PATCH /orderlines/{id}?include=order returns the modified orderline as primary data and the order as included data
PATCH /orderlines/{id}/relationships/whatever?include=. returns the relationship identifiers as primary data and the modified orderline as included data (and include=.order would return both the orderline and its order as included data)
DELETE /orderlines/{id}?include=order (my suggestion) returns empty primary data (since the orderline has been deleted) and its (before-deletion) parent order as included data
DELETE /orderlines/{id}?include=.order (your suggestion), if keeping the semantics from the relationship update, would indicate that the (deleted) orderline as well as its order should be returned as included data, which is invalid since the orderline doesn't exist anymore and therefore can't be returned.

Did that make sense? Please let me know if anything is unclear.

You are right. I confused #1492 and this one. Will move the comments over. :+1:

For the clarity of future readers, are you able to mark these comments as hidden?

Could it be considered for inclusion in the spec? I think this is useful enough that it warrants inclusion in the base spec

It is considered for inclusion in base specification. But I'm not sure yet how to do this.
I think informing a client about side-effects caused by a mutation needs to be addressed in general. Not only for deletion of resources.
A server can use a compound document to inform a client about side-effects using a compound document when creating and updating a resource. But also this patterns has noticeable limitations:

It only works if there is a relationship between primary resource(s) and the resources updated as a side-effect. This is often the case but may require including interim resources.
A server can only inform a client about current state of resources by including them in the response. The server cannot explicitly inform the client that resources changed. Client would need doing a diff from old state it was aware of and the state in the response to detect if there was a change. This requires including all changed attributes of the updated resource(s). Often a client does not need the new representation right away. It might be enough to know that a locally cached representation of the resource is outdated and that the resource must be refreshed when it is needed again.
Informing a client about side-effects using a compound document does not work well together with included query parameter. A server must not include any other related resources than those specified by included query parameter if the query parameter is set. This prevents the server from informing the client about side-effects in that case.
It does not work for relationship updates using a relationship URL as discussed in #1492.

All in all I think we should explore better ways to inform a client about side-effects. We should do that exploration first in an extension before adding something to the base specification.

I think we should explore better ways to inform a client about side-effects. We should do that exploration first in an extension before adding something to the base specification.

Please see https://github.com/json-api/json-api/issues/1492#issuecomment-1207826202 for early thoughts how such an extension may look like.


Is there a way to make the black_box_function receive an array as a parameter?

I would like to work with arbitraries numbers of parameters for a function rather than having to call them by name. For example, if I have a black_box_function() that takes, let's say 20 parameters, is there a way of calling it:
black_box_function(x)
where len(x)=20 and then len(pbounds)=20, or something similar?

Hi, I have the similar question. Could you share how you solved it?

Hi Thi Vo,
This was a while ago so I don't remember all the specific details right now, but In the end what I did was write a wrapper function wrapper_for_bayesian_optimization(**x), if I recall correctly.
I hope this idea sends you in the right direction (it worked for me, at least). If it doesn't let me know and I'll try to remember exactly what I did, but I can't make any promises.

Hi Luis,
thank you so much for your help. It also worked for me.


Relational: consider leveraging knowlege of uniqueness in the translation of SingleOrDefault

Single[OrDefault]() at the top of a query results in SQL that can potentially return 2 rows and then applies the in-memory operator to the results, while the translation of First[OrDefault]() produces SQL that could only ever return 1 row.
It has been asserted in https://github.com/aspnet/EntityFramework/issues/6517#issuecomment-248828219 that the "first" operators may perform better than the "single" operators in queries that filter by key equality. You could also argue that no TAKE is needed when we expect uniqueness constraints in the database to prevent more than one row containing the same value.
I am creating this bug for us to discuss a possible improvement here: If we measuring the performance of the query shows that there is a big potential gain we can consider leveraging uniqueness knowledge from metadata to produce a faster translation in certain cases.

Related to #1948

EF Team Triage:
Potential pros:

Perf benefit?
Customers seem to expect this behavior
Potential cons:
Complexity
Uniqueness may actuall not be enforced in the database

We discussed this again at length, but ultimately decided that the value is not high enough when compared against the implementation cost. Therefore we are closing this as we don't plan to implement it. However, we would be happy to consider a well-written PR for this functionality if anyone in the community is willing to do so.


What version of scala/spark do I need?

I couldn't find the jars in spark-1.5.0 so I downloaded spark-2.12 and changed the sbt file
-libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.0" % "provided"
+libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.2" % "provided"

I get this error when I copy the 2.12 jars into project/target/scala-2.12
sbt.librarymanagement.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.12;2.1.2: not found

Spark does not support scala 2.12. Only scala 2.11 / scala 2.10

On 14. Sep 2018, at 20:27, Jay<EMAIL_ADDRESS>wrote:
I couldn't find the jars in spark-1.5.0 so I downloaded spark-2.12 and changed the sbt file
-libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.0" % "provided"
+libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.2" % "provided"
I get this error when I copy the 2.12 jars into project/target/scala-2.12
sbt.librarymanagement.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.12;2.1.2: not found
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

You need to define the Spark version in the build.sbt
Spark 2.4 will support Scala 2.12
We will support Scala 2.12 in the next release. Meanwhile use Scala 2.11 (any recommended, because Spark 2.4 was just released and is the first version to support 2.12)


Game data and profile not updating

Describe the bug
After doing the usual update procedure (which is tedious sadly) and the application apparently running fine, no game data appears on my account.
No matches, no cards, no deck changes. This is the affected account https://mtgarena.pro/u/NIL.
Version: <IP_ADDRESS>
Tried fixes:

restarting the app
"manual Re-Sync" option
re-selecting the log location

edit: i zipped the log and send it via email to the admin account - title is the name of this ticket.

You have to use "full reset" button


⚠ Bofrost.lu has degraded performance

In 2478117, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 858 ms

Resolved: Bofrost.lu performance has improved in faa33d9 after 2 hours, 4 minutes.


Metric Discovery UI updates

add buttons to clear, add expression, graph expression.

Current coverage is 37.47% (diff: 100%)

Merging #156 into develop will increase coverage by 0.01%

@@            develop       #156   diff @@
==========================================
  Files           257        257
  Lines         13856      13856
  Methods           0          0
  Messages          0          0
  Branches       2325       2325
==========================================
+ Hits           5191       5193     +2
+ Misses         7943       7941     -2
  Partials        722        722

Powered by Codecov. Last update f38808e...cd3a99f


mempool: drop database if exists

When activating the mempool service, the following error occurs:
ERROR 1008 (HY000) at line 1: Can't drop database 'mempool'; database doesn't exist
This happens because it uses DROP DATABASE instead of DROP DATABASE IF EXISTS.
This PR fixes the error.

Hey @cstenglein its a small but good improvement ... can you rebase the PR to the dev branch?

@rootzoll done :)

Thx :)


[Mesheryctl] Meshkit (session__sync_handlers)

Signed-off-by: Chadha93<EMAIL_ADDRESS>Description
This PR fixes #3305
Notes for Reviewers
This pr is for handler 2. session_sync_handlers
Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #3446 (a3df59f) into master (ed4a9e8) will decrease coverage by 1.67%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3446      +/-   ##
==========================================
- Coverage   12.30%   10.62%   -1.68%
==========================================
  Files          37       37
  Lines        3162     3162
==========================================
- Hits          389      336      -53
- Misses       2690     2759      +69
+ Partials       83       67      -16

Flag
Coverage Δ

gointegrationtests
?

unittests
10.62% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/check.go
1.58% <0.00%> (-21.04%)
:arrow_down:

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 ed4a9e8...a3df59f. Read the comment docs.

Hey @mgfeller @DelusionalOptimist I found that in this PR in the  errorutil_analyze_errors.json file the path name changed from "path": "handlers/error.go" to "path": "handlers\\error.go" like all the "/" changed to "\" so is this a desired behaviour?

Hey @mgfeller @DelusionalOptimist I found that in this PR in the  errorutil_analyze_errors.json file the path name changed from "path": "handlers/error.go" to "path": "handlers\\error.go" like all the "/" changed to "\\" so is this a desired behaviour?

Hmm.. interesting. If I'm right, this is how paths work in Windows.
@Chadha93 are you doing your changes and running the utility on windows by any chance?

Yes @DelusionalOptimist @Chadha93 is running the utility on windows.

Ig some reviewer/maintainer can run the utility for Gaurav and update his branch. Or he can push his commits without the three errorutil_*.json files for now and we can merge it. Someone else running the util in an open PR will update these.
First sounds easier tho :P.

@DelusionalOptimist Yes I tested these changes in windows itself, OK I think these err utilities are not configured for windows ?? I will test it on ubuntu in the future.

@Chadha93  thanks for testing on Windows, it should work there too, path handling in the code should handle that - not quite sure how it manages command line parameters specifying paths, though, come to think of it, i.e. if they are specified with '/' e.g. in Makefile (no paths there yet I can see). Are you using make?
path is just informative, from that point of view it doesn't matter if it shows a Windows path, but of course it will change if it is run on Linux. I'll look into converting it to a POSIX path in the code.
// @DelusionalOptimist @sayantan1413

@Chadha93 thanks for testing on Windows, it should work there too, path handling in the code should handle that - not quite sure how it manages command line parameters specifying paths, though, come to think of it, i.e. if they are specified with '/' e.g. in Makefile (no paths there yet I can see). Are you using make?
path is just informative, from that point of view it doesn't matter if it shows a Windows path, but of course it will change if it is run on Linux. I'll look into converting it to a POSIX path in the code.
// @DelusionalOptimist @sayantan1413

@mgfeller Yes I'm using make

@DelusionalOptimist @sayantan1413 Is this ready to merge?

No @kumarabd I think there are some changes still required for this PR to merge.

@sayantan1413 I think @DelusionalOptimist is right after merging this or someone else running these tests on ubuntu/macOS can update the error utilities. I have updated the seeesion_sync_handlers.

Okay @Chadha93 so It looks good to me now. But I think there are some CI issues😬 Can you check it once?

Okay @Chadha93 so It looks good to me now. But I think there are some CI issuesgrimacing Can you check it once?

There's an unresolved merge conflict in handlers/error.go as well as duplicate declarations. There was a discussion in another PR (?) how to best handle this @sayantan1413 @DelusionalOptimist , related to errors... one possible solution could also be not to declare all errors in the same file in a package (i.e. error.go)?

I have linked a new pr for this (tested on ubuntu), so closing this one.


Add pre commit hooks for formatting

Made to address #1206, black and isort are run on the staged files

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

It is not good that we are seeing determinism issues.


[Bug] Game crash upon startup

Hi. I am using fabric loader 0.14.8-1.19 and the crash crash every single time when i start it. I removed all the mods except the fabric api 0.56.1+1.19, but still crashes.
Mods i use and the crash log are attached.

crash-2022-06-23_13.23.42-client.txt

Install cloth config https://www.curseforge.com/minecraft/mc-mods/cloth-config

It works now. Thank you. (Quick suggestion) Update the required dependencies in https://modrinth.com/mod/visuality.

It suppose to be optional so needs to be fixed

still crashes even with a cloth config

crash-log.txt


error: integer number too large

Integer number too large of id Telegram,
error: integer number too large
            params.botID =<PHONE_NUMBER>;

Integer number too large of id Telegram,
error: integer number too large
            params.botID =+959766446212;

Integer number too large of id Telegram,
error: integer number too large
            params.botID =<PHONE_NUMBER>;

Re

Any update on this issue? I'm also having the same problem where my botId is bigger then MAX_INT

up


High CPU usage while waiting for cron schedule

I noticed a high CPU usage - even though it should not be doing anything but waiting for the cron scheduled time.
In the Rufus scheduler there is a :frequency option which by default is 0.3s - could this be increased here? Maybe this would help?

Sounds like a bug in rufus. What if instead of changing the frequency, we make Rufus better about scheduling -- instead of sleep/wake/check cycles, maybe we could have it sleep exactly as long as needed until the next job?
What I am proposing is an upstream contribution.
For what it's worth, doing work every 0.3s should not have any significant impact on your cpu usage unless there is something seriously wrong.
Can you attach jstack and other profiler output for your Logstash instance so we can evaluate where the cpu usage is coming from?

The above is a screenshot with Rufus::Scheduler configured with 1 job. top -H watching only the jruby process.  I am not seeing it taking much cpu.


cairo0 ComputeSlopeV1 hint implementation

ComputeSlopeV1Hint #257
This hint  calculates the slope between two points on an elliptic curve. Steps involved:

Difference of x-coordinates:
It calculates the difference between the x-coordinates of the two points (mod_value).

Zero Check:
It checks if the difference in x-coordinates mod prime is zero. If it's zero an error is raised.

Differences for Slope Calculation:
It calculates the difference (y2 - y1) between the y-coordinates of the two points (n).
It calculates the difference (x2 - x1) between the x-coordinates of the two points again (m).

Modular Inverse:
It calculates the modular inverse of m (the difference in x-coordinates) modulo the prime (secPBig).

Slope Calculation:
It multiplies n (the difference in y-coordinates) with the modular inverse of m (calculated in step 4). The result, multiplied by the prime (secPBig), is the slope of the line connecting the two points.

Test cases for this hint have been compared with the results produced by the  VM implementations in Rust and Go.

It looks great!
There are also some conflicts that need to be solved.

Hello @cicr99 , I linked a new PR that closes this issue...had way too many conflicts on this

Hello @cicr99 , I linked a new PR that closes this issue...had way too many conflicts on this


Add a confirmation to bank all inventory / worn items

Is it possible to do this? It's extremely annoying accidentally clicking the deposit inventory button.

Dont think it is possible, that would require faking user input after confirming the action. There is issue open already i think for making the left click cancel/


Refactors underlying OpenGL windowing

These are private functions to RendererOpenGL.
Splits out the terribly named _resize into the three functions the implementation is actually doing:

setViewport
setOrthoProjection
setResolution

and renames _resize to resizeWindow

Closing to remake due to readability.


replace tinkerpop api with neighbor accessors / scala collections

replace tinkerpop sack traversal with standard for loop: Expression.parameter, MethodParameter.argument, MethodParameterOut.argument
TrackingPointMethodsBase without tinkerpop
some more easy refactorings away from tinkerpop
wherever it's easily portable already, don't start traversals on node level

One general note: Gremlin swallows NoSuchElement exceptions, so, whenever code is ported over from Gremlin to scala iterators, we probably want to introduce exception handling to catch, report and ignore NoSuchElement.

It depends on the use case. But yes, this is an important difference when using normal collections vs gremlin.


Todo Editing Improvements

(Text option) Don't offer a context/project if already assigned to the todo.

If sugestions are shown, you should hide suggestions (like pressing Esc) by clicking on a part of the edit box other than the suggestions box (or the text field). For example, the surrounding white. Clicking outside the whole edit box should close editing as usual.

(Text option) Don't automatically add creation date.

Steps:

Click a todo.
Make some changes.
Click outside edit box.

Actual: editing is cancelled and no changes are saved.
Suggested: show a confirmation to avoid losing changes.
Reason: mistaken closure happens, especially that the save button is close to the edge.

Steps:

Click a todo.
Make some changes.
Click outside edit box.

Actual: editing is cancelled and no changes are saved.
Suggested: show a confirmation to avoid losing changes.
Reason: mistaken closure happens, especially that the save button is close to the edge.

This one is added in the next version. The confirmation will only be shown if there has been an edit to the text field.

(Text option) Don't automatically add creation date.
Can you explain why and what "Text option" means?

Also I would suggest that we should collect any requirement in the inital post by editing it. It is somehow confusing if requirements appear in following postsor in the middle of a discussion.

This one is added in the next version. The confirmation will only be shown if there has been an edit to the text field.

👍

(Text option) Don't automatically add creation date.

It means a setting in config file(s), but not in the UI (like here: #151) to keep the UI simple. Is there a clearer way to describe these?

Also I would suggest that we collect any requirement in the inital post by editing it. It is somehow confusing if requirements appear in following postsor in the middle of a discussion.

No problem. I will keep a checklist in the top post for reference.

Steps:

Click a todo.
Make some changes.
Click outside edit box.

Actual: editing is cancelled and no changes are saved.
Suggested: show a confirmation to avoid losing changes.
Reason: mistaken closure happens, especially that the save button is close to the edge.

This one is available in https://github.com/ransome1/sleek/releases/tag/v1.0.9-rc.1

When a project/context popup is show, allow ctrl +click to select more than one project (similar to how you select multiple files in a file manager).
During that, always keep showing the list as-is until the user clicks away or clicks on a project without ctrl. For example, If I typed +lor to show only some projects, don't close the list or reset the filter after the ctrl+click. Keep the same filtered suggestions.

Bug:

Open edit box and make changes
Click outside the box. The "cancel edits" confirmation appears.
Click outside the confirmation message.

Expected:

Nothing happens. You can only take action by clicking "Confirm" or "Cancel".

Actual:

The message is dismissed with confirmation (The edits are lost).

Bug:

Open edit box and make changes
Click outside the box. The "cancel edits" confirmation appears.
Click outside the confirmation message.

Expected:

Nothing happens. You can only take action by clicking "Confirm" or "Cancel".

Actual:

The message is dismissed with confirmation (The edits are lost).

This is added to the final 1.10.

Would love to be able to select more than one task with shift or click. Adding a context or a project to multiple tasks is now a bit clunky.

@aleksfadini
The other topic (#56)  you commented on is the right one.
This issue is about the edit box that appears when you click a todo. :)

Whoops. Sorry! Feel free to delete my comment here, I think it's confusing. Thanks again, Sleek is awesome!
My best,
Alessandro
On Aug 3, 2021, 9:40 PM -0400, 9z0 @.***>, wrote:

@aleksfadiniThe other topic (#56) you commented on is the right one.
This issue is about the edit box that appears when you click a todo. :)
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.


Choose us enhancement [Fixes: 269]

Description
This PR fixes #269

@akshathar-navada okay

Hey @akshathar-navada
In small screen still Why Choose Us is not centred. Is someone working on it?


Merge custom-cluster-integration-test-suite into integration-test-set-1

This is to ensure the codecov is accurate.

Codecov Report

Merging #11378 (bbf7a44) into master (575398d) will decrease coverage by 61.47%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master   #11378       +/-   ##
=============================================
- Coverage     61.46%    0.00%   -61.47%
=============================================
  Files          2233     2192       -41
  Lines        120144   118361     -1783
  Branches      18234    18103      -131
=============================================
- Hits          73848        0    -73848
- Misses        40882   118361    +77479
+ Partials       5414        0     -5414

Flag
Coverage Δ

integration1
0.00% <ø> (ø)

integration2
?

java-11
?

java-17
?

java-20
0.00% <ø> (-61.33%)
:arrow_down:

temurin
0.00% <ø> (-61.47%)
:arrow_down:

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1826 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

The custom test suite is not run at all..

The third test suite finishes super fast, majority of the time was spent on building the project..
Can we use the same way as how controller stateful and stateless tests are modeled?


name field for debug?

A lot of properties has a name field like Mesh, Node, etc. It would be nice having a name to track when debugging with a complex gltf.

Hi, I've just added this as a feature: https://github.com/expenses/goth-gltf/commit/eaa7014101a350b23c92e45d5ed48b1e616d4ad1 as it might cause too many allocations as some people.


Casting from Binary --> Utf8 to evaluate LIKE slows down some ClickBench queries

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
While working on enabling StringView by default in https://github.com/apache/datafusion/pull/12092 I noticed that some of the clickbench queries got 10% slower and looked into it.
The plan looks like this:
DataFusion CLI v41.0.0
+---------------+----------------------------------------------------------------------------------------------------$
| plan_type     | plan                                                                                $
+---------------+----------------------------------------------------------------------------------------------------$
| physical_plan | AggregateExec: mode=Final, gby=[], aggr=[count(*)]                                                 $
|               |   CoalescePartitionsExec                                                                           $
|               |     AggregateExec: mode=Partial, gby=[], aggr=[count(*)]                                           $
|               |       ProjectionExec: expr=[]                                                                      $
|               |         CoalesceBatchesExec: target_batch_size=8192                                                $
|               |           FilterExec: CAST(URL@0 AS Utf8View) LIKE %google%                                        $
|               |             ParquetExec: file_groups={16 groups: [[Users/andrewlamb/Software/datafusion/benchmarks/$
+---------------+----------------------------------------------------------------------------------------------------$
2 row(s) fetched.
Elapsed 0.065 seconds.

When looking at the flamegraphs, you can see the CAST spends a huge amount of time validating utf8 (more time than actually evaluating the LIKE predicate actually):

Here are the full flamegraphs for comparison:
q20-flamegraph-main
q20-flamegraph-stringview
I belive the issue is here:
|               |           FilterExec: CAST(URL@0 AS Utf8View) LIKE %google%

This filter first *CASTs the URL column to Utf8View and then evaluates  LIKE`
Converting BinaryArray --> StringArrayas is done without StringView is relatively faster because it is done with a single large function call
However, converting BinaryViewArrar --> StringViewArray is not as it makes many small function calls. The parquet reader has a special optimization for this as descsribed in "Section 2.1: From binary to strings" of the Using StringView / German Style Strings to Make Queries Faster: Part 1 - Reading Parquet from  @XiangpengHao
Describe the solution you'd like
I would like this query to go as fast / faster with Utf8View / BinaryView enabled.
Bonus points if it went faster even without Utf-8 enabled
Describe alternatives you've considered
Option 1: LIKE for binary
One option is to skip validating  UTF8 entirely and evaluate LIKE directly on binary. This would mean if the column is read as binary we could cast the argument '%google%' to binary and then evaluate LIKE directly on the binary column. This would skip validaitng utf8 completely
Unfortunately, it appears that the like kernel is only implemented for StringArray and StringViewArray at the moment, not BinaryArray:  https://docs.rs/arrow-string/53.0.0/src/arrow_string/like.rs.html#110-149
Another related option would be to potentially special case the LIKE rewite in this case for just prefix / contians / suffix -- in this case rewrite <binary> LIKE <const that starts and ends with '%'> --> <binary> CONTAINS <string>
Option 2: resolve the column as Utf8 rather than Binary
For some reason the schema of hits.parquet (the single file from ClickBench) has the URL column (and others) as Utf8 (strings) but the hits_partitioned file resolves it as Binary. \
We could change the schema resolution logicic to resolve the column as a String instead.
This option is probably slower than option 1 but I think it is more inline with what the intended semantics (these columns contain logical stirngs) and the parquet reader includes the fast read path for such strings and would be more general.
Filed https://github.com/apache/datafusion/issues/12510 to track this ideae
Additional context

I have been thinking about this, and I came up with a third option which is to "push the casting into the scan"
Consider this plan for q28:
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------$
| plan_type     | plan                                                                                $
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------$
| logical_plan  | Sort: l DESC NULLS FIRST, fetch=25                                                                                $
|               |   Projection: regexp_replace(hits_partitioned.Referer,Utf8("^https?://(?:www\.)?([^/]+)/.*$"),Utf8("\1")) AS k, avg(character_length(hits_partitioned.Referer)) AS l, count(*) AS c, min(hits_partitioned.Referer)                                                                                $
|               |     Filter: count(*) > Int64(100000)                                                                                $
|               |       Aggregate: groupBy=[[regexp_replace(__common_expr_1 AS hits_partitioned.Referer, Utf8("^https?://(?:www\.)?([^/]+)/.*$"), Utf8("\1"))]], aggr=[[avg(CAST(character_length(__common_expr_1 AS hits_partitioned.Referer) AS Float64)), count(Int64(1)) AS count(*), min(hits_partitioned.Referer)]]          $
|               |         Projection: CAST(hits_partitioned.Referer AS Utf8) AS __common_expr_1, hits_partitioned.Referer                                                                                $
|               |           Filter: hits_partitioned.Referer != BinaryView("")                                                                                $
|               |             TableScan: hits_partitioned projection=[Referer], partial_filters=[hits_partitioned.Referer != BinaryView("")]

The
 Projection: CAST(hits_partitioned.Referer AS Utf8) AS __common_expr_1, hits_partitioned.Referer

Is what is causing a non trivial slowdown.
The issue is that hits_partitioned.Referer is read as a BinaryView
The problem is that BinaryView --> Utf8View conversion is much slower than reading Utf8View directly out of the parquet file due to the Utf8 optimization described by @XiangpengHao  in "Section 2.1: From binary to strings" of the string view blog.
Option 3: Implement push down casting  (maybe as an Analyzer rule??)
The theory here is that some readers( such as the parquet reader) can produce the data more effiicently in a particular format than creating it first in one format before datafusion casts it to another.
So the plan above would basically push the cast down so the parquet reader read the hits_partitioned.Referer as a Utf8View to begin with

BTW I think option 3 is the ideal solution (as it would be general purpose and likely benefit all plans, not just ClickBench) -- push the casting into the scan as the TableProvider may be able to create the desired datatype more efficiently than casting after the fact.
Another idea that @tustvold  and I talked about yesterday would be to improve the performance of casting BinaryView --> Utf8View, inspired by @XiangpengHao 's trick for the parquet reader:

Attempt to validate the entire buffer (not string by string) is Utf8
If the entire buffer is utf8, then for each large array element validate that it doesn't point into the middle of a Utf8 codepoint
If the entire buffer is not utf8, then fall back to validating each long string one by one
(I'll try and write up a ticket later about this)

Thank you for looking at this one @jayzhan211

BTW the more I think about this one, the more I think the "right" fix might just be to setup the query with the appropriate schema (aka tell DataFusion to treat the string columns as strings with CREATE EXTERNAL TABLE... rather than trying to do some sort of type casting contortions) 🤔

Leaving it as binary messes up the results of the queres too
For example, if you run this query
SELECT "SearchEngineID", "SearchPhrase", COUNT(*) AS c FROM 'hits_partitioned' WHERE "SearchPhrase" <> '' GROUP BY "SearchEngineID", "SearchPhrase" ORDER BY c DESC LIMIT 10;

You get this arguably nonsensical result:
(venv) andrewlamb@Andrews-MacBook-Pro-2:~/Downloads$ datafusion-cli -f q.sql
DataFusion CLI v42.0.0
+----------------+--------------------------------------------------------------------------------------------------+-------+
| SearchEngineID | SearchPhrase                                                                                | c     |
+----------------+--------------------------------------------------------------------------------------------------+-------+
| 2              | d0bad0b0d180d0b5d0bbd0bad0b8                                                                     | 46258 |
| 2              | d0bcd0b0d0bdd0b3d18320d0b220d0b7d0b0d180d0b0d0b1d0b5d0b920d0b3d180d0b0d0bcd0b0                   | 18871 |
| 2              | d181d0bcd0bed182d180d0b5d182d18c20d0bed0bdd0bbd0b0d0b9d0bd                                       | 16905 |
| 3              | d0b0d0bbd0b1d0b0d182d180d183d182d0b4d0b8d0bd                                                     | 16748 |
| 2              | d181d0bcd0bed182d180d0b5d182d18c20d0bed0bdd0bbd0b0d0b9d0bd20d0b1d0b5d181d0bfd0bbd0b0d182d0bdd0be | 14909 |
| 2              | d0b0d0bbd0b1d0b0d182d180d183d182d0b4d0b8d0bd                                                     | 13716 |
| 2              | d18dd0bad0b7d0bed0b8d0b4d0bdd18bd0b5                                                             | 13414 |
| 2              | d181d0bcd0bed182d180d0b5d182d18c                                                                 | 13108 |
| 3              | d0bad0b0d180d0b5d0bbd0bad0b8                                                                     | 12815 |
| 2              | d0b4d180d183d0b6d0bad0b520d0bfd0bed0bcd0b5d189d0b5d0bdd0b8d0b5                                   | 11946 |
+----------------+--------------------------------------------------------------------------------------------------+-------+
10 row(s) fetched.
Elapsed 0.561 seconds.

(venv) andrewlamb@Andrews-MacBook-Pro-2:~/Downloads$

vs if you run the same query with the proper schema:
(venv) andrewlamb@Andrews-MacBook-Pro-2:~/Downloads$ datafusion-cli -f q.sql
DataFusion CLI v42.0.0
+----------------+---------------------------+-------+
| SearchEngineID | SearchPhrase              | c     |
+----------------+---------------------------+-------+
| 2              | карелки                   | 46258 |
| 2              | мангу в зарабей грама     | 18871 |
| 2              | смотреть онлайн           | 16905 |
| 3              | албатрутдин               | 16748 |
| 2              | смотреть онлайн бесплатно | 14909 |
| 2              | албатрутдин               | 13716 |
| 2              | экзоидные                 | 13414 |
| 2              | смотреть                  | 13108 |
| 3              | карелки                   | 12815 |
| 2              | дружке помещение          | 11946 |
+----------------+---------------------------+-------+
10 row(s) fetched.
Elapsed 0.569 seconds.

I will file a proper ticket for this

If you are looking to help StringView along @jayzhan211  I would recommend https://github.com/apache/datafusion/issues/12771

I think if we fix the schema of hte table for hits_partitioned to what it is supposed to be, the queries will be quite fast

Binary should be utf8-encoded to be converted to String, if we always cast binary to string, will we add overhead for binary that is not utf8-encoded case?

After changing the table schema from Binary to Utf8, the query becomes slower.

If we always check whether a binary is UTF-8 encoded before converting it to a string, will this add overhead for cases where the binary is not UTF-8 encoded?

I think there are two things going on:

Reading a column as a BinaryViewArray and then casting to Utf8ViewArray is significantly slower than reading the data from parquet as a Utf8ViewArray (due to optimizations in the parquet decoder).
Reading a column as a BinaryArray and then casting to Utf8Array is about the same speed as reading as Utf8Array

So I think the core issue is that for hits_partitioned the "string" columns in the schema are marked as binary (not Utf8) and thus the slower conversion path is used

After changing the table schema from Binary to Utf8, the query becomes slower.

🤔  I don't understand that

So I think the core issue is that for hits_partitioned the "string" columns in the schema are marked as binary (not Utf8) and thus the slower conversion path is used

I'm not quite familiar with Parquet yet, do you mean you can modify the file schema to String? I thought we should keep the file schema as binary but change the mapped schema (table schema) to utf8/utf8view. Therefore, we need to validate the binary to know whether the array is utf8 or not. If it is utf8, we can convert it to string, if not we need to keep it as binary. In this case, we have an additional UTF8 validation check, although not sure if the overhead is negligible or not.
I only tried modifying the table schema to utf8 without any utf8 validation, but the query is slower compared to main.
If we want to try binary to utf8view, I think we need to support arrow-rs casting first.

Hi @jayzhan211  -- sorry my confusion -- I have written up what I think we should do here: https://github.com/apache/datafusion/issues/12788
This is part of (but not all) of what we need to turn on StringView


Spring security context added as additional http header to http request via service invocation

Expected Behavior

During service invocation, we are affected by #3408. This is mainly because the entire spring security context is added as a header to the request. In our case, this exceeds the default allowed header size for fasthttp requests.
As the service beeing called has no secured endpoint in this case, the  security context is of no use during this workflow.
I would expect, that per default a tranfer of security context information via service invocation is disabled, an that it can be added, if needed.
Actual Behavior

service invocation in context of a spring security application breaks during runtime with a too large http header. see #3408
Steps to Reproduce the Problem

Have a spring security context containing many roles and scopes received e.g. by an oauth2 jwt token.
Release Note

RELEASE NOTE:

is there actually a reason why the spring security context is added as header to the service invocation?
(i do not see a reason here)
as @javageek79  mentioned - if this can not be "simply" dropped; would be good if we can at least toggle it off.
if you know some mediation approaches (that can be applied just now) - to have the security context NOT passed into the service invocation - we would be happy to hear ;-)

Is the Spring security context coming from the frontend calling into the backend and then Dapr sidecar? I would like to understand the flow.

Hi @artursouza, yes, the flow is as follows
"public" REST API -- spring security -> Service A -- dapr service invocation -> Service B

I am working on an integration test to repro this. Thanks.

@javageek79 PR is merged, please try using the SDK version 1.4.0-SNAPSHOT


Doesn't work with django constance

What version of Unfold are you using?
0.40.0
What version of Django are you using?
5.1.1
What browser are you using?
Chrome 130.0.6723.117
Did you checked changelog/commit history, if the bug is not already fixed?
Yes
Did you searched other issues, if the bug is not already fixed?
Yes
Did you checked documentation?
Yes
Are you able to replicate the bug in the demo site?
No
Repository with reproduced bug
from constance.admin import Config, ConstanceAdmin
from unfold.admin import ModelAdmin

class CustomAdminMixin:
    formfield_overrides = {
        models.TextField: {
            "widget": WysiwygWidget,
        },
    }

class CustomConstanceAdmin(ConstanceAdmin, CustomAdminMixin, ModelAdmin):
    pass

admin.site.unregister([Config])
admin.site.register([Config], CustomConstanceAdmin)

Describe your issue
Doing this is not making my constance config page follow the unfold design scheme. The text isn't visible in dark mode for inputs.
What is the correct way to register constance with unfold?

For third party application integration you can contact us here https://unfoldadmin.com/


Server crash with latest Forge version

Industrial Foregoing Version: 1.9.0-163
TeslaCoreLib Version: 1.0.14
Forge: <IP_ADDRESS>89
Crashlog (If Any): https://pastebin.com/WKsUaxCw
The setup that caused this is a cobble-gen using Extra Utilities transfer nodes pumping into a Black Hole Unit.
Not sure if a change in Forge <IP_ADDRESS>85 caused this. I've since reverted to an earlier Forge version and everything is working fine.

I just got this when placing a BHU down. It seems to be a Forge issue.


Extra {0} output message when having preset with circular inherits

Extra {0} output message when having preset with circular inherits.
Expected:
Output panel
[preset] circular.inherits.in.config.preset Circular inherits in configure preset my-preset

Apparent Behavior:
Output panel
[preset] circular.inherits.in.config.preset Circular inherits in configure preset {0} my-preset

Platform and Versions

Operating System: Windows
CMake Version: 3.12.18081601
VSCode Version: 1.60
CMake Tools Extension Version: 1.8.1
Compiler/Toolchain: Visual C++ 2017

https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L368
https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L586
https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L799
https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L807
https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L956
https://github.com/microsoft/vscode-cmake-tools/blob/874cc844e678f491f33962ebd9600a98121f8f53/src/preset.ts#L1169

Good catch.  @xisui-MSFT it looks like log.error is being called as if it were the localize API.  Can you fix this?


CS0177 and array

You might want to mention the case when the parameter is an array:
static void MyMethod(out int[] arr)
{
arr = new int[10];   // definite assignment of arr
...
}

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

ID: e3a74f91-8081-cb02-b990-f8809e148415
Version Independent ID: 2a3e3a63-9d32-3d60-16b4-400557119c77
Content: Compiler Error CS0177
Content Source: docs/csharp/misc/cs0177.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Why do you think this should be mentioned here? What makes arrays different than any other type?

Thanks for your feedback, @ChuckDev922, although I agree with @svick.  An array type is not a special case, nor does it require any special handling in a method with the out keyword. I'm going to close this issue. If you disagree, however, feel free to respond.


take EventChannel type correctly

Hi guys, I work with eventChannels and typescript but after a lot of time and I can't correctly type when I use the take effect after calling the channel. You can see my snippet below
I get the following type errors at the take effect
Property 'take' is missing in type 'Record<string,
and at the channel.close():
This expression is not callable.
I think these are coming from that the call effect gives back wrong types.
export const shoppingCartSaga = function* (
    action: PayloadAction<string, typeof SET_SHOPPING_CART_LISTENER>
): Generator<
    | PutEffect<
          | PayloadAction<Record<string, Recipes.Ingredient["value"]>, typeof SET_SHOPPING_CART_LISTENER_SUCCESS>
          | Action<typeof SET_SHOPPING_CART_LISTENER_FAILED>
      >
    | CallEffect<EventChannel<Record<string, Recipes.Ingredient["value"]>>>
    | TakeEffect
    | CancelledEffect,
    void,
    Record<string, Recipes.Ingredient["value"]>
> {
    const { payload: userId } = action;
    const channel = yield call(fetchShoppingCart, userId);
    try {
        while (true) {
            const payload = yield take(channel);

            if (typeof payload !== "undefined") {
                yield put(fetchSuccess(payload));
            } else {
                yield put(fetchFailed());
            }
        }
    } catch (error) {
        crashlytics().recordError(error);
    } finally {
        if (yield cancelled()) {
            channel.close();
        }
    }
};

const fetchShoppingCart = (userId: string) => {
    const ref = database().ref(`shoppingCarts/${userId}`);

    return eventChannel<Record<string, Recipes.Ingredient["value"]>>((emitter) => {
        const unsubscribe = ref.on(
            "value",
            (snapshot) => {
                if (!snapshot.exists()) {
                    emitter({} as Record<string, Recipes.Ingredient["value"]>);
                } else {
                    const data = snapshot.val() as Record<string, Recipes.Ingredient["value"]>;

                    emitter(data);
                }
            },
            (error) => crashlytics().recordError(error)
        );

        return unsubscribe as () => void;
    });
};

Please always try to share a repro case in a runnable form - either by providing a git repository to clone or a codesandbox. OSS maintainers usually can't afford the time to set up the repro, even if exact steps are given.

Closing issue for now, please feel free to ask any follow up questions by replying here or creating a new issue.  Thanks!


Add keep options: values and types

Support keeping richt values and types on simplification.

branch remerged in 0faf9a1 (cleaning history) and feature published in v7.1.0 \o/


[Question] How do you convert .bin files to wasm. Also where are TVM_HOME and MLC_HOME located?

❓ General Questions
Hi there, from this documentation:
https://llm.mlc.ai/docs/install/emcc.html#step-2-set-tvm-home-and-mlc-llm-home
Where do you find the paths for these two items, are they part of the python package or must they be installed as seperate packages?
export TVM_HOME=/path/to/3rdparty/tvm
export MLC_LLM_HOME=/path/to/mlc-llm

Also would you guys happen to know how do I build a .wasm build from the .bin files as well! Thanks :)

clone the repo
TVM is in  https://github.com/mlc-ai/mlc-llm/tree/main/3rdparty
MLC_LLM is there, too
here's some of the output of mlc_llm compile --help
 --output OUTPUT, -o OUTPUT                         The path to the output file. The suffix determines if the output file is a shared library or                         objects. Available suffixes: 1) Linux: .so (shared), .tar (objects); 2) macOS: .dylib                         (shared), .tar (objects); 3) Windows: .dll (shared), .tar (objects); 4) Android, iOS: .tar                         (objects); 5) Web: .wasm (web assembly). (required)
after you have EMSDK installed per your directions up there, you should be able to build a WASM binary

MLC_HOME

clone the repo
TVM is in  https://github.com/mlc-ai/mlc-llm/tree/main/3rdparty
MLC_LLM is there, too
here's some of the output of mlc_llm compile --help
 --output OUTPUT, -o OUTPUT                         The path to the output file. The suffix determines if the output file is a shared library or                         objects. Available suffixes: 1) Linux: .so (shared), .tar (objects); 2) macOS: .dylib                         (shared), .tar (objects); 3) Windows: .dll (shared), .tar (objects); 4) Android, iOS: .tar                         (objects); 5) Web: .wasm (web assembly). (required)
after you have EMSDK installed per your directions up there, you should be able to build a WASM binary

So this wouldn't work with the direct pip installs for MLC right, I would have to build it from scratch instead to get a working MLC build for WASM

you can use the pip insall, but still need to obtain a copy of the source code


Add missing return to avoid closing the connection twice

resolves https://github.com/integritee-network/worker/issues/1308
Without it the ws connection is closed twice and might cause panic.

Ah, I realize now, that we are currently restructuring the CI, such that we can't run PRs from forks. @mosonyi , @OverOrion how far are we from fixing this?

Hey @Kailai-Wang
Thank you very much for the PR, it is much appreciated.  As @clangenb have already said, we can't accept PRs from forks as of now.
If it is alright with you I will crate a new branch with your commit and open a new PR, so the CI will be able to run. Is that okay with you?

Hey @Kailai-Wang
Thank you very much for the PR, it is much appreciated. As @clangenb have already said, we can't accept PRs from forks as of now.
If it is alright with you I will crate a new branch with your commit and open a new PR, so the CI will be able to run. Is that okay with you?

Sure, please go ahead :)

Superseded by https://github.com/integritee-network/worker/pull/1320


[dvsim] Dashboard Includes Testpoints Without "dv" Tag

Expected behavior was that dashboard CHIP Simulation Results only includes testpoints, in testplan HJSON file, with "dv" tag.  This does not appear to be the case (see example below)
Please help to investigate and debug this issue - accurate tracking of the M2 top-level test progress relies on this dashboard.

Example Issue
rom_e2e_testplan.hjson - contains a number of testpoints without "dv" tag (merged on Friday, 9/16 PR#14980)
e.g.
   {
      name: rom_e2e_shutdown_redact
      . . .
      tags: ["rom", "fpga", "silicon"]
      stage: V2
      tests: []
    }
    {
      name: rom_e2e_shutdown_watchdog
      . . .
      tags: ["rom", "fpga", "silicon"]
      stage: V2
      tests: ["rom_e2e_shutdown_watchdog"]
    }

However, CHIP Simulation Results (as of Sunday, 9/18) lists these as "Unwritten" testpoints

STAGE
NAME
TESTS
MAX JOB RUNTIME
SIMULATED TIME
PASSING
TOTAL
PASS RATE

V2
rom_e2e_shutdown_redact
rom_e2e_shutdown_redact

0
0
--

V2
rom_e2e_shutdown_watchdog
rom_e2e_shutdown_watchdog

0
0
--

The expectation was that because these testpoints do not include the "dv" tag, that they would not show up on this dashboard at all.  (they will be tracked separately as FPGA tests)

To achieve this, we need to:

[ ] Explicitly tag testpoints with "dv"
[ ] Update chip_sim_cfg.hjson to include only the tests with dv tag

We were not explicitly tagging tests with dv because the motivation was for dv to be a superset. We also need to be careful when adding new testpoints to the testplan - if we miss adding the dv tag, it wont show up anywhere.

Hello Sri, through my discussions with TimT and TimC, we had assumed the regression intended to filter for dv tag (but missed doing so).  However, it seems from your comment that this was not the original intention as chip_testplan.hjson does not currently contain the dv tag
So before asking you to go make all these changes, I'd like to take a step back and ask what is the best approach to the issue we are trying to solve?
The challenge is that rom_e2e_testplan.hjson contains a mix of V2 testpoints - some are FPGA-only, some are FPGA + DVSim (we don't want to track the ~50 FPGA-only tests on CHIP Simulation Results dashboard; they are not meant to run in this regression)
Here are a few approaches I can think of:

Include only testpoints with dv tag (all testplan files)

As you noted above, requires editing chip_testplan.hjson
New testpoints are at risk, if the user forgets the dv tag

Exclude testpoints with no_dv tag (all testplan files)

Requires re-editing rom_e2e_testplan.hjson
New testpoints are not at risk; they are included by default

Include all testpoints in chip_testplan.hjson + Include only testpoints with dv tag in rom_e2e_testplan.hjson

Probably a more complicated script
Neither testplan needs to be edited.  New testpoints are not at risk.

What are your thoughts?

yeah i think i agree with @rnongie on his last option.
I think it is safe for us to assume that everything under top_earlgrey/dv/blah should be natively opt-in, whereas tests in other hjsons (rom_e2e, potentially manufacturing) should be opt-out unless otherwise specified.
Would that be more reasonable @sriyerg ?

I was under the impression that we would tag the remaining rom e2e tests as V3 so that we dont have to track them for m2. I dont know what you all decided, but choosing upfront to not run all rom e2e tests in dv sounds like a bad idea.
In any case, the nodv tagging is currently already supported and will make the intent clear.

Alphan or TimT may be able to explain better, but this is what I understand -
Alphan and team plan to complete all ROM E2E tests in rom_e2e_testplan.hjson for M2 on the FPGA.  Therefore the tests are appropriately labeled as V2 in the file.  (it would be misleading to relabel them as V3 simply for the dashboard; this labeling decision only came up on Friday 9/16)
Only 7 of these ROM E2E tests plan to be added to DVSim for M2 (these are currently tagged dv, while the others do not include the dv tag).  The remaining will be FPGA-only for M2, with inclusion in DVSim as "best efforts after M2".
Hope this makes sense?  Please let me know if any other questions.

Please instruct TimT on what tag to use (is it nodv or no_dv or something else?) to exclude the FPGA-only tests for M2 from DVSim

Yeah that's right (@alphan, @cfrantz, @moidx can confirm) but I believe the intention was to definitely run 7 ROM E2E tests (labeled P1) in DV and hopefully run as many as possible remaining V2 ROM E2E tests as our infrastructure will tolerate in the short term, as @rnongie describes.
That said, IIUC, I just need to add the no_dv to the V2 ROM E2E tests that are considered P2, and we can remove this tag from P2 tests as we add them to DV?
Does this sound good to everyone?

Yeah that's right (@alphan, @cfrantz, @moidx can confirm) but I believe the intention was to definitely run 7 ROM E2E tests (labeled P1) in DV and hopefully run as many as possible remaining V2 ROM E2E tests as our infrastructure will tolerate in the short term, as @rnongie describes.
That said, IIUC, I just need to add the no_dv to the V2 ROM E2E tests that are considered P2, and we can remove this tag from P2 tests as we add them to DV?
Does this sound good to everyone?

You will also need to edit the testplan line in chip_sim_cfg.hjson to add :-no_dv tag at the end to instruct dvsim to not map those testpoints.

SGTM, thanks @timothytrippel!

#15171 should clean this up.


Attempt to pass ASF website checks

The ASF has a set of website checks that our site must pass. I have taken a quick and dirty pass at making the site pass them and maintain some semblance of nice looking.
The report is available at: https://whimsy.apache.org/pods/project/zipkin
Here is a look at the changes that I made. I pretty much copied verbiage from the SkyWalking website.

guess I wasnt watching this. clutch says the following need to be in place which maybe this change addresses
ASF Foundation link is missing form website
ASF Events link is missing from website
Apache License link is missing from website
Apache Thanks link is missing from website
Apache Security link is missing from website
Apache Sponsorship link is missing from website
Trademarks are missing from website
Disclaimer is missing from website

Yup, those are the checks this is intended to address


Create the workflow png with sketch, reorganize the data folder and finally rewrite the readme.md

Merged into main


sender sending wire.StopWaitingFrame with wrong LeastUnacked number

I found that the Sender's StopWaiting Frame is Not follow the document in
https://tools.ietf.org/html/draft-tsvwg-quic-protocol-02, which wrote in page25:
The resulting least unacked is the
      smallest packet number of any packet for which the sender is still
      awaiting an ack.  If the receiver is missing any packets smaller
      than this value, the receiver should consider those packets to be
      irrecoverably lost.

I think the StopWaitingFrame 's unacked number means that the receiver should take certain measures for all unreceived packets smaller than this value.
So that the StopWaitingFrame's unacked number should be the value that the sender has not been confirmed for a long time.
but in quic-go v0.10.2, I found that the least unacked number is too big. even bigger than the largeset ACK number! there are logs:
### quic.txt is what quic-go logged.
grep -rn "<- &wire.AckFrame\|StopWaitingFrame" quic.txt > tmp.txt

cat tmp.txt

quic.txt:195017:2019/7/22 18:46:19 server   <- &wire.AckFrame{LargestAcked: 0xe6c, LowestAcked: 0xe69, DelayTime: 6.32ms}
quic.txt:195039:2019/7/22 18:46:19 server   -> &wire.StopWaitingFrame{LeastUnacked: 0xe6d, PacketNumberLen: 0x2}

I see that StopWaitingFrame LeastUnacked is too big

In fact, I found the code in quic-go/internal/ackhandler/stop_waiting_manager.go:
func (s *stopWaitingManager) GetStopWaitingFrame(force bool) *wire.StopWaitingFrame {
	if s.nextLeastUnacked <= s.largestLeastUnackedSent {
		if force {
			return s.lastStopWaitingFrame
		}
		return nil
	}

	s.largestLeastUnackedSent = s.nextLeastUnacked
	swf := &wire.StopWaitingFrame{
		LeastUnacked: s.nextLeastUnacked,
	}
	s.lastStopWaitingFrame = swf
	return swf
}

func (s *stopWaitingManager) ReceivedAck(ack *wire.AckFrame) {
	largestAcked := ack.LargestAcked()
	if largestAcked >= s.nextLeastUnacked {
		s.nextLeastUnacked = largestAcked + 1// this will lead StopWaitingFrame's LeastUnacked too big.
	}
}

If all packets up to n are acknowledged, then the smallest packet number we're expecting an acknowledgement for is n+1, so I believe that the code is exactly doing what it should.
Please also note that https://tools.ietf.org/html/draft-tsvwg-quic-protocol-02 is not the right specification to refer to. The wire spec for gQUIC can be found here: https://docs.google.com/document/d/1WJvyZflAO2pq77yOLbp9NsGjC1CHetAXV8I0fQe-B_U/edit.