issue with transition-group in composition API

First of all, thanks for the great lib!
Jsfiddle link
https://stackblitz.com/edit/vitejs-vite-tdboa5?file=src/App.vue
Step by step scenario
I am using the composition API with vue 3.
I tried to make a draggable list with transitions, following the example from https://sortablejs.github.io/vue.draggable.next/#/transition-example-2 but adapting it to the composition API. However, I get the following error:
Uncaught (in promise) TypeError: domElement is null.
It seems that the error comes from the item-key="order" prop, as if I remove it, or put something different (wich is not a valid key), the error disappears, but I then get the following warning [Vue warn]: <TransitionGroup> children must be keyed..
My issue seem to be the same than this person : https://stackoverflow.com/questions/72269062/draggable-with-dynamic-groups. But they didn't seem to have got any useful answer.
Am I missing something ?
Thanks!

item-key seems to be kinda buggy. Try omitting item-key and instead set the key prop on your elements like this:
<template #item="{ element }">

    {{ element.name }}

</template>

Hello! Thanks for your answer. Although it doesn't seem to be working for me (could you make it work on the fiddle I provided?). I still have the warning [Vue warn]: <TransitionGroup> children must be keyed, and transitions are not applied when the list is sorted.

Same thing happening to me. Tried to adapt the same transition example for Vue 3. Even tried copy pasting the provided example (using options api) with no modifications, still getting the same error.
Bare-bone example:
<template>
  <draggable
    tag="transition-group"
    :component-data="{
      tag: 'ul',
      name: 'flip-list',
    }"
    :list="exampleValues"
    item-key="id"
  >
    <template #item="{ element }">

{{ element.name }}

    </template>
  </draggable>
</template>

Getting the following error:
TypeError: domElement is null
    addContext componentStructure.js:2
    updated componentStructure.js:33
    updated componentStructure.js:32
    mounted vuedraggable.js:125
    createHook runtime-core.esm-bundler.js:2709
    callWithErrorHandling runtime-core.esm-bundler.js:155
    callWithAsyncErrorHandling runtime-core.esm-bundler.js:164
    __weh runtime-core.esm-bundler.js:2684
    flushPostFlushCbs runtime-core.esm-bundler.js:341
    flushJobs runtime-core.esm-bundler.js:395
    promise callback*queueFlush runtime-core.esm-bundler.js:280
    queueJob runtime-core.esm-bundler.js:274
    effect runtime-core.esm-bundler.js:5710
    triggerEffect reactivity.esm-bundler.js:394
    triggerEffects reactivity.esm-bundler.js:384
    triggerRefValue reactivity.esm-bundler.js:1000
    set value reactivity.esm-bundler.js:1045
    setup ----.vue:128
    createHook runtime-core.esm-bundler.js:2709
    ...

Running on:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

I have this error too. Transition does not work in Vue 3

Different error message, but might be same problem:
First a Vue Warning in the console:
[Vue warn]: Unhandled error during execution of updated at <Draggable onUpdate=fn<changeSongs> modelValue=
Then a solid JavaScript error:
Uncaught (in promise) TypeError: Cannot set properties of null (setting '__draggable_context')
Changing the "tag" Property from "transition-group" back to "ul" fixes the errors, but the animation is gone, of course.

I switched to a forked version of this repo:
https://www.npmjs.com/package/zhyswan-vuedraggable
This fixed the issue for me. If you still get (chinese) error codes in the console, try to translate them with deepl.com – I had to slightly modify my HTML code to make it all work perfectly.

I have the same problem, and I found the [el] in vNode is 'null' when mounted.

Hello, do you have any plans to fix this issue

Hello there - seeing the same problem.
Any solutions?

Hello! Thanks for your answer. Although it doesn't seem to be working for me (could you make it work on the fiddle I provided?). I still have the warning [Vue warn]: <TransitionGroup> children must be keyed, and transitions are not applied when the list is sorted.

Hello，item-key in vue-draggable-next seems to be buggy，try this: vue-draggable with transition-group，and I make your fiddle works without warning

It is still not solved. In your example, if you delete <transition-group>, it still works. Because the result comes from animation: 200

What ultimately worked for me was to remove tag="transition-group".

I might be late to the party, but literally removing the tag="transition-group" (as mentioned above) and v-binding the computed "dragOptions" as in the demo, worked for me:
const transitionOptions = computed(() => {     return {         animation: 200,         group: "description",         disabled: false,         ghostClass: "ghost",     }; });

@boutzamat its not working for me
<draggable
            :key="updateCount"
            :item-key="updateCount.toString()"
            v-model="SimulatorState.circuit_list"
            class="list-group"
            tag="ul"
            :component-data="{
                tag: 'div',
                type: 'transition-group',
                name: !drag ? 'flip-list' : null,
            }"
            v-bind="dragOptions"
            @start="drag = true"
            @end="drag = false"
        >
            <template #item="{ element }">

                        {{ truncateString(element.name, 18) }}

                        <v-icon class="tabsbar-close">mdi-close</v-icon>

            </template>
        </draggable>

and i have this computed :
const dragOptions = computed(() => {
    return {
        animation: 200,
        group: 'description',
        disabled: false,
        ghostClass: 'ghost',
    }
})

I just ran into the same issue, and I found a way to solve it. The problem seems to be that the transition-group tag expects a tag property, which it will use to render the transition group. I've passed a tag name to component-data and then the error was gone (not sure yet if everything works though). Currently it looks like that for me (slightly adjusted compared to the original code without testing):
    <draggable
        v-model="data"
        handle=".handle"
        tag="transition-group"
        :component-data="{ tag: 'div' }"
        @start="drag = true"
        @end="drag = false"
      >
        <template v-slot:item="{ element }">
          <div :key="`section_${element.id}`" :name="!drag ? 'flip-list' : null" class="section-wrapper">

handle

            {{ JSON.stringify(element) }}

        </template>
      </draggable>

dragOptions working for me.
All code bellow:
<draggable v-bind="dragOptions"  class="builder-list-group w-100" handle=".active-drag" v-model="groups" item-key="id" @start="handleDragStart" @end="handleDragEnd" @change="handleDropdownGroup">
     <template #item="{element, index}">

 //important
                  <ls-builder-group :key="index" :index="index" :group-props="element">
                   </ls-builder-group>

      </template>
 </draggable>

const dragOptions = computed(() => {
                return {
                    animation: 200,
                    group: 'description',
                    disabled: false,
                    ghostClass: 'ghost',
                }
            })
 And Css:

.flip-list-move {
    transition: opacity 0.3s ease-in-out;
}

.flip-list-move {
    transition: all 0.5s ease;
}

.no-move {
    transition: transform 0s;
}

.ghost {
    opacity: 0.4;
    background: #c8ebfb;
}

.list-group {
    min-height: 20px;
}

.list-group-item {
    cursor: move;
}

.list-group-item i {
    cursor: pointer;
}

Also, you can do like this (from example):
<draggable
      v-model="myArray"
      group="people"
      @start="drag = true"
      @end="drag = false"
      item-key="id"
      animation="200"
  >
    <template #item="{element}">

{{ element.name }}

    </template>
  </draggable>

Most of the solution above consist of removing the transition-group and setting the animation prop.
You'll get an animation when dragging items but that is not equivalent.
The difference between the 2 solutions being that if you sort items by code, you won't get any transition with theanimation prop when the transition-group is supposed to animate even in this case.
I personally switched to this alternative that's still active to date:
https://github.com/Alfred-Skyblue/vue-draggable-plus

Any update on this? I'm facing the same issue, and following the codes provided above are not working for me.

Any update on this? I'm facing the same issue, and following the codes provided above are not working for me.

This project is kinda dead.

Check my message above yours for n'a alternative that fixes this issue

similar to #228 . I tried the above solutions, including vue-draggable-plus, and was unable to get nice animated transitions for both:

manual drag-n-drop
programmatic list reordering (like if you hit a "sort" button)

I did, however, find that https://github.com/MaxLeiter/sortablejs-vue3 works for both cases. Example code:
        <Sortable :list="flashcards" item-key="id" :options="{ animation: '500', handle: '.handle' }">
          <template #item="{ element: card }">
            <TransitionGroup name="drag">
              <q-item :key=card.id>

The above shows:

Sortablejs-vue3's component to start. It has:

the :list for the list of items to allow drag & drop on
the item-key for understanding what attribute on the items is uniquely identifying
the options for all the sortable.js options

the template section with element:  to give a name for each element in your list
the TransitionGroup from Vue3
the actual top-level html section for your element (I'm using a q-item from quasar, but you can use anything), which needs to have the :key to satisfy vue's need for uniquely identifying elements for TransitionGroup (the item-key above was for Sortablejs-vue3's needs)
animation and handle are the only two options I used, and to good effect
.handle is the class I put on my handle icon
.drag-move is the only class I defined for my TransitionGroup, and that's been enough for me.

Hope this helps anyone in a similar situation!


#23 create ROM bench file

bench file for HDL Read only memory module

What even is this

This is VHDL, and clearly GPT'd


minor updates to the drawing package guide/requirements

@brendansco
Thanks for reviewing the proposed changes.
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Fix Versioning

Give it a good way to version the API easily.

The objective of this is such: We want to be able to break backwards compatibility while never forcing clients to upgrade.
This will allow us to change the functionality of a route without needing to create a new route. To do this, we will have the version specified in the request, which API version to hit.
The two main ways of doing this is with:

a v[0-9] in the url
a Header which specifies the API Version.

A header can be nice, because if it's not sent, it will default to the latest version. URL's, you have to be explicit. Once you choose your scheme, we will need to move away from Heroku, and setup a server with Nginx in front. Nginx will check the version and direct the request to the appropriate running instance.
This means we will need multiple running servers, but we can simple branch off versions and keep working on master.
As such, you can expect in the future:

master is the latest release. Not versioned yet, but in testing/released.
develop is where all current development is happening, and the build may be broken.
API version branches (and tags) are frozen, except for critical bug fixes.


Custom ERROR and supports attributes

Is your feature request related to a problem? Please describe.
Can't find how to create a custom error
Feature Description
Can we have a feature to create a custom error if not there? Please do add documentation to it if present
Describe Alternatives
Additional context
Priority
Blocker

Hi @pranshu-07 ,
Custom errors would be created via the standard Agent API grabbed via the newrelic module. You can find that function mentioned on our API docs page: https://docs.newrelic.com/docs/agents/nodejs-agent/api-guides/nodejs-agent-api#noticeError. Although, admittedly it does not describe a whole lot other than the signature.
The function is noticeError(). It takes a custom error (or string) and optionally takes custom attributes to apply to the error.

Hi @pranshu-07 ,
Custom errors would be created via the standard Agent API grabbed via the newrelic module. You can find that function mentioned on our API docs page: https://docs.newrelic.com/docs/agents/nodejs-agent/api-guides/nodejs-agent-api#noticeError. Although, admittedly it does not describe a whole lot other than the signature.
The function is noticeError(). It takes a custom error (or string) and optionally takes custom attributes to apply to the error.

Thanks!

Thanks!


typescript typings

Summary of proposed changes
Hi, I have created and tested Typescript types for the project that were missing.
Checklist

[x] Use develop as the base branch
[x] Exclude the gulp build (/dist changes) from the PR
[x] Test on supported browsers

@sampotts can you check this PR, please?

In the meanwhile, if anybody needs the type definitions in their project without rebuilding the package themselves, simply add this file to your src:
https://gist.github.com/mats852/5e3a749e0ac050e2d01bb735b7b27cce
I've wrapped @ondratra 's work in a module definition :)

@ondratra is there any reason to use export = Plyr; instead of export default Plyr;?
The current implementation is very confusing since the plyr documentation uses default export all over again and export = Plyr; forces to import * as Plyr from 'plyr'.

@sampotts could you confirm that default export is a "proper" way to go?

@smnbbrv Some clarity on the topic of export = Something vs export default Something can be found here https://github.com/microsoft/TypeScript/issues/7185 .
The way I import Plyr into my project is not via default object - default doesn't seem to work, that's why the typings reflects that via using export = Plyr.
import * as Plyr from 'plyr'
import Plyr2 from 'plyr'

console.log(Plyr) // ƒ t(n,i) {...}
console.log(Plyr2) // undefined

I guess it might seem confusing because plyr.js file uses ES import/export, but generated final package (located in dist/plyr.js) uses CommonJS - and typings correspond to this final package.

@ondratra hm. It works in my project if I use default export... Could you remember what was the issue?
My problem is that I received a PR https://github.com/smnbbrv/ngx-plyr/pull/35 which is targeting this and now I'm slightly confused. No worries, I can use * as Plyr thing; the question is that it's a shared library and I would love to follow the official documented way to use Plyr to avoid furhter typings etc problems.
That's why I'd love to see @sampotts opinion in this conversation.

@smnbbrv The issue is mentioned in my last post - Plyr2 variable is undefined. Check out this sandbox and compare it's tsconfig.json to yours, maybe you have some extra options that make it work for you. https://repl.it/@ondratra/plyrTypingsTest If you remove allowSyntheticDefaultImports: true from tsconfig.json in sandbox, it doesn't compile over that default import.
Strangely enough, at the time of writing that sandbox imports empty object from plyr and I don't know a reason why. =-O But it should return a function like my previous post suggested.

@ondratra thanks for claryfying, and great thanks for your work!
I guess the way to use it as default is still to use allowSyntheticDefaultImports. Probably should be mentioned in the docs...


Doesn't include 'scope'

RestSharp OAuth code need updating to add 'scope':'data:read' parameter to authenticate call.

this sample should be deprecated (uses v&d and doesn't include any package). Will mark as "private" for now.


A target point far from the current position is set accidentally when planner running

When I set a target position using the local planner, a target point (a point between start and goal) far from the current position (red line in Rviz) will be set accidentally, then the drone rush to this point.
Has anyone else has a similar problem?
Thanks for help,
Joey

Could you please provide more information. Can you explain exactly what you're doing?

I set a target position far from my drone, then planner works well and my drone is flying to the target. But sometimes there exists a rush accidentally during the entire flight, I found that the (current control command is wrong) red line in rviz has a big jump. This problem happened twice, both when the drone was close to the target position.

can you share the flight control log?


"Parsing error: The keyword 'import' is reserved" on tsx files.

I am trying out this plugin with a fresh project. I have a components directory with say, Card.tsx:
import type { Component } from "solid-js";

const Card: Component = (props) =>
Card

export default Card;

I've installed eslint, the plugin etc. My config is currently within my package.json, but have tried a .eslintrc.* file as well. It currently looks like this:
 "eslintConfig": {
    "extends": "eslint:recommended",
    "overrides": [
      {
        "files": [
          "*.astro"
        ],
        "parser": "astro-eslint-parser",
        "parserOptions": {
          "parser": "@typescript-eslint/parser",
          "extraFileExtensions": [
            ".astro"
          ],
          "sourceType": "module"
        }
      }
    ]
  }

My tsconfig.json looks like this:
{
  "extends": "astro/tsconfigs/strict",
  "compilerOptions": {
    "jsx": "preserve",
    "jsxImportSource": "solid-js"
  },
  "include": [
    "**/*.ts",
    "**/*.tsx",
    "**/*.astro"
  ]
}

When I run yarn eslint --ext .ts,.astro,.tsx src I end up with:
  1:1  error  Parsing error: The keyword 'import' is reserved

Should the plugin be able to deal with .tsx files? Am I missing something here?

I don't know what your problem is, but at least it doesn't seem to be an eslint-plugin-astro problem so I'm closing this issue.

OK. Should the plugin be able to lint .tsx files?

@cabljac not sure if you solved this yourself but I had the same issue, the fix for me was to add an additional section to overrides for ts files:
{
  "extends": ["plugin:astro/recommended"],
  "overrides": [
    {
      "files": ["*.astro"],
      "parser": "astro-eslint-parser",
      "parserOptions": {
        "parser": "@typescript-eslint/parser",
        "extraFileExtensions": [".astro"]
      }
    },
    {
      "files": ["*.ts"],
      "parser": "@typescript-eslint/parser"
    }
  ]
}

Same idea would probably work for tsx files.

    {
      "files": ["*.ts"],
      "parser": "@typescript-eslint/parser"
    }

This should be added to the README.md file.

    {
      "files": ["*.ts"],
      "parser": "@typescript-eslint/parser"
    }

This should be added to the README.md file.

Yes. I 💯 agree that it would be very helpful to add to the docs. I was facing the same issue and was struggling to fix it until I came across this thread.


Wrong description of test 15 in 08-conditions-n-loops-tests.js

@InvisibleSpectator could you please describe what is wrong here?

The "getCommonDirectoryPath" test should return a common path in the file system, but the description says it returns the n-ary string representation of number.

Got it. Thank you!

fixed


Made EventTarget a constructor

Firefox and Chrome supports this.

Perhaps I should add @override to any addEventListener/removeEventListener/dispatchEvent?

This needs a broader change (change @implements to @extend everywhere as well as probably add @override), I see.
Since it is a constructor now, maybe we can just remove all of those (newly turned) overrides?

According to MDN Safari still doesn't support EventTarget as a constructor, and it's unknown whether Edge does.
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
Landing this change will be extremely difficult, and the cost cannot be justified while there are still major browser vendors who don't support it.
Sorry.

According to MDN Safari still doesn't support EventTarget as a constructor, and it's unknown whether Edge does.

This has traditionally not been a blocker in adding/updating the compiler's externs.

Landing this change will be extremely difficult, and the cost cannot be justified

Can you elaborate a bit on why this is considered costly? Is there no backwards compatible update we can come up with that can eliminate that cost of changing @implements to @inherits? How about introducing a new class EventTargetBase or something to that effect?

There are approximately 300 occurrences of either @implements {EventTarget} or @extends {EventTarget} in internal Google code that would have to be updated.
Now that I look that's a lower number than I expected, but it's still a significant amount of effort
to get all of them changed and deal with whatever errors crop up as a result.
It isn't worth that effort for something that isn't even safe to use in at least one major browser.

For internal Google usage 300 occurrences means that there are quite a few re-implementations of native EventTarget. Providing an alternative, like proposed in previous comment, would be a stepping stone in slowly removing unnecessary implementations in favor of the default one, once browser support is there (or already for code that only deals with Chrome, like internal Chrome extensions for example).
Are you opposed to adding EventTarget2 or EventTargetBaseClass or something to that effect, so that new code can use that already? Otherwise there is no path forward.

@brad4d: Can you comment on the previous suggestion about providing a path forward on Closure compiler users who want to use new EventTarget()? I am trying to determine what is the best patch forward for our case in Chromium, see https://bugs.chromium.org/p/chromium/issues/detail?id=854268.

Fixing this will be really tricky, because we'll have to fix existing code that defines interfaces that extend EventTarget. If it isn't an interface anymore, that becomes invalid.
If you really want to use it right now, I think your best bet would be to do something like this in your code.
/**
 * @constructor
 * @implements {EventTarget}
 */
var NativeEventTarget = goog.global()['EventTarget'];

Then use / extend NativeEventTarget.

@brad4d - it either does not work, or I am holding it wrong -
https://closure-compiler.appspot.com/home#code%3D%252F%252F%2520%253D%253DClosureCompiler%253D%253D%250A%252F%252F%2520%2540compilation_level%2520ADVANCED_OPTIMIZATIONS%250A%252F%252F%2520%2540output_file_name%2520default.js%250A%252F%252F%2520%2540language_out%2520ES5%250A%252F%252F%2520%253D%253D%252FClosureCompiler%253D%253D%250A%250A%252F**%2520%2540constructor%250A%2520%2520%2520%2520%2540implements%2520%257BEventTarget%257D%2520*%252F%250Avar%2520NativeEventTarget%2520%253D%2520self%255B%2522EventTarget%2522%255D%253B%250A%250Aclass%2520Foo%2520extends%2520NativeEventTarget%250A%257B%250A%257D


updates margins for twoside

Interchanges the oddsidemargin and evensidemargin parameters so that twosided documents are laid out according to the standard conventions for book printing.

Type of changes

[x] Bug fix (non-breaking change which fixes an issue)

Background on the changes:
When creating a report with the twoside option, it is prepared to be printed two-sided and bound as a book. The standard for book binding is for odd pages to come on the right of a two-page spread, even pages on the left. Looking at a two-page spread, there should be three strips of vertical white space: a left margin on the left (even) page, a central margin, and a right margin on the right (odd) page. Ideally all three strips should be of a similar size.
The central margin is made up of the inner margins of the two pages of the spread. As such, the inner margin of each page should be about half the size of the outer margin. This requires a different convention for left/right margins on odd vs even pages.
The previous version placed a narrow margin at the outside of each page and a wide margin on the inside, resulting in a very unbalanced page layout. It's possible that the authors imagined a layout with odd pages on the left, which is the opposite of the standard convention. It's also possible they imagined the wider central margin accounted for binding space, but this should be set using the bindingoffset parameter of the geometry package.
Detail on changes:
The parameters responsible for the twoside page layout are oddsidemargin and evensidemargin. By interchanging these, we obtain a layout that conforms to widely accepted publishing conventions. Even after interchanging, the central  margin is slightly wider than the outer margins, which should account for the small amount of paper that would be taken up by the types of bindings (glue binding) typical of a UoE thesis.
Previously there was a manual correction to the maketitle command to ensure the title page is centred. This has been adjusted so that even after the above changes the title page is still centred.

@PatrickKinnear This is excellent! I printed of a draft of my thesis for the first time last week and it came out with backward binding, so it had been on my to-do list to work out exactly what went wrong here.
Will do a proper review with some test documents I have later b/c I know there's a related issue where with some classes the margins switch sides between the preamble and main chapter content, and guessing that comes from this same spot. Thanks so much :smile:

Commenting here following a conversation with @PatrickKinnear elsewhere. The margins as they're currently set conform with the specifications of the UoE thesis printing service . The purpose is not to have wider inner margins than outer, but to leave space for physical binding, so the margins shouldn't be swapped as in this commit.
However, this page geometry does lead to a very awkward layout when the pages are viewed without binding. Patrick also pointed out that even with binding, this still gives unconventionally wide inner margins, although it still looks okay. The actual visible margins should be set separately from the binding spacing, and the dimensions should be set in a more transparent way.  They should be more customisable for people who might want to use a different printing/ binding service or just want a version of it which looks good on-screen.
I did some work locally on page geometry a while ago which I apparently never got around to pushing to GH and including in a pull request which should make all this easier to handle, although more work is still needed. I'll try to update this tomorrow.


[Crash] fatal error: concurrent map iteration and map write

Hello!
I deployed the application to a Microsoft AKS cluster version 1.9.6 with the official kubectl command from the docs and haven't changed anything about it https://www.weave.works/docs/scope/latest/installing/#k8s
The application crashes with the exception multiple times (here are the logs)
logs-from-app-in-weave-scope-app-57566f67f6-dflmb.txt
I couldn't find an issue about this so I am sorry if it turnes out to be a duplicate :blush:

@rade I was not able to reproduce this issue. I am not sure how I can run race detector on scope binary, I could use some help here.
However, There's definite need to sync two go routines reading Renderer's. This should be done by using mutex.
diff --git a/render/render.go b/render/render.go
index eb3b6c8a..62caf2aa 100644
--- a/render/render.go
+++ b/render/render.go
@@ -1,9 +1,13 @@
 package render

 import (
+       "sync"
+
        "github.com/weaveworks/scope/report"
 )

+var mutex sync.RWMutex
+
 // MapFunc is anything which can take an arbitrary Node and
 // return another Node.
 //
@@ -72,12 +76,16 @@ func (r Reduce) Render(rpt report.Report) Nodes {
        for _, renderer := range r {
                renderer := renderer // Pike!!
                go func() {
+                       mutex.Lock()
+                       defer mutex.Unlock()
                        c <- renderer.Render(rpt)
                }()
        }
        for ; l > 1; l-- {
                left, right := <-c, <-c
                go func() {
+                       mutex.Lock()
+                       defer mutex.Unlock()
                        c <- left.Merge(right)
                }()
        }

Synchronising here would completely remove the parallelism, which is the whole point of spinning up multiple go routines in the first place.
What is the actual race?

Crash is fatal error: concurrent map iteration and map write
The iteration is over range nodes.Nodes at render/filters.go:67
so I would surmise that structure is not being copied some place where it should be.

@satyamz maybe start by running the unit tests with -race ?

@bboreham I ran tests using -race but nothing showed up.
satyam@satyam:~/gocode/src/github.com/weaveworks/scope$ make tests
sudo -E docker build -t weaveworks/scope-backend-build backend
Sending build context to Docker daemon  4.608kB
Step 1/11 : FROM golang:1.10.2-stretch
 ---> 3f30f1fc3c43
Step 2/11 : ENV SCOPE_SKIP_UI_ASSETS true
 ---> Using cache
 ---> c5287a83a083
Step 3/11 : RUN apt-get update && 	apt-get install -y libpcap-dev python-requests time file shellcheck git gcc-arm-linux-gnueabihf curl build-essential python-pip && 	rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 ---> Using cache
 ---> 0b49c5e765a5
Step 4/11 : RUN go clean -i net && 	go install -tags netgo std && 	go install -race -tags netgo std
 ---> Using cache
 ---> b9e3869f8b01
Step 5/11 : RUN curl -fsSL -o shfmt https://github.com/mvdan/sh/releases/download/v1.3.0/shfmt_v1.3.0_linux_amd64 &&     chmod +x shfmt &&     mv shfmt /usr/bin
 ---> Using cache
 ---> 067d281c0d29
Step 6/11 : RUN go get -tags netgo 		github.com/fzipp/gocyclo 		github.com/golang/lint/golint 		github.com/kisielk/errcheck 		github.com/fatih/hclfmt 		github.com/mjibson/esc 		github.com/client9/misspell/cmd/misspell && 	chmod a+wr --recursive /usr/local/go && 	rm -rf /go/pkg/ /go/src/
 ---> Using cache
 ---> 6636b114df4d
Step 7/11 : RUN pip install yapf==0.16.2 flake8==3.3.0
 ---> Using cache
 ---> f5e852b6f9d3
Step 8/11 : COPY build.sh /
 ---> Using cache
 ---> 946e0da45b8b
Step 9/11 : ENTRYPOINT /build.sh
 ---> Using cache
 ---> 2dacdd6aa4c7
Step 10/11 : ARG revision
 ---> Using cache
 ---> 6d0ebe4feca5
Step 11/11 : LABEL maintainer "Weaveworks<EMAIL_ADDRESS>org.opencontainers.image.title "backend" org.opencontainers.image.source "https://github.com/weaveworks/scope/tree/master/backend" org.opencontainers.image.revision "${revision}" org.opencontainers.image.vendor "Weaveworks"
 ---> Using cache
 ---> 34a505519652
Successfully built 34a505519652
Successfully tagged weaveworks/scope-backend-build:latest
touch .scope_backend_build.uptodate
sudo -E docker run --rm -ti \
	-v /home/satyam/gocode/src/github.com/weaveworks/scope:/go/src/github.com/weaveworks/scope \
	-v /home/satyam/gocode/src/github.com/weaveworks/scope/.pkg:/go/pkg \
	--net=host \
	-e GOARCH -e GOOS -e CIRCLECI -e CIRCLE_BUILD_NUM -e CIRCLE_NODE_TOTAL \
	-e CIRCLE_NODE_INDEX -e COVERDIR -e SLOW -e TESTDIRS \
	weaveworks/scope-backend-build SCOPE_VERSION=8c18a785 GO_BUILD_INSTALL_DEPS=-i CODECGEN_UID=0 tests
make: Entering directory '/go/src/github.com/weaveworks/scope'
mkdir -p vendor/github.com/ugorji/go/codec/codecgen/bin
unset GOOS GOARCH; env GOGC=off CGO_ENABLED=1 go build -i -ldflags "-extldflags \"-static\" -X main.version=8c18a785 -s -w" -tags 'netgo unsafe' -o vendor/github.com/ugorji/go/codec/codecgen/bin/codecgen_linux_amd64 ./vendor/github.com/ugorji/go/codec/codecgen
rm -f report/report.codecgen.go; unset GOOS GOARCH; env GOGC=off CGO_ENABLED=1 go build -i -ldflags "-extldflags \"-static\" -X main.version=8c18a785 -s -w" -tags 'netgo unsafe' ./report # workaround for https://github.com/ugorji/go/issues/145
cd report && unset GOOS GOARCH; GOGC=off CGO_ENABLED=1 /go/src/github.com/weaveworks/scope/vendor/github.com/ugorji/go/codec/codecgen/bin/codecgen_linux_amd64 -d 0 -rt 'netgo unsafe' -u -o report.codecgen.go topology.go dns.go counters.go report.go map_helpers.go datatypes.go id_list.go networks.go sets.go string_set.go id.go map_keys.go metric_row.go node.go node_set.go metadata_template.go metrics.go table.go latest_map_generated.go metric_template.go controls.go marshal.go
rm -f render/detailed/detailed.codecgen.go; unset GOOS GOARCH; env GOGC=off CGO_ENABLED=1 go build -i -ldflags "-extldflags \"-static\" -X main.version=8c18a785 -s -w" -tags 'netgo unsafe' ./render/detailed # workaround for https://github.com/ugorji/go/issues/145
cd render/detailed && unset GOOS GOARCH; GOGC=off CGO_ENABLED=1 /go/src/github.com/weaveworks/scope/vendor/github.com/ugorji/go/codec/codecgen/bin/codecgen_linux_amd64 -d 0 -rt 'netgo unsafe' -u -o detailed.codecgen.go topology_diff.go summary.go node.go connections.go parents.go links.go
mkdir -p prog/staticui
esc -o prog/staticui/staticui.go -pkg staticui -prefix client/build client/build
mkdir -p prog/externalui
esc -o prog/externalui/externalui.go -pkg externalui -prefix client/build-external -include '\.html$' client/build-external
#./tools/test -no-go-get -tags 'netgo unsafe'
go test -race ./...
ok  	github.com/weaveworks/scope/app	2.601s
ok  	github.com/weaveworks/scope/app/multitenant	17.930s
?   	github.com/weaveworks/scope/common/hostname	[no test files]
ok  	github.com/weaveworks/scope/common/weave	(cached)
ok  	github.com/weaveworks/scope/common/xfer	(cached)
?   	github.com/weaveworks/scope/extras/copyreport	[no test files]
?   	github.com/weaveworks/scope/extras/dialer/src	[no test files]
?   	github.com/weaveworks/scope/extras/example/searchapp	[no test files]
?   	github.com/weaveworks/scope/extras/example/shout	[no test files]
?   	github.com/weaveworks/scope/extras/fixprobe	[no test files]
ok  	github.com/weaveworks/scope/probe	1.211s
ok  	github.com/weaveworks/scope/probe/appclient	1.333s
ok  	github.com/weaveworks/scope/probe/awsecs	1.222s
ok  	github.com/weaveworks/scope/probe/controls	(cached)
ok  	github.com/weaveworks/scope/probe/docker	1.183s
ok  	github.com/weaveworks/scope/probe/endpoint	1.275s
ok  	github.com/weaveworks/scope/probe/endpoint/procspy	2.035s
ok  	github.com/weaveworks/scope/probe/host	1.055s
ok  	github.com/weaveworks/scope/probe/kubernetes	1.614s
ok  	github.com/weaveworks/scope/probe/overlay	3.248s
ok  	github.com/weaveworks/scope/probe/plugins	1.102s
ok  	github.com/weaveworks/scope/probe/process	1.035s
ok  	github.com/weaveworks/scope/prog	1.961s
?   	github.com/weaveworks/scope/prog/externalui	[no test files]
?   	github.com/weaveworks/scope/prog/staticui	[no test files]
ok  	github.com/weaveworks/scope/render	1.891s
ok  	github.com/weaveworks/scope/render/detailed	1.582s
?   	github.com/weaveworks/scope/render/expected	[no test files]
ok  	github.com/weaveworks/scope/report	1.053s
?   	github.com/weaveworks/scope/test	[no test files]
?   	github.com/weaveworks/scope/test/fixture	[no test files]
?   	github.com/weaveworks/scope/test/reflect	[no test files]
?   	github.com/weaveworks/scope/test/utils	[no test files]
?   	github.com/weaveworks/scope/test/weave	[no test files]
?   	github.com/weaveworks/scope/tools/cover	[no test files]
?   	github.com/weaveworks/scope/tools/runner	[no test files]
?   	github.com/weaveworks/scope/tools/socks	[no test files]
make: Leaving directory '/go/src/github.com/weaveworks/scope'
satyam@satyam:~/gocode/src/github.com/weaveworks/scope$


Yiisoft\Di\NotFoundException: No definition or class found or resolvable for "Cycle\ORM\Select" while building ...

What steps will reproduce the problem? Introducing a new entity with controllers etc..
What is the expected result? Clean run
What do you get instead? The above error
Additional info

Q
A

Version
1.0.?

PHP version
8.1.13

Operating system
Windows 11

Remove the runtime/schema.php file and allow the package to recreate the schema.php file


Feature#472

This PR brings lots of useful improvements, it seems like to be better if log content optimization, log interface optimization, and code indentation optimization are divided into several PRs.


Clicking a block that under a vertical slab generates/drops random botania pebbels.

Clicking a block that under a vertical slab generates/drops random botania pebbels.

Hi thanks for the issue! Sorry for the late response, which Minecraft and mod version is this using? I'm assuming MC 1.12?

Yes 1.12.2
Kontakt CJMinecraft<EMAIL_ADDRESS>kirjutas kuupäeval K, 15.
juuli 2020 kell 11:28:

Hi thanks for the issue! Sorry for the late response, which Minecraft and
mod version is this using? I'm assuming MC 1.12?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/CJMinecraft01/DoubleSlabs/issues/82#issuecomment-658625593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP24HKVWIQG54H2PFK2RIWLR3VSBBANCNFSM4OYW2JYQ
.

Yes 1.12.2

Hi, please check but I think this may be fixed in the latest version :)

Nope still dropping botania pebbels.

have double slabs and botania installed
place a vertical slab by sneaking
Place the vertical slab
click on the block what is under the vertical (press with the key what places block

See it in action: https://www.youtube.com/watch?v=70m4vwEP-Ds

I'm assuming the behaviour you was expecting was that it would place the vertical slab? If so, vertical slabs can only be combined when not holding shift as holding shift would place the slab horizontally against that block. As you are standing there, it is highly likely that you are simply sneak right clicking on the grass block which is dropping the pebbles


Added remove friend

Added remove friend url to the utils.py
Added removeFriend def to the client.py

#294

I updated the code. I used print for tell if the remove was successful, but we can use something different if you want.

I updated the code. :)

Looks good, I'll merge it as soon as I get TravisCI working again

Okay, thank you! :)


AWTSequenceEncoder8Bit and Flag don't exist

Trying this sample https://github.com/jcodec/jcodec/blob/master/samples/main/java/org/jcodec/samples/gen/SequenceEncoderDemo.java
But I cannot import :
import org.jcodec.common.tools.MainUtils.Flag;
import org.jcodec.api.awt.AWTSequenceEncoder8Bit;

Are you using the current version of jcodec, or an earlier one such as 0.1.9 (which does not appear to have those two items)?

You probably didn't have jcodec 0.2.0 and jcodec-javase 0.2.0 in your maven dependencies. Try specifying this in your pom.xml:
<dependency>
  <groupId>org.jcodec</groupId>
  <artifactId>jcodec</artifactId>
  <version>0.2.0</version>
</dependency>
<dependency>
  <groupId>org.jcodec</groupId>
  <artifactId>jcodec-javase</artifactId>
  <version>0.2.0</version>
</dependency>

And AWTSequenceEncoder8Bit doesn't exist anymore, simply use AWTSequenceEncoder now. This class only existed in the snapshot as a temporary measure.


Optimistic concurrency is incorrect if dataset is deleted concurrently

Consider the following:
ds := db.GetDataset("foo")
db.CommitValue(types.String("hi"), ds)

If ds changes concurrently between line 1 and 2, we'll get a merge conflict. But if ds is deleted between line 1 and 2, the commit will be allowed.
This should be disallowed, because ds contains a head ref, meaning it was intended to follow a commit that isn't there anymore.

(Note to self, I noticed this because it interfered with my refresh hack: https://github.com/attic-labs/attic/blob/master/attic/op/run/run.go#L130). If we had db.Refresh() it would be less easy to stumble across this issue.

I started to fix this as a part of another patch, but it had some slightly funky consequences. Specifically, we currently allow setting the head of a non-existent dataset to a commit that has parents because that's how we allow for "branching". My naive fix to this issue disallowed that. I think we can and should fix this bug, but also allow for branching. That will be slightly more complex, but totally doable. Worthy of its own PR.


JPEG images with width of 1 cause crash

Godot version:

3.2.4-rc3 (crashes 3.2.3 as well)
OS/device including version:

Windows 10
Issue description:

Godot attempts to import the image and then crashes.
Steps to reproduce:

Add jpeg image with width of 1 to project
Crash

Minimal reproduction project:

test.zip
Here is a test image:

Message in terminal
godots: thirdparty/jpeg-compressor/jpgd.h:278: int jpgd::jpeg_decoder::check_sample_buf_ofs(int) const: Assertion `ofs >= 0' failed.

This looks exactly like #42363. I guess it was supposed to be fixed, but from the looks of it this isn't the case.

This looks exactly like #42363. I guess it was supposed to be fixed, but from the looks of it this isn't the case.

Sorry if I'm being mistaken. But I think that it does solve the problem. But the pull request wasn't cherrypicked to 3.2.4
In the jpgd.cpp file you can see that in master the line is:
const int half_image_x_size = (m_image_x_size == 1) ? 0 : (m_image_x_size >> 1) - 1;
while in 3.2 the line is:
const int half_image_x_size = (m_image_x_size >> 1) - 1;

Indeed, seems like I missed my cherry-pick of #43441 last time. Now fixed.
So closing as duplicate of #42363.


Broken image in lectures/flow/switch

https://github.com/princomp/princomp.github.io/blob/0d923a06743e326758087d757aa12bcd0898987f/source/lectures/flow/switch.md?plain=1#L13

https://github.com/princomp/princomp.github.io/commit/ddd2cd04c4b8b16ed777cfc5436c267a2f7c7451 will solve that.

It is fixed, however, it seems this image is not accessible for dark mode users. See picture below:

This is actually a widespread issue with these diagrams, which I believe are related to the fact that you are using SVGs for these. There are multiple ways to approach this (i.e., add backgrounds to them, modify the color scheme to have light and dark variants, etc.), but each solution has its pros and cons, so I will leave that to you to decide how to proceed.

Ok, I'll try to think of a global solution.

The background of UML class diagrams is not transparent anymore:

The issue remains for some other images: cf. https://github.com/princomp/princomp.github.io/issues/49


Add matrix.ss.flatten_rows to flatten a Matrix to a Vector row-wise.

Also flatten_columns of course!
We could also spell this as matrix.ss.flatten(), but then what do we use as arguments?
TODO: add the inverse operation to go from Vector to Matrix

The NumPy way to spell this is:

flatten(order='C') for flatten_rows

inverse: reshape((nrows, ncols), order='C')

flatten(order='F') for flatten_columns

inverse: reshape((nrows, ncols), order='F')

How should we spell the inverse? vector.ss.reshape_rowwise(nrows, ncols)?
np.ravel also flattens an array, but tries to avoid copying.

Merging!
This PR also reworks importing and exporting COO format.  I think it's more sensible.  There is now coor and cooc for COO that is sorted row-wise and column-wise respectively.
I'm still considering whether v.ss.reshape may also accept a tuple for the shape.  For example, NumPy arrays support both a.reshape((5, 3)) and a.reshape(5, 3).  The former is natural for doing e.g. a.reshape(b.shape).  Of course, a.reshape(*b.shape) isn't difficult to do either.  Actually, yeah, maybe we should match NumPy.


Error: unmatshal Download

cowtransfer-uploader https://c-t.work/s/7eb3eacb52c546
Remote: https://c-t.work/s/7eb3eacb52c546
Error: unmatshal DownloadDetails returns error: unexpected end of JSON input

和#8 的错误差不多

fixed (v0.4.8 https://github.com/Mikubill/cowtransfer-uploader/releases/tag/v0.4.8)


Any way to speed up storm inference

Hi,
I am getting very slow inference performance on RTX 3090 (less than 1x real time). Wondering if there is any way to speed up the algorithm while keeping decent quality (quality that's still better than denoiser-only mode)?

Hi,
The inference with 20 steps and no corrector (as recommended in the paper) should be rather quick on GPU, definitely faster than real-time.
If you are looking for schemes to improve the inference speed, I'll suggest to wait two weeks, we have something in the making, or you can take a look at the existing literature on fast inference for diffusion-based generative models: most of them should be compatible with StoRM.

@jmlemercier hi, did you release the second solution to the problem?

Hi @egorsmkv this is actually ongoing work, should be released sometime around September!

Hi @jmlemercier , I'm also experiencing very slow inference with GPU. Is the September update going on as planned?

Hi @wangtiance, again, we did not experience very slow inference on GPU with the settings provided (it worked in real-time with 20 steps as mentioned above).
WRT few-step diffusion, I suggest you take a look at our recent arXiv pre-prints on the matter:

a different SDE parameterisation for more accurate inference, completely compatible with the StoRM framework (simply change the SDE parameters accordingly): https://arxiv.org/abs/2302.14748
a partially supervised version of SGMSE+ (competitive with StoRM down to 2 diffusion steps, then outperforms other method for 1 and 2-step solvers): https://arxiv.org/abs/2309.09677


Will it be possible to export/forward members starting in _ or -?

I'm working on a tool to help manage css variables, and we've been considering e.g. @mixin --color() to reflect the custom property syntax. If I understand right, that would be considered a private function by the new module proposal. How strict is that rule, and can it be overridden?
I'm not sure this warrants a "feature request" as much as an answer. I was curious, and wondered what you're thinking.

The plan is not to allow this. We could add an explicit exception for -- though, if you'd like.

I'd use it if it's available, but only if that exception makes sense for the language. It is a useful way to reference css custom properties.

I think I'll leave it as-is for now. We can always add this exception later if people ask for it.


Double Splash Screen

First the default splash screen (https://developer.android.com/guide/topics/ui/splash-screen) plays and then the additional one implemented in the app. Is this intentional? It seems a bit weird. I think it would be an improvement if the default one was disabled.

Hey @JamalMulla, it's a good point. The current Splash screen is a regular screen and it does not have an advance. If you want you can implement SplashScreen API for Android 12 and above.

You know, A lot of application has a splash screen, just I wanted to create it by default and show the application icon. Also, I wanted to show navigation between two screens. Splash to Main is a great example of this.


Added two more items in navbar

Description
add two more items in navbar and add the respective links
Fixes #206

Type of change

[x] This change requires a documentation update

Explain the Testing instructions
Test Configuration:

Operating system:
Version:
Text-editors used:

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

Description
add two more items in navbar and add the respective links
Fixes #206
Type of change

[x]  This change requires a documentation update

Explain the Testing instructions
Test Configuration:

Operating system:
Version:
Text-editors used:

Checklist:

[ ]  My code follows the style guidelines of this project
[ ]  I have performed a self-review of my own code
[ ]  I have commented my code, particularly in hard-to-understand areas
[ ]  I have made corresponding changes to the documentation
[ ]  My changes generate no new warnings
[ ]  I have added tests that prove my fix is effective or that my feature works
[ ]  New and existing unit tests pass locally with my changes
[ ]  Any dependent changes have been merged and published in downstream modules

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

Is it right?


GoogLeNet not training

Hi guys,
I'm having some very weird issues. AlexNet is training fine, but when changing the model to GoogLeNet, the network just never seems to train.
I originally tried with a small dataset I already had and even after many epochs the classification result was still random.
Currently testing it with ImageNet and have the same problem. I am using batch size 60 and epoch size 10000. Of course I should probably wait for a few epochs, but after 1-2 epochs the Loss function error has not moved away from 6.9 and the accuracy is virtually 0.
I have also tried many different model implementations of GoogLeNet in case there is a problem with this particular one, but to no avail.
Any idea what might be the problem? Can it be that data augmentation is a prerequisite or something?

Add batchnorm after every convolution layer, your network will magically start training.

For an.example of adding batchnorm properly, use models/alexnetowtbn.lua as an example.

Many thanks! I'll try this out!

It worked like a charm!! Many many thanks!

Hi guys,
SpatialBatchNormalisation indeed solved my issue and now I can get performance equivalent to the one I get on Caffe for my problem.
However, I cannot help it but wonder why was it so necessary! On Caffe the same network (without local response normalisation, or any normalisation for that matter) trains normally. Why can't Torch GoogLeNet do without BN and how was this network used before early 2015 when BN was proposed and implemented?

@korkinof BatchNorm is not necessary to get googlenet to train in torch. If you initialize the weights of each layer according to the paper, you will start learning in torch as well.

how was this network used before early 2015 when BN was proposed and implemented?
By initializing weights.

Also, Caffe's googlenet implementation is kind of bad. It only goes upto 68% accuracy, vs the original googlenet paper goes to 72%.

@soumith I can't find details of GoogLeNet's weight initialization in the arXiv paper. Where does it talk about this? The only occurence of "initialization" is when they talk about how all of their networks in the ensemble were accidentally initialized to the same weights. Many thanks.

Yes, I don't think initialisation is mentioned in the paper, but I think Caffe uses Xavier initialisation of the weights and I guess Torch doesn't (?).
You can take a look here: http://deepdish.io/2015/02/24/network-initialization/

Hi guys,
I can verify that the source of this issue is indeed the initialisation. I tested with Xavier initialisation and without batch normalisation and the network trains, when previously it did not.
Initialising is very easy and you can see an example here:
https://github.com/e-lab/torch-toolbox/tree/master/Weight-init
Although the example needs some modification to work with inception layer.
In case you need my code, just ask!
Best wishes to all!

Wow, that is really helpful! Thanks, @korkinof .
Another huge important difference is that Caffe models from the model zoo expect the input to have range [0,255]. After mean subtraction, it should be roughly [-127, 127]. I'm using the dp library which scales images to have zero mean and unit variance, which causes my models not to converge. I'm not sure what the scripts in this repository do, but this difference is important because Caffe's style of input scaling effectively makes the gradients 255 times stronger than they otherwise would be. Just something to look into.

the inputs being [-127, +127] is bad for many reasons, the simplest being that almost all the fancy weight initialization schemes are formulated with the assumptions that the inputs are [-1, 1] with zero mean. If you want stronger gradients, you can simply multiply learning rate.

and sorry for the late reply @gcr , the googlenet weight initialization , i got from the authors after emailing them. I remember some details in the original Googlenet paper, I have to open up the paper again and find it.

@soumith hm, interesting! with torch default weight initialization, my models don't converge with [-1, 1] input (ie. satisfying all the assumptions for picking default learning rates), but it does converge with [-255, 255] input scaling. I'll have to look at this more closely. Definitely a topic to study closer.
(full disclosure: i'm not using the code in this repository, but i'm not sure of any pertinent differences)

I am also having troubles getting GoogLeNet to converge. I am using a single GPU. I am using CIFAR10 dataset and input data are normalized to approximately zero mean and unit variance. My batch size is 32. I have tried various learning rates between 0.1 and 0.001. I have tried Xavier initialization using @korkinof code (not sure if anything special needs doing for the inception layers). How many epochs do you typically need to wait before the network produces better results than random?  Thanks!

You are using SpatialBatchNormalisation after the convolutional layers right?
According to my experience, with 0.01 learning rate and SpatialBatchNormalisation it starts training very quickly.
The Xavier initialisation made it possible to run Googlenet without BN, but it seemed to train slower. On the long run using Xavier init and BN did not make significant different for us.
Are you sure it's a good idea to upscale these tiny images so much? Why not try imagenet or a subset of it to see if your model is correct?

Thanks @korkinof. Actually no I didn't have batch normalisation layers as the other comments made it look like it was kind of hacky and I was under the impression that the preferred way was better initialization of weights. With SpatialBatchNormalisation layers (in the feature layers, I didn't add batch normalisation in the inception layers), the network is learning something pretty quickly. Thanks!

@korkinof
I tried the Xavier weight initialization but still it does not converge.
Could you please give me your codes?
Thanks


No way to logout on mobile

Currently there isn't a way to log out when visting the site from mobile

Please add your planning poker estimate with ZenHub @cmcWebCode40


bind:value to input elements does not work

Copy from https://github.com/Tommertom/svelte-ionic-app/issues/33
Reason why this is not work : https://github.com/sveltejs/svelte/issues/4838
Workaround -  grab ionChange event on ion-input and use the event.detail.value to change the variable.
Or if you are using bigger forms, an integrated forms-suite that handles this for you is even better. Then you get more goodies https://github.com/Tommertom/svelte-ionic-app/issues/33#issuecomment-1193364960
The earlier mentioned alternative to create svelte native wrappers like IonInput.svelte will resolve this too, but then we run into other problems with respect to styling of elements. So that route seems a dead end for now.
Keeping this issue open until something better comes up

@Tommertom
I would suggest another workaround: using actions. This way neither wrappers for the actual components (having the styling issue) have to be written nor the event listeners have to be set manually. The only drawback is, as far as I can grasp, that writeable stores have to be used instead of plain component properties.
<script lang="ts">
    import { bindIonInputValue } from "../ionActions";

    let text = writable("text")
</script>
<ion-input use:bindIonInputValue={text} label={"my label"}/>

----- ionActions --------

import type { InputChangeEventDetail, IonInputCustomEvent } from "@ionic/core/dist/types/components";
import { type Writable, get } from "svelte/store";

export function bindIonInputValue(element: HTMLIonInputElement, store: Writable<string | number>): ActionReturn<Writable<string | number>> {

    function eventListener(e: IonInputCustomEvent<InputChangeEventDetail>) {
        store.set(e.detail.value)
    }

    function _set(store: Writable<string | number>) {
        element.value = get(store)
        element.addEventListener('ionInput', eventListener)
    }

    _set(store)
    return {
        update: _set,
        destroy: () => element.removeEventListener('ionInput', eventListener)
    }
}

export interface ActionReturn<Parameter = any> {
	update?: (parameter: Parameter) => void;
	destroy?: () => void;
}

@Tommertom
I would suggest another workaround: using actions. This way neither wrappers for the actual components (having the styling issue) have to be written nor the event listeners have to be set manually. The only drawback is, as far as I can grasp, that writeable stores have to be used instead of plain component properties.

<script lang="ts">

    import { bindIonInputValue } from "../ionActions";

    let text = writable("text")

</script>

<ion-input use:bindIonInputValue={text} label={"my label"}/>

ionActions

import type { InputChangeEventDetail, IonInputCustomEvent } from "@ionic/core/dist/types/components";

import { type Writable, get } from "svelte/store";

export function bindIonInputValue(element: HTMLIonInputElement, store: Writable<string | number>): ActionReturn<Writable<string | number>> {

    function eventListener(e: IonInputCustomEvent<InputChangeEventDetail>) {

        store.set(e.detail.value)

    }

    function _set(store: Writable<string | number>) {

        element.value = get(store)

        element.addEventListener('ionInput', eventListener)

    }

    _set(store)

    return {

        update: _set,

        destroy: () => element.removeEventListener('ionInput', eventListener)

    }

}

export interface ActionReturn<Parameter = any> {

	update?: (parameter: Parameter) => void;

	destroy?: () => void;

}

Thanks for sharing - got to think this through. I like to avoid creating documentation and deviations from the ionic api docs- but it does look interesting

@Tommertom I'll answer here to avoid out-of-topic posts in svelte thread.
For svelte-native, we use svelte-native-preprocessor
As of what it's doing, here's an example:
Before preprocessing:
<textfield bind:text={myText}/>

After:
<textfield text={myText} on:textChange={(e) => myText = e.value}/>

Each NativeScript attribute has support for a corresponding event and that's why this is possible.
This preprocessing is a bit slow however, as it turns content to AST and traverses it to modify binding attributes.
I truly hope this helps you somehow, until svelte makes a decision.


Added Feature video autoplay on hover #480

Feature :  Video Autoplay on Hover
Description:
Implements the "Video Autoplay on Hover" feature, enabling videos to start playing automatically when the user hovers over the thumbnail or player. Includes a preview functionality to display a short clip or teaser on hover.
Testing:

Tested across browsers and devices
Verified preview functionality
Tested user settings and error handling
Checked responsiveness on different screen sizes

Checklist:

[x] Self-reviewed code
[x] No duplicate PR

Related Issues:

Closes #480

/bounty $20


Named arguments API

Now Translation#format* processes the arguments depending on the order they're passed. The number of arguments the function accepts is dynamic.
Translation#format(phrase: string, locale: string, ...args: Array<string>)

Translation#format-like accepting named arguments may become a quite useful alternative.
Translation#format(phrase: string, locale: string, args: { [key: string]: string })

Besides, the performance comparison of two variants would also be interesting, since the constant number of arguments is preferrable by the optimizing compiler of V8. From optimization perspective, it may be better to define completely new API method rather than to extend the existing one.

Since it's supposed for t8on to have flexibility and light weight as its main features as well as performance and simplicity, it's reasonable to support not to include unused methods to the final bundle without losing general transparency and predictability. Modular structure with heavy usage of prototype extension seems very attractive right now.


Lack of cmakelist in the openspiel dependence

Sorry for the late reply. It has been fixed, please see the commit cfd8e7253a0803a15086dc35cd9a67396834738f.


adding blog post: Tales From a Mechanical Engineer

@franknoirot the documentation submodule still confuses me a little, so I think the workflow for this is to merge to documentation -> update submodule in website repo -> start PR in website to generate vercel preview -> merge once approved?

related to https://github.com/KittyCAD/media-brand/issues/120

I like it!

@franknoirot I would say this is ready to go if you want to throw it in the queue of blog posts.

LGTM, you're right on the workflow but we don't need to update the submodule manually because we have a GitHub Action to do that and open a PR against the website with it updated.


Allow use of settings without location

I'd like to be able to look at and change settings without needing to allow location. Pressing no thanks just brings me back to Tunnels.
https://cdn.discordapp.com/attachments/901264453067218985/1156272743755567164/Screenshot_20230926-115323654.jpg

It was configured that way to prevent users from using those features without the permission enabled. Doing so will cause unexpected results. I see value in scoping the permission down to the specific settings. This will help users access settings that do not require location permission.


docker swarm

Does this image work in docker swarm mode?

Yes, some people use it with docker swarm or kubernetes. But no official support.

I'm also interested if someone have more informations on that.

For the time being I chose to implement my mail server with iredmail. As long as the server isn't under heavy load and does little more, it should work most of the time GRIN.

What do you want to know about docker swarm ? As rancher support, I'm open merge any contribution to add documentation or make swarm support better. But I don't have enough time to maintain my self all variants (Vanilla, Rancher, Swarm, K8s...etc). So any maintainers for Swarm and K8s configurations are welcome.

I'm also interested if someone have more informations on that.

ping @outbackdingo.

Personally, I want to use the Rancher solution. I think that in a production environment it is essential to have a backup server in case of error or system update with reboot of the main server but unfortunately I do not have enough knowledge in docker swarm to participate.

@measwel why iredmail, its terrible, would have been better off with mailu ..... either way they all do basically the same thing, however support for things like kubernetes, swarm, rancher do somewhat lack here in mailserver ...  mailu actually runs on rancher and kubernetes. that being said there is nothing that stops or prevents someone from running mailserver in a stack environment other then someone properly putting together the right compose config for it. of all the stacks well ranchert is the easiest to deploy on as it uses standard docker-compose files, k8s and mesos however use different yaml syntax. I guess the best bet honestly would be to poll the community using mailserver and see who has actually successfully deployed mailserver on what stacks and then go from there.

kubernetes, swarm, rancher do somewhat lack here in mailserver

hardware/mailserver works with Rancher : https://github.com/hardware/mailserver-rancher

There is nothing that stops or prevents someone from running hardware/mailserver in a stack environment other then someone properly putting together the right compose config for it.

Ok, good to know :)
As previously said, any contributors are welcome to add some documentation for Swarm and K8s environments.

There is nothing that stops or prevents someone from running hardware/mailserver in a stack environment other then someone properly putting together the right compose config for it.

I second this.

Currently working on deploying this on my personal Kubernetes cluster. I'll keep note of what I do and try to document the process for others afterwards.
By the way, the fact that this container does mount the docker socket is very refreshing. Thanks for all the great work here. I really appreciate it.

@nsmith5 Your contribution is welcome.


weex-toolkit 1.3.5 安装报错<EMAIL_ADDRESS>

Makes sure these boxes are checked befor submitting your issue - thank you!

[] Check that your node version is >= 6 and npm version is >=5(Run npm --version and node --version).
[] If you encounter any problems using the tool, please check if there has a new version to update(Run weex update [pluginname]@latest).
[] Check the FAQ, make sure there have not the same issue.

Your development environment

weex-toolkit verison (Run weex -v)
platform (Win/Mac/Ubuntu..)

The key error stack message.
$ npm install -g weex-toolkit
events.js:183░░░░░░⸩ ⠴ extract:ajv: sill extract<EMAIL_ADDRESS>throw er; // Unhandled 'error' event
^
Error: sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== integrity checksum failed when using sha512: wanted sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== but got sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==. (2875 bytes)
at Transform.on (/Users/zhangliao/.nvm/versions/node/v8.11.1/lib/node_modules/npm/node_modules/ssri/index.js:310:19)
at emitNone (events.js:111:20)
at Transform.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
WARN tarball tarball data for sntp@https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz (sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==) seems to be corrupted. Trying one more time.
WARN notice [SECURITY] lodash has 1 low vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=lodash&version=4.17.4 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN notice [SECURITY] hawk has 1 moderate vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=hawk&version=0.10.2 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN tarball tarball data for<EMAIL_ADDRESS>(sha512-Qt2lz2egBxNYWqN9JIO2z4NOOf8i4b5JS6CFoYrOZZTDssueiV1jH/jsefyg+86SeNY3rB361/mi3kE1WK2WYQ==) seems to be corrupted. Trying one more time.
WARN notice [SECURITY] hoek has 1 moderate vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=hoek&version=0.7.6 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN tarball tarball data for request@https://registry.npmjs.org/request/-/request-2.83.0.tgz (sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==) seems to be corrupted. Trying one more time.
WARN tarball tarball data for supports-color@https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz (sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==) seems to be corrupted. Trying one more time.
$ npm install -g weex-toolkit
events.js:183░░░░░░⸩ ⠦ extract:babylon: sill extract<EMAIL_ADDRESS>throw er; // Unhandled 'error' event
^
Error: sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== integrity checksum failed when using sha512: wanted sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg== but got sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==. (2875 bytes)
at Transform.on (/Users/zhangliao/.nvm/versions/node/v8.11.1/lib/node_modules/npm/node_modules/ssri/index.js:310:19)
at emitNone (events.js:111:20)
at Transform.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
WARN notice [SECURITY] hawk has 1 moderate vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=hawk&version=0.10.2 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN tarball tarball data for<EMAIL_ADDRESS>(sha512-Qt2lz2egBxNYWqN9JIO2z4NOOf8i4b5JS6CFoYrOZZTDssueiV1jH/jsefyg+86SeNY3rB361/mi3kE1WK2WYQ==) seems to be corrupted. Trying one more time.
WARN notice [SECURITY] lodash has 1 low vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=lodash&version=4.17.4 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN tarball tarball data for hawk@https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz (sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==) seems to be corrupted. Trying one more time.
WARN tarball tarball data for sntp@https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz (sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==) seems to be corrupted. Trying one more time.
WARN notice [SECURITY] hoek has 1 moderate vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=hoek&version=0.7.6 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
WARN tarball tarball data for hoek@https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz (sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==) seems to be corrupted. Trying one more time.
WARN tarball tarball data for<EMAIL_ADDRESS>(sha512-Qt2lz2egBxNYWqN9JIO2z4NOOf8i4b5JS6CFoYrOZZTDssueiV1jH/jsefyg+86SeNY3rB361/mi3kE1WK2WYQ==) seems to be corrupted. Trying one more time.
WARN tarball tarball data for supports-color@https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz (sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==) seems to be corrupted. Trying one more time.
Steps to reproduce the problem.(Maybe a dotwe link,)

@rawbin- looks like you have been install weex-toolkit before? try to uninstall it or remove it manually,  or using npm@4 to install our toolkit would be a better choice.

@erha19 yes, I have installed<EMAIL_ADDRESS>and I want to install 1.3.5 and it fails on npm 5.x and npm 6.x


Using MaybeUinit initialization

 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.:x: tathanhdinh sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

I'd rather keep this explicit as it. Thanks though!


Maximum Number Of Handshakes

Feature ✅
Description

The user is asked to take a number as integer n and find out the possible number of handshakes. For example, if there are n number of people in a meeting and find the possible number of handshakes made by the person who entered the room after all were settled.
Hint:
nC2 calculated as n*(n-1)/2
Example

Input:
N=15
Output:
Max. no. of handshakes = 105
Explanation:
(15*14)/2 = 105
Checklist:

[x] I have read the project guidelines.
[x] I have checked all the existing projects, before submitting a new project issue.
[x] This issue will be meaningful for the project.
[x] I will contribute more in future

Contributors are supposed to mention their coding language while asking for assignment

Hi , i would like to code a program for this issue in python, could you please assign it to me

@pallavivaswani i would like to do this in Java. Please assign this to me.

@alvinuday You are been assigned to 2 issues which is max limit for this repository.

hi i would love to implement the code in C#, C++ and C. Can I still work on it? If yes can you assign me, Thank you

Can I code in python?


ChatFilter G.E. only

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always
frustrated when [...]
Chat filter is primarily used to prevent spam in the G.E. Because it sometimes catches messages that are not spam, particularly outside the G.E., an option that only enables it in the G.E. would solve this in most cases.
Describe the solution you'd like
A clear and concise description of what you want to happen.
An option that automatically activates chat filter in spam hot spots, primarily the G.E.

Given that what Chat Filter filters is entirely controlled by the user, if it's filtering content elsewhere the user should change their filter to be more specific.

Given that what Chat Filter filters is entirely controlled by the user, if it's filtering content elsewhere the user should change their filter to be more specific.

This is not a useless suggestion. Here is an example: "Duranke Has wön 22m Röll: (58) @ [04:29:08]"
If I filter "has won" or "has lost" or "roll" this ends up filtering too many non spam messages. However, if this feature could be enabled for the G.E. only, this would be solved.

That's why regex filtering exists, so you can be more specific. with filters that follow a pattern instead of exact text

That's why regex filtering exists, so you can be more specific with filters that follow a pattern instead of exact text

There is no guide as to how to use it. While filtering words/sentences is straight forward.
The majority of people who use Runelite like myself are not software engineers.

There are many guides and tools for making regex online. Yes it's advanced, but it's not something impossible for people to learn/use. It also remains the easiest way to support something like this for near every situation.
Because the main thing with adding a toggle for a specific area is that the GE isn't the only place with spam. There's also Wintertodt, Lumbridge castle for F2P, certain PvP banking hotspots, ToB, CoX, and probably many more. When we already have a tool that does what you asked for (filtering spam without hitting real messages), it doesn't make much sense to add a much narrower tool that would also stop the plugin from working in the vast majority of the world, something that would definitely confuse users.

There are many guides and tools for making regex online. Yes it's advanced, but it's not something impossible for people to learn/use. It also remains the easiest way to support something like this for near every situation.
Because the main thing with adding a toggle for a specific area is that the GE isn't the only place with spam. There's also Wintertodt, Lumbridge castle for F2P, certain PvP banking hotspots, ToB, CoX, and probably many more. When we already have a tool that does what you asked for (filtering spam without hitting real messages), it doesn't make much sense to add a much narrower tool that would also stop the plugin from working in the vast majority of the world, something that would definitely confuse users.

Alright.
Doing it the straight forward way still blocks around 95% of the spam which enables me to read public chat.


Devservices fail when docker is not available/supported

Sometimes docker is not available or it is not possible to start containers (e.g. CI pipelines in gitlab, localstack might be provided by as a service)
The documentation https://docs.quarkiverse.io/quarkus-amazon-services/dev/dev-services.html states:

Dev Services for Amazon Services is automatically enabled for each extensions added to pom.xml except in the following situations:

quarkus.devservices.enabled is set to false
devservices.enabled is set to false per extension (eg. quarkus.s3.devservices.enabled=false)
the endpoint-override is configured (eg. quarkus.s3.endpoint-override=http://localhost:4566)
Your environment does not support Docker

Reproduce:
Create a project with a quarkus-amazon-services dependency, shutdown docker and run quarkus dev.
2023-07-17 21:57:02,654 INFO  [io.qua.ama.lam.run.MockEventServer] (build-15) Mock Lambda Event Server Started
2023-07-17 21:57:03,157 INFO  [org.tes.doc.DockerClientProviderStrategy] (build-13) Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2023-07-17 21:57:03,424 WARN  [org.tes.doc.DockerClientProviderStrategy] (build-13) DOCKER_HOST unix:///var/run/docker.sock is not listening
2023-07-17 21:57:03,427 WARN  [org.tes.doc.DockerClientProviderStrategy] (build-13) DOCKER_HOST unix:///Users/martin.grammelspacher/.docker/run/docker.sock is not listening
2023-07-17 21:57:03,431 INFO  [org.tes.doc.DockerMachineClientProviderStrategy] (build-13) docker-machine executable was not found on PATH (....)
2023-07-17 21:57:03,432 ERROR [org.tes.doc.DockerClientProviderStrategy] (build-13) Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
As no valid configuration was found, execution cannot continue.
See https://www.testcontainers.org/on_failure.html for more details.
2023-07-17 21:57:04,115 WARN  [io.qua.run.uti.ContainerRuntimeUtil] (build-13) Command "docker info" exited with error code 1. Rootless container runtime detection might not be reliable or the container service is not running at all.
2023-07-17 21:57:04,125 INFO  [org.tes.uti.ImageNameSubstitutor] (build-13) Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
2023-07-17 21:57:04,132 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
2023-07-17 21:57:04,160 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.amazon.common.deployment.DevServicesLocalStackProcessor#startLocalStackDevService threw an exception: java.lang.RuntimeException: java.lang.IllegalStateException: Previous attempts to find a Docker environment failed. Will not retry. Please see logs and check configuration
        at io.quarkus.amazon.common.deployment.DevServicesLocalStackProcessor.startLocalStack(DevServicesLocalStackProcessor.java:333)
        at io.quarkus.amazon.common.deployment.DevServicesLocalStackProcessor.lambda$startLocalStackDevService$8(DevServicesLocalStackProcessor.java:145)
        at java.base/java.util.HashMap.forEach(HashMap.java:1421)
        at io.quarkus.amazon.common.deployment.DevServicesLocalStackProcessor.startLocalStackDevService(DevServicesLocalStackProcessor.java:144)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:282)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
        at java.base/java.lang.Thread.run(Thread.java:833)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.lang.IllegalStateException: Previous attempts to find a Docker environment failed. Will not retry. Please see logs and check configuration
        at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:231)
        at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:150)
        at org.testcontainers.DockerClientFactory.getTransportConfig(DockerClientFactory.java:156)
        at org.testcontainers.DockerClientFactory.getRemoteDockerUnixSocketPath(DockerClientFactory.java:171)
        at org.testcontainers.containers.localstack.LocalStackContainer.<init>(LocalStackContainer.java:112)
        at org.testcontainers.containers.localstack.LocalStackContainer.<init>(LocalStackContainer.java:94)
        at io.quarkus.amazon.common.deployment.DevServicesLocalStackProcessor.lambda$startLocalStack$25(DevServicesLocalStackProcessor.java:289)

Possible solutions:

catch the exception, log a warning & startup anyways
change the doc :sweat_smile:

Yeah, I know...setting quarkus.devservices.enabled=false is not a big issue. ^^
But with https://github.com/quarkusio/quarkus/issues/34801 we have to disable each service (which is a little bit noisy)
quarkus.s3.devservices.enabled=false
quarkus.sns.devservices.enabled=false
quarkus.sqs.devservices.enabled=false
quarkus.dynamodb.devservices.enabled=false
quarkus.ssm.devservices.enabled=false

How do you provide the endpoint configuration in your ci pipeline ?

I'm in favor of consistency in quarkus ecosystem and for now, AFAIK, all other dev services implementation that require a valid docker env fail if it is not found (and the doc should indeed be changed).

How do you provide the endpoint configuration in your ci pipeline ?

Localstack is started as a service within a gitlab CI Job and the endpoint configuration is provided using an env var like QUARKUS_SNS_ENDPOINT_OVERRIDE=xxx.
Also the doc states that dev services are automatically enabled except "the endpoint-override is configured (eg. quarkus.s3.endpoint-override=http://localhost:4566/)". But dev services are started nonetheless.

How do you provide the endpoint configuration in your ci pipeline ?

Localstack is started as a service within a gitlab CI Job and the endpoint configuration is provided using an env var like QUARKUS_SNS_ENDPOINT_OVERRIDE=xxx.
Also the doc states that dev services are automatically enabled except "the endpoint-override is configured (eg. quarkus.s3.endpoint-override=http://localhost:4566/)". But dev services are started nonetheless.

Should not be the case, I look into it. I guess, it check only the presence of the 'application.properties'-case name.

Are you certain that the environment variables are properly set during test execution ?
I did a test and it behaved as expected.
$ mvn test
[...]
2023-07-21 23:11:51,839 INFO  [org.tes.doc.DockerClientProviderStrategy] (build-19) Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2023-07-21 23:11:51,961 WARN  [org.tes.doc.DockerClientProviderStrategy] (build-19) DOCKER_HOST unix:///var/run/docker.sock is not listening
2023-07-21 23:11:52,039 INFO  [org.tes.doc.DockerMachineClientProviderStrategy] (build-19) docker-machine executable was not found on PATH
2023-07-21 23:11:52,041 ERROR [org.tes.doc.DockerClientProviderStrategy] (build-19) Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
        DockerDesktopClientProviderStrategy: failed with exception NullPointerException (Cannot invoke "java.nio.file.Path.toString()" because the return value of "org.testcontainers.dockerclient.DockerDesktopClientProviderStrategy.getSocketPath()" is null)As no valid configuration was found, execution cannot continue.
See https://www.testcontainers.org/on_failure.html for more details

$ QUARKUS_S3_ENDPOINT_OVERRIDE=http://foo.bar mvn test
[...]
2023-07-21 23:12:07,863 INFO  [io.quarkus] (main) amazon-s3-quickstart 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 4.074s. Listening on: http://<IP_ADDRESS>:8081
2023-07-21 23:12:07,864 INFO  [io.quarkus] (main) Profile test activated.
2023-07-21 23:12:07,865 INFO  [io.quarkus] (main) Installed features: [amazon-s3, cdi, resteasy-reactive, resteasy-reactive-jackson, smallrye-context-propagation, vertx]
2023-07-21 23:12:16,249 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /s3/upload failed, error id: e8311b40-367c-442a-b0fd-8cf8dcb4da9e-1: software.amazon.awssdk.core.exception.SdkClientException: Unable to load region from any of the providers in the chain software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain@6b480ece: [software.amazon.awssdk.regions.providers.SystemSettingsRegionProvider@511a285: Unable to load region from system settings. Region must be specified either via environment variable (AWS_REGION) or  system property (aws.region)., software.amazon.awssdk.regions.providers.AwsProfileRegionProvider@726486e8: No region provided in profile: default, software.amazon.awssdk.regions.providers.InstanceProfileRegionProvider@61f302f4: Unable to contact EC2 metadata service.]

Hi @scrocquesel,
thanks for looking and reproducing.
You are right, it works if the environment variable is set or an override is specified in the application.properties (eg. %dev.quarkus.s3.endpoint-override=http://foo.bar or %test.quarkus.s3.endpoint-override=http://foo.bar)
Unfortunately, there was another problem. :man_facepalming: Sorry for the confusion.
If that is the desired and consistent behaviour, then I guess it really should just be the documentation that is adapted.

What should the documentation be ? It seems that it is correct regarding my tests and yours.

I was referring to the original reason for this issue.

Dev Services for Amazon Services is automatically enabled for each extensions added to pom.xml except in the following situations:

quarkus.devservices.enabled is set to false
devservices.enabled is set to false per extension (eg. quarkus.s3.devservices.enabled=false)
the endpoint-override is configured (eg. quarkus.s3.endpoint-override=http://localhost:4566)
Your environment does not support Docker

I was referring to the original reason for this issue.

Dev Services for Amazon Services is automatically enabled for each extensions added to pom.xml except in the following situations:

quarkus.devservices.enabled is set to false
devservices.enabled is set to false per extension (eg. quarkus.s3.devservices.enabled=false)
the endpoint-override is configured (eg. quarkus.s3.endpoint-override=http://localhost:4566)
~Your environment does not support Docker~

Ah yes, in testing mode, it will fail if the application is not configured properly and dev services cannot start to offer its configuration. There is no point to test an application that is not properly configured as tests should fails anyway.


bash syntax highlighting issue

The syntax highlighting for the bash script below not shown properly in SubEthaEdit
#!/usr/bin/env bash
set -e
set -u

sign_csr() {
        local idx=0
        for uri in ${order_authorizations}; do
            authorizations[${idx}]="$(echo "${uri}" | _sed -e 's/\"(.*)".*/\1/')"
            idx=$((idx + 1))
        done
        echo " + Received ${idx} authorizations URLs from the CA"
}

Shown in SubEthaEdit:

Indeed Thanks for filing this. I would suggest to add String interpolation states for $() for this to work better.


Separate listen and server port, add scheme option

Added --scheme and --listen options. This allows compiled binary to be used behind reverse proxy.
In addition, template for generating URL was fixed, i.e. when PORT is 80, then PORT is omitted from URL segment.

Looks good - will make a new release shortly, thanks


Error when executeWorkflow is called

When I call executeWorkflow I have the following error message:
A method named "executeWorkflow" is not declared in any enclosing class nor any supertype, nor through a static import.
Here is a summary of the context where the method is called:
import com.debortoliwines.openerp.api.Session;
import com.debortoliwines.openerp.api.*;
import com.debortoliwines.openerp.api.Row;
ObjectAdapter objectAdOrder = openERPSession.getObjectAdapter("sale.order");
String[] NewTuple = new String[]{"partner_id", "date_order", "client_order_ref"};
Row newObject = objectAdOrder.getNewRow(NewTuple);
newObject.put("partner_id", partner_id);
newObject.put("date_order", current_time);
newObject.put("client_order_ref", booking_external_ref);
objectAdOrder.createObject(newObject);
objectAdOrder.executeWorkflow(newObject, "order_confirm");
I am using the 1.5 version of your api.
Thanks for your help!

Hy bwilmus,
You have to split your code in 2 sequences.
First create the object and get the id
The make a filter on the id with a tuple that get name, id and state and THEN make the execute workflow.
Remember that it's an asynchronous conversation, once the object is created, you only have a image of the object before it exists in Odoo. The tuple in your java code won't be associated to an Odoo Object.
That's why you MUST recall a searchAndreadObject so that the object you'll try to manipulate will be "synchronized".
Hope it could help

Hi Flotho,
I have tried what you propose but it seems that your solution doesn't solve the problem.
I have the feeling that I miss some class import or do not call executeWorkFlow on the right object.
This error is raised by Pentaho data integration before running the process when the class syntax is checked.
The error message says:
A method named "executeWorkflow" is not declared in any enclosing class nor any supertype, nor through a static import

Hy bwilmus,
here is a piece of code that woks with openerp 7 and lib 1.4 :
import com.debortoliwines.openerp.api.*;
import java.util.Date;

private Session openERPSession = null;
private com.debortoliwines.openerp.api.Row  accountToUpdate;
private Integer model_id ;
private Boolean success= false;
private Object[] r;
private com.debortoliwines.openerp.api.Row  orderToValidate;

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
	r = getRow();
	if (r == null) {
		setOutputDone();
		return false;
	}
	try {
		if (first) {
			first=false;
		}
     		r = createOutputRow(r, data.outputRowMeta.size());
			ObjectAdapter objectAd = openERPSession.getObjectAdapter("sale.order");

            FilterCollection filters = new FilterCollection();
			Long order_id = get(Fields.In, "order_id").getInteger(r);

			String order_number = get(Fields.In, "effective_piece").getString(r);
			//Filtre sur la facture déjà créée
			filters.add("id","=", order_id );

			String[] tuple = new String[]{"id","origin","company_id", "name"};
    		RowCollection orders = objectAd.searchAndReadObject(filters, tuple);

			if (orders.isEmpty()){
				//Alors on créé
				logError("Devis  " +  order_number + "Non trouvé");
			}else{
				//Sinon on met à jour
				logBasic("Le devis/commande " + order_number + " existe");
		        orderToValidate =  (com.debortoliwines.openerp.api.Row) orders.get(0);

    	    	objectAd.executeWorkflow(orderToValidate, "order_confirm");
			}

			putRow(data.outputRowMeta, r);
			return true;
	} catch (Exception e) {
    		logError("erreur : Exception e" + e.getMessage());
         	setErrors(1);
			success= false;
	}
	return true;
}

public boolean init(StepMetaInterface stepMetaInterface, StepDataInterface stepDataInterface)
{
    if (parent.initImpl(stepMetaInterface, stepDataInterface)){
        try{
			openERPSession = new Session("localhost", 8069, "base", "admin", "admin");
			openERPSession.startSession();
            return true;
        }
        catch(Exception e){
            logError("Error connecting to TestDB: "+ e.getMessage());
            setErrors(1);
            stopAll();
        }
    }
    return false;
}

Could you also try on v7 and lib 1.4 to start with a stable configuration,
Hope it could help,

Hy @bwilmus didi you solved your issue?

Yes, this was a problem of Java JRE version.


Drag & Drop Merge

Issue Type: Feature Request
As Windows Users, we're all familiar with the concept of dragging and dropping folders on top of existing folders with the same name.  Windows handles this by merging the folder contents together and prompting you about overwriting any files with the same names in the same locations.  VS Code has turned this upside down and simply overwrites the entire directory with what you're copying.  This is NOT normal behavior and is a serious problem when you don't know it does this.  I have lost a bunch of files that are not in source control because of this flaw.  Please fix this!
VS Code version: Code 1.64.2 (f80445acd5a3dadef24aa209168452a3d97cc326, 2022-02-09T22:02:28.252Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No
Remote OS version: Linux x64 4.4.0-1128-aws

This actually made me lose months of progress in a project after I decided to change its structure.

All deleted files should go to your system recycling bin folder.

This actually made me lose months of progress in a project after I decided to change its structure.

All deleted files should go to your system recycling bin folder. If they do not that's a bug.

No, they aren't in recycle bin. and, replacing the files/folders this way doesn't put them in recycle bin.

@80avin the files should either be in recycle bin, or traced under SCM. What happens if you outright delete a file in that workspace?

Deleting the file explicitly puts it into recycle bin, unless I use shift+delete, which permanently deletes it.
and, SCM tracks them, but I hadn't committed any changes, which I agree is my fault.