Monorepository

Hello, dear @gcanti ! I highly value your work. I see there was a question about monorepo in the previous issue.
To be honest, this also was my first thought when i first time looked at the new fp-ts project structure – this should have been organized as monorepository.
As far as i know you came to TS from another languages, so let me tell you about monorepository pattern and how to cook it nowadays. I organize my private code as monorepos for more than 3 years, so i have experience with it that i would like to share with fp-ts team.
There are some advantages to use monorepo for fp-ts instead of multirepo.
First of all is issue tracking –   It is easier to maintain the issues related to fp-ts in one place.
Another thing, right now everytime you release new @fp-ts/core version – you should update it's version in dependants @fp-ts/data, @fp-ts/schema, etc, so you end up with commits like this
.
A lot of such commits indicates that these packages are part of one codebase rather than completely independent codebases. In short – it's monorepo. With monorepo style you will always work with the latest versions of all the packages.
You also get the whole ecosystem source code in one IDE project.
You will be able to setup the publishing pipeline once for all the packages. One eslint settings, one tsconfig, one prettier, one everything.
For the end users it is much easier to learn the source code of all the ecosystem in one monorepo. You will not spray the attention of users. You will get a single, valuable, active spot. You will be able to unify the documentation and have it under one URL.
In short – you will get all the benefits of a single codebase for modules that by it's nature forms a single codebase, but publish it as separated NPM modules, because it's a separated NPM modules by it's nature:)
Now let me tell you a little about technical part of this solution. The NodeJS/TS ecosystem have significantly improved the monorepo tooling last years.
You no more need a lerna or even yarn for building the projects – tsc supports it out-of-the-box with project references feature – you can build the whole project by running tsc -b from the root – TypeScript will compile all the separated packages in it's own directories. It's super native now.
You will probably still need yarn or lerna for publishing the packages to NPM, but it's not a big deal.
Yarn berry also have a native workspaces feature designed specifically for monorepo. It helps to manage dependencies.
I already have TS project references configured in a right way in my project, so would be glad to help you with it and answer all the questions if you would like to apply monorepo for fp-ts.
Wish all the best to the fp-ts!

@dilame Thank you for the great proposal! I agree that it is important for all packages to be in a single, central location, regardless of the specific implementation of a monorepo. I fully support this approach.

I too think a monorepo is the way to go. I'd also highly recommend pnpm as a package manager for managing a monorepo after having tried pretty much everything else.

I

What’s the advantage over yarn berry?

Workspaces are very easy to set up, a better solution for node_modules than hoisting (which had previously been a big issue for us), better CLI for working with monorepos, faster installs.

better solution for node_modules than hoisting

what’s the solution and why is it better?

https://pnpm.io/symlinked-node-modules-structure
The biggest advantage I've encountered is disallowing importing things that aren't specified in the specific package's package.json. Prior to using pnpm I had issues where dependencies would work in the context of the monorepo, but not when published as some of the dependencies weren't in the specific package.json (but were in another).

@kalda341 you must be comparing with yarn 1.x. Yarn berry (3.x) with pnp linker does’t do hoisting and is also very strict about dependencies.

+1 on having a monorepo setup!
Monorepos are great for all the reasons mentioned by OP.
Some examples of monorepo setups I like: mantine and remix
I also found Nx to be incredibly useful for my projects!

Monorepos while being "cool" for app projects usually end up being messy for oss libraries, each repository has self containing issues and management segmented which is overall a good thing. Effect started as monorepo and migrated out due to CI taking way too long and repo management becoming messy.
In regards to the yarn vs pnpm discussion overall the different strategy is not only in linking but also in scoping, while yarn hoists monorepo dependencies at the root pnpm doesn't also in my experience it is significantly faster and less complicated (yes a properly configured yarn 3 project could be roughly equivalent to a default pnpm one).

@mikearnaldi In the interest of speed and focusing more time on development/documentation and less time on build tooling, I think you and @gcanti should do whatever you're comfortable with as far as the build tooling is concerned for now. Getting the libraries out there for people to use is more important than anything else.
With that said, while I agree with you that monorepos have certain benefits that are more obvious for applications, I think the pros significantly outweigh the cons if set up properly and most of the challenges you mentioned are basically solved problems with modern package managers + monorepo tools like nx or turborepo (project/issue management is probably best solved with the proper GitHub issue templates, tags, etc.)
Versioning, dependency management/analysis, linting/formatting, doc generation, caching, etc. look easier with a monorepo setup than the alternatives.
For whatever it's worth, I think the packages should continue maintaining the org prefix (i.e. @effect/ or @fp-ts/) cause if someone is eventually able to contribute to helping set up a high-quality monorepo setup, the package names don't need to change.

@mikearnaldi In the interest of speed and focusing more time on development/documentation and less time on build tooling, I think you and @gcanti should do whatever you're comfortable with as far as the build tooling is concerned for now. Getting the libraries out there for people to use is more important than anything else.
With that said, while I agree with you that monorepos have certain benefits that are more obvious for applications, I think the pros significantly outweigh the cons if set up properly and most of the challenges you mentioned are basically solved problems with modern package managers + monorepo tools like nx or turborepo (project/issue management is probably best solved with the proper GitHub issue templates, tags, etc.)
Versioning, dependency management/analysis, linting/formatting, doc generation, caching, etc. look easier with a monorepo setup than the alternatives.
For whatever it's worth, I think the packages should continue maintaining the org prefix (i.e. @effect/ or @fp-ts/) cause if someone is eventually able to contribute to helping set up a monorepo, the package names don't need to change.

We don't want to mix repositories that don't have to be mixed, co-locating schema with schema interpreters is fine but colocqting effect with query and node and other 100 projects really isn't, each repo should have its own scope to be better focused

I will talk for myself from my DX point of view.
As authors mentioned before – the fp-effect ecosystem libraries tends to not have a documentation, because the type definitions is a documentation itself.
And actually it's really hard to find any sort of documentation except the official typings-based docs.
I thought I'd come in from the other side and use the sources instead. But now i should end up having an uncountable amount of IDE projects in order to learn everything i need to start developing.
Would be really convenient to open all the sources in one IDE view and navigate through it.

I will talk for myself from my DX point of view. As authors mentioned before – the fp-effect ecosystem libraries tends to not have a documentation, because the type definitions is a documentation itself. And actually it's really hard to find any sort of documentation except the official typings-based docs. I thought I'd come in from the other side and use the sources instead. But now i should end up having an uncountable amount of IDE projects in order to learn everything i need to start developing. Would be really convenient to open all the sources in one IDE view and navigate through it.

The reason there is no doc is that the libraries are not ready, versions are out for contributor's usage. There will be doc targeting beginners. Putting everything in one repo is simply out of discussion.

@mikearnaldi Did you think about a prelude file for the new fp-ts? @fp-ts/all or something like that. With ESM, it should be OK. By the way, will it be fp-ts ESM only or not?


Cannot delete objects by filter

Expected Behavior
Something seems wrong in this part:
https://github.com/kestra-io/plugin-weaviate/blob/master/src/main/java/io/kestra/plugin/weaviate/Delete.java#L101-L106
https://weaviate.io/developers/weaviate/manage-data/delete#delete-multiple-objects
Actual Behaviour
Reproducer: first insert movies
id: weaviate-insert
namespace: dev

inputs:
  - name: weaviateClusterUrl
    type: STRING
    defaults: https://demo-c0geejdk.weaviate.network
  - name: weaviateApiKey
    type: STRING
    defaults: "{{ secret('WEAVIATE_API_KEY') }}"

tasks:
  - id: insertWeaviateMovies
    type: io.kestra.plugin.weaviate.BatchCreate
    url: "{{ inputs.weaviateClusterUrl }}"
    apiKey: "{{ inputs.weaviateApiKey }}"
    className: Movies
    objects:
      - name: "The Shawshank Redemption"
        description: "Over the course of several years, two convicts form a friendship, seeking consolation and, eventually, redemption through basic compassion."
        category: "Drama"
      - name: "The Godfather"
        description: "Don Vito Corleone, head of a mafia family, decides to hand over his empire to his youngest son Michael. However, his decision unintentionally puts the lives of his loved ones in grave danger."
        category: "Crime"
      - name: "The Dark Knight"
        description: "When the menace known as the Joker wreaks havoc and chaos on the people of Gotham, Batman must accept one of the greatest psychological and physical tests of his ability to fight injustice."
        category: "Action"

Steps To Reproduce
now try to delete Shawshank:
id: weaviate-delete
namespace: dev

inputs:
  - name: weaviateClusterUrl
    type: STRING
    defaults: https://demo-c0geejdk.weaviate.network
  - name: weaviateApiKey
    type: STRING
    defaults: "{{ secret('WEAVIATE_API_KEY') }}"

tasks:
  - id: deleteWeaviateMovie
    type: io.kestra.plugin.weaviate.Delete
    url: "{{ inputs.weaviateClusterUrl }}"
    apiKey: "{{ inputs.weaviateApiKey }}"
    className: Movies
    filter:
      name: "The Shawshank Redemption"

success is false, nothing got deleted:

Environment Information

Kestra Version: 0.13.0
Plugin version:
Operating System (OS / Docker / Kubernetes):
Java Version (If not docker):

Example flow
No response

This also doesn't work if no filter is provided. If no filter is provided, all the objects of the className should be deleted. But no object gets deleted.


Convert TypeScript AST to Escalier AST

TODO:

[ ] all object member types
[ ] interface declarations
[ ] function declarations
[ ] class declarations
[ ] imports
[ ] exports (probably do this in a separate PR)

Codecov Report
Attention: Patch coverage is 42.56757% with 170 lines in your changes are missing coverage. Please review.

Project coverage is 81.37%. Comparing base (12d2adf) to head (800ba42).

Files
Patch %
Lines

src/Escalier.Interop/Migrate.fs
42.56%
170 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #207      +/-   ##
==========================================
- Coverage   82.69%   81.37%   -1.33%
==========================================
  Files          21       21
  Lines        8757     9049     +292
  Branches     1283     1306      +23
==========================================
+ Hits         7242     7364     +122
- Misses       1515     1685     +170

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


No 'whereNotNull' in JoinClause

Was trying to use whereNotNull as part of an advanced join.
whereNull exists as part of JoinClause, but whereNotNull doesn't.
Any reason for this omission?

I find an alternative solution:
->orWhere(function ($query) {
    $query->whereNull('field');
});

@danilobrinu Yes - but much neater when method exists

Yes but is useful when not have the last version (5.0)


Add "Requires Battered key" to Elemental Workshop clues

Before anyone starts implementing this, we should first generalize the emote clue item requirement display and use it in other clues too (for cases like this)


Polling Issue when using latest version of DCS-BIOS v0.3.8

I recently upgraded to DCS-Bios v0.3.8 from 0.2.11. Now i am receiving a polling error when compliling. Sketch works fine with v2.11
Below is the sketch I'm trying to use. I have attached error message as well
Thanks!
#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
#include <timer.h>
Timer tm;
namespace DcsBios {
class SwitchMultiPosBCD : PollingInput {
private:
const char* msg_;
const byte* pins_;
char numberOfPins_;
char lastState_;
 char readState() {
   unsigned char i;
   unsigned char state = 0;
   for (i=0; i<numberOfPins_; i++) {
     unsigned char j = numberOfPins_ - i - 1;

//     state |= (digitalRead(pins_[i]) << j);
state |= ((digitalRead(pins_[i]) ^ 1) << j); // to invert logic
   }
   return state;
 }

 void pollInput() {
   char state = readState();
   if (state != lastState_) {
     char buf[7];
     utoa(state, buf, 10);
     if (tryToSendDcsBiosMessage(msg_, buf))
       lastState_ = state;
   }
 }

public:
SwitchMultiPosBCD(const char* msg, const byte* pins, char numberOfPins) : lastState_(0) {
msg_ = msg;
pins_ = pins;
numberOfPins_ = numberOfPins;
unsigned char i;
for (i=0; i<numberOfPins; i++) {
pinMode(pins[i], INPUT_PULLUP);
}
lastState_ = readState();
}
};
}
//Mode-1 Wheel 1 ROTARY ENCODER
const byte iffMode1Wheel1Pins[3] = {27, 26, 25};
DcsBios::SwitchMultiPosBCD iffMode1Wheel1("IFF_MODE1_WHEEL1", iffMode1Wheel1Pins, 3);
//Mode-1 Wheel 2 ROTARY ENCODER
const byte iffMode1Wheel2Pins[2] = {23, 24};
DcsBios::SwitchMultiPosBCD iffMode1Wheel2("IFF_MODE1_WHEEL2", iffMode1Wheel2Pins, 2);
//Mode-3A Wheel 1 ROTARY ENCODER
const byte iffMode3aWheel1Pins[3] = {56, 55, 54};
DcsBios::SwitchMultiPosBCD iffMode3aWheel1("IFF_MODE3A_WHEEL1", iffMode3aWheel1Pins, 3);
//Mode-3A Wheel 2 ROTARY ENCODER
const byte iffMode3aWheel2Pins[3] = {58, 59, 60};
DcsBios::SwitchMultiPosBCD iffMode3aWheel2("IFF_MODE3A_WHEEL2", iffMode3aWheel2Pins, 3);
//Mode-3A Wheel 3 ROTARY ENCODER
const byte iffMode3aWheel3Pins[3] = {62, 63, 64};
DcsBios::SwitchMultiPosBCD iffMode3aWheel3("IFF_MODE3A_WHEEL3", iffMode3aWheel3Pins, 3);
//Mode-3A Wheel 4 ROTARY ENCODER
const byte iffMode3aWheel4Pins[3] = {66, 67, 68};
DcsBios::SwitchMultiPosBCD iffMode3aWheel4("IFF_MODE3A_WHEEL4", iffMode3aWheel4Pins, 3);
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
polling error.txt
}

This error is actually in your sketch as you are extending dcsbios and creating a new control SwitchMultiPosBCD.  As such, we were unable to update your sketch when the PollingInput interface changed.  I'm thrown by the name "Switch" but also "BCD".  DCS-BIOS has supported BcdWheel which I suspect you want to use instead of a hand-spun class.  But if you want to fix it in place, I suspect all you need is to change class SwitchMultiPosBCD : PollingInput { to class SwitchMultiPosBCD : PollingInput(POLL_EVERY_TIME) {

I did try to use the following without the addtional code, but it did not seem to update correctly. Am i doing something wrong?
const byte iffMode1Wheel1Pins[3] = {27, 26, 25};
DcsBios::BCDWheel iffMode1Wheel1("IFF_MODE1_WHEEL1", iffMode1Wheel1Pins, 3);

This builds, give it a try and let me know if it works.:
`#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
//Mode-1 Wheel 1 ROTARY ENCODER
DcsBios::BcdWheel iffMode1Wheel1("IFF_MODE1_WHEEL1", 27, 26, 25);
//Mode-1 Wheel 2 ROTARY ENCODER
DcsBios::BcdWheel iffMode1Wheel2("IFF_MODE1_WHEEL2", 23, 24);
//Mode-3A Wheel 1 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel1("IFF_MODE3A_WHEEL1", 56, 55, 54);
//Mode-3A Wheel 2 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel2("IFF_MODE3A_WHEEL2", 58, 59, 60);
//Mode-3A Wheel 3 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel3("IFF_MODE3A_WHEEL3", 62, 63, 64);
//Mode-3A Wheel 4 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel4("IFF_MODE3A_WHEEL4", 66, 67, 68);
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
}`

Sorry for late reply. I have been sick with flu. (not covid)
I tried this code. Using same ports as my other code, but the wheels seem to be bouncing around, and not it order.
I am using with DCS-BIOS v0.7.45 , dcs-bios-arduino-library-0.3.8
Am I missing something? I’m following instructions in DCS-BIOS-Flightpanels
From: Talbot @.>
Sent: Wednesday, March 1, 2023 6:11 PM
To: DCSFlightpanels/dcs-bios-arduino-library @.>
Cc: Bob Marino @.>; Author @.>
Subject: Re: [DCSFlightpanels/dcs-bios-arduino-library] Polling Issue when using latest version of DCS-BIOS v0.3.8 (Issue #42)
This builds, give it a try and let me know if it works.:
`#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
//Mode-1 Wheel 1 ROTARY ENCODER
DcsBios::BcdWheel iffMode1Wheel1("IFF_MODE1_WHEEL1", 27, 26, 25);
//Mode-1 Wheel 2 ROTARY ENCODER
DcsBios::BcdWheel iffMode1Wheel2("IFF_MODE1_WHEEL2", 23, 24);
//Mode-3A Wheel 1 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel1("IFF_MODE3A_WHEEL1", 56, 55, 54);
//Mode-3A Wheel 2 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel2("IFF_MODE3A_WHEEL2", 58, 59, 60);
//Mode-3A Wheel 3 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel3("IFF_MODE3A_WHEEL3", 62, 63, 64);
//Mode-3A Wheel 4 ROTARY ENCODER
DcsBios::BcdWheel iffMode3aWheel4("IFF_MODE3A_WHEEL4", 66, 67, 68);
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
}`
—
Reply to this email directly, view it on GitHubhttps://github.com/DCSFlightpanels/dcs-bios-arduino-library/issues/42#issuecomment-1451008534, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A56F2NOMTNJSE2BJKTTSD4LWZ7JR5ANCNFSM6AAAAAAVMHMQTQ.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>MASCON LEGAL NOTICE: This email and its attachment(s) may be subject to restrictions pursuant to the Arms Export Control Act (22 U.S.C. 2778); federal regulations, including, but not limited to, the International Traffic in Arms Regulations (22 C.F.R. 120, et seq.); and/or other federal laws. The export or other transfer of this email and/or attachment(s) outside of the United States or to a non-U.S. person, wherever located, in any form, may require a license or other authorization from the U.S. government and is prohibited without prior written authorization from Mascon, Inc. Violations may be punishable by criminal and/or civil penalties. Mascon, Inc. does not provide legal advice. Please consult your own legal counsel regarding these issues.
Mascon法律声明：本邮件及其附件可能会受武器出口控制法的限制（22 U.S.C. 2778）；联邦法规的限制，包括但不限于国际武器运输条例（22 C.F.R. 120 et seq.）；和/或其他联邦法律的限制。导出或转发此邮件和/或附件至美国境外或至非美国人，无论在何处及以任何形式，可能需要获得美国政府的许可或其他授权，任何未经Mascon事先书面授权的邮件境外发送行为将可能受到刑事和/或民事的处罚。至于何种邮件发送行为会构成上述受到政府法律控制或对Mascon 公司的侵权行为, Mascon公司不提供法律意见。请向您的法律顾问咨询。
Mascon法律聲明:本郵件及其附件可能會受武器出口控制法的限制(22 U.S.C. 2778);聯邦法規的限制,包括但不限於國際武器運輸條例(22 C.F.R. 120 et seq.); 和/或其他聯邦法律的限制。導 出或轉發此郵件和/或附件至美國境外û

How should it be wired? I have 0,1,2  assigned to Arduino ports, along with Ground. Only whee4 seems to be working BUT, it's being reported as Wheel3 that is moving. None of the other wheels seem to be working.


fix version 1.59.0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

LGTM! thanks for working on that @rxm7706


Complex Projects

Hello. I have been using sublime daily for the last ten years, but lately been wanting to switch to something open source, I have had my eye on lite, and when i discovered this -xl fork, it feels like it is time to make the switch.
The feature I think sublime does better then any other editor is the project management, I was hoping that i could achieve something close with lite.
As I understand the projects in lite is just a specific directory/folder. While in sublime a project is made up from a project declaration in JSON:
{
	"folders":
	[
		{
			"binary_file_patterns":
			[
			],
			"file_exclude_patterns":
			[
			],
			"folder_exclude_patterns":
			[
			],
			"follow_symlinks": true,
			"name": "Notes",
			"path": "~/dox/not"
		},
                {
			"follow_symlinks": true,
			"name": "Pictures of cats",
			"path": "~/pix/cats"
		}
	],

  "settings": {
    "line_numbers": false,
  },
}

The project in the example above have two directories (~/dox/not and ~/pix/cats) the optional "name" property just set the display name in the sidebar for the directory. The important difference is that a project can have include multiple directories. It would f.i. be really useful to have a "lite" project with the directories ~/.config/lite-xl and /usr/share/lite-xl included.

So my question/issue/request here is: Is it possible to have something like this in lite? I don't have that much experience with Lua, but i thought i could try hack together something.

Thank you for the suggestion, it looks very interesting to me and I am sure we will have that in the 1.15 release.
Like you I migrated from Sublime Text because I wanted something open source. Lite is a super cool project, thanks to rxi, and it was compelling to me to jump in the wagon beginning with the font rendering improvement.
Closing this small digression and talking about the project stuff, I thought to something like that but I didn't have a very clear idea about the details. I think we can go with your proposition, just using Lua for the project file configuration. Probably the functionality of the "Project Module" (see https://github.com/franko/lite-xl/blob/master/doc/usage.md) should be integrated there with something like "script to be executed when loading the project".
I think I will start hacking about that soon. If you want to begin and have fun with this you may start looking at data/core/init.lua and the "project_scan_thread" function. The main roadblock I think is that Lite is architectured around the idea:
"chdir in the project directory and work from there"
but probably we have to depart a little bit from this approach.

sweet! With sublime i have also used two extra packages to get even better project management:
ProjectManager, the best feature it adds is to store all project files in a central location in contrast to storing the files in the directory where the project started. As an example lets say i have two single directory projects:
~/.config/mpv
~/git/i3ass

With vanilla sublime, the projectfiles would be stored as:
~/.config/mpv/mpv.sublime-project
~/.config/mpv/mpv.sublime-workspace
~/git/i3ass/i3ass.sublime-project
~/git/i3ass/i3ass.sublime-workspace

And this is imo bad practice, especially when it is a public git repositories and stuff, one probably don't want the project settings included. The workspace files holds information about the project such as openfiles and cursor positions. With ProjectManager all these files are stored in ~/.config/sublime-text-3/Packages/User/Projects/ instead . I also believe that the content of that directory is parsed when i bring up the menu to switch projects in sublime, and it also becomes easy to remove and rename projects since it's just a matter of deleting or renaming the files in the known location. (which can be done manually or within the editor with custom commands).

the other package I use in conjunction with projectmanager is iOpener. Which is used to open files, but with the native sublime UI instead of the filepicker. However if a directory is chosen instead of a file, that directory will get added to the current project (simply adding an entry to the JSON file). I have also tweaked it a bit so that if I use iOpener to add a directory when no project is open, it will create a new project and with the same name as the directory.

as I understand lite currently doesn't create any "project files"/modules (.NAME_project.lua) if no customization is done to the project. And that's better since it doesn't clutter the directories. But if one would add custom settings, the file needs to be(?) in the same directory as the project is referring. If the ability to add multiple directories to a project is implemented, more project files will need to get created.

I propose all project module files should get created in XDG_CONFIG_HOME/lite-xl/projects. But if a project module exist in another directory i guess they should have priority if that directory is used as the current project.

Done with the new release, 1.15. Please test, as it is a complex feature all feedback is welcome.

Done with the new release, 1.15. Please test, as it is a complex feature all feedback is welcome.

Hello, sorry for the late reply, I haven't had time testing this out until now.
Switching projects is amazingly smooth, i have to say, and the things that could be improved is imo mostly aesthetics and linguistic things.
Or maybe the most important thing that i find a bit awkward is that the projects are bound to a "folder", i would rather have it so that folders and projects where not really related. It should be possible to have a project called just "config", without it having any "folder" named "config" if you see what i mean.
The issue with its current state is actually present immediately on the first launch of lite, at least on my system it uses the home directory as the "base" project. My home directory contains well over 10 000 files and since lite-xl has a set cap for 2000 files max per project (i know it can be changed), it will display the home directory and it's first child directories , but when i try to expand them nothing happen.
Then i add a new directory to my project folder (?), let's say ~/.config/lite-xl and i realize, that having the home directory included is just a bad idea, but i cannot remove it from the project since the project in a way, is the home directory and every added directory to the project is additional directories to the home directory project folder.
If instead projects where created based on a stand alone declaration, in sublime it's a json file, and the name of the file is the name of the project (my-project.sublime-project), in that file one can add and remove any directories. This system has the benefit that the project files could be stored in any folder, and when  a folder containing such a project file is being passed as an argument (lite my-folder) the project file would automatically get loaded. But you could also store project files anywhere and open the project files directly with the same effect (i prefer this).
And related is the choice of wordings, the actions core: add/remove directory is a bit awkward since in most other instances in lite, directories are called folders. And it gets even more confusing with the action: core: change project folder ...
Maybe something like this is more consistent:
Core: Add Directory   ->  Core: Add folder to project
Core: Change Project Folder  ->  Core: Change Project   OR  Core: Switch Project
Core: Open Project Folder  -> Core: Open Project In New Window

And as mentioned in a previous comment, Core: Open File could be used to also add folders/directories to a project (if a directory is chosen instead of a file).
An action that i also think is a good idea to implement is Core: Close Project, this should clear the project and open files and display the welcome screen. This makes it really easy to create new projects from there.

But as I first say, it feels extremely smooth and fast to switch between the projects, even faster then sublime, and that is the most important thing imo. The quirks and naming of commands, anyone can get used to. And since I compare it to my previous workflow i see anything that is different, someone starting from scratch so to speak might not even notice it.
Thank you so much for the feature franko. BTW, I just published a first impression video on my youtube channel: https://youtu.be/h0hr6W5eWCk

Hi,
thank you for your feedback there, I think tit is very helpful to improve lite-xl.

The issue with its current state is actually present immediately on the first launch of lite, at least on my system it uses the home directory as the "base" project. My home directory contains well over 10 000 files and since lite-xl has a set cap for 2000 files max per project (i know it can be changed), it will display the home directory and it's first child directories , but when i try to expand them nothing happen.

It is technically difficult to index very big directories without using a lot of memory and slow down the editor. I didn't invest a lot of effort to improve this corner case, i.e. opening something like the HOME directory, because lite-xl is not supposed to be used like this. Lite-xl index all the files of your project and keeps the list in memory.

Then i add a new directory to my project folder (?), let's say ~/.config/lite-xl and i realize, that having the home directory included is just a bad idea, but i cannot remove it from the project since the project in a way, is the home directory and every added directory to the project is additional directories to the home directory project folder.

Hmm, not sure I understand but you are using it in a strange way and I agree that naming is confusing because folder and directories means essentially the same thing.

If instead projects where created based on a stand alone declaration, in sublime it's a json file, and the name of the file is the name of the project (my-project.sublime-project), in that file one can add and remove any directories. This system has the benefit that the project files could be stored in any folder, and when a folder containing such a project file is being passed as an argument (lite my-folder) the project file would automatically get loaded. But you could also store project files anywhere and open the project files directly with the same effect (i prefer this).

This thing I understand and I agree it could be nice. The only thing that I don't see clearly is the workflow. You should create a new project from the editor and then save it as a file ? The problem is that the concept of "open a project directory" and "create a project" overlaps and its not clear to me what could be workflow which is natural for a typical user.

And related is the choice of wordings, the actions core: add/remove directory is a bit awkward since in most other instances in lite, directories are called folders. And it gets even more confusing with the action: core: change project folder ...
Maybe something like this is more consistent:
Core: Add Directory   ->  Core: Add folder to project
Core: Change Project Folder  ->  Core: Change Project   OR  Core: Switch Project
Core: Open Project Folder  -> Core: Open Project In New Window

One hundred percent agree with you. I felt that the name was confusing but I wasn't able to find anything better. I think I can adapt you suggestion.

And as mentioned in a previous comment, Core: Open File could be used to also add folders/directories to a project (if a directory is chosen instead of a file).

Just wondering if this is not confusing for the users. A file and a directory are different things and if "open file" can means "open a directory" seems a little bit confusing to me.

An action that i also think is a good idea to implement is Core: Close Project, this should clear the project and open files and display the welcome screen. This makes it really easy to create new projects from there.

The problem is that lite-xl doesn't have the concept of not having a project open. May be I should implement a mode where there is no open project. It could be more clear and useful for example to open a single file.

But as I first say, it feels extremely smooth and fast to switch between the projects, even faster then sublime, and that is the most important thing imo. The quirks and naming of commands, anyone can get used to. And since I compare it to my previous workflow i see anything that is different, someone starting from scratch so to speak might not even notice it.
Thank you so much for the feature franko. BTW, I just published a first impression video on my youtube channel: https://youtu.be/h0hr6W5eWCk

Thank you, you video is very interesting. I didn't find the time to watch it till the end but I already watched the first part and is very interesting to me. When someone else use your software it is always surprising because it always use it is a way you didn't think about and notice things you didn't notice.
To resume:

I am ok to change the name of the commands as you suggested, thank you for the suggestion
for the "explicit project stuff" I am open to your suggestion but I would like to see how the workflow of usage should be and how it overlaps with the simple concept of "opening a directory".
as for the HOME directory I am not inclined to work on that because this is not a normal use case for lite-xl. May be the concept of not having a project directory open can be useful to avoid opening HOME because of a misunderstanding.

regarding explicit project stuff:
I can make (a much shorter, and unlisted) video demo of what i mean here. since I have the functionality in sublime, i can show them side by side and I think it will become clear.
Regarding open directory with open file command:
Yes, it is a somewhat confusing concept, but it is surprisingly intuitive to use. Also with the command "Core: Open File" as it is now, if the user selects a directory instead of a file, nothing happens, that is somewhat confusing as well. Sure if it was done by mistake, which could happen, that a direcory is chosen, then doing nothing makes sense. But if a directory is consciously, I think that adding the directory to the project/open directory as a project is probably what one would want. Since this action already exist as "Core: Add directory to project", I think that in the documentation for that command it could be stated (if my suggestion applies) that this action can also be achieved by selecting a directory with "Core: Open File". The benefit is that you can use the same command/keybinding for the same thing. And I have found myself often first setting out to open a file, but while typing the path, realizing that i should add the whole directory containing the file to the project instead.
Regarding HOME directory and blank project:
I think you misunderstood me a bit, I think that the project cap is a good thing, and I know how much too large projects will slow down the editor. The problem was more that the Home directory was automatically set as my first project. And it would make a lot more sense to initially (on first run) start lite-xl with an empty project.

Regarding folder/directory:
They are the exact same thing. I am pretty sure it was Microsoft who started calling the directory abstraction "folder". On linux and similar operating systems it is supposed to be directory everywhere. But "folder" is generally accepted and only hard core UNIX neckbeards get offended when the f-word is used. With many applications being cross-platform, it doesn't really make sense to use both, and I think you should stick to folder everywhere. I also think that "directory" is a lot more confusing to a windows user, then "folder" is to a linux user.
With that said, I always refer to the directories on my own computer as directories, because they are.

Ok, I made the video, but it got longer then i thought it would (~45 minutes), sorry:
https://youtu.be/dcKPO5b7z0s

It says that video is private and I have no access.

your too fast! I just delayed the publish of it for 10 minutes ( if i don't do this, sometimes the "HD" version isn't available for the first viewers). But now it should be public, and I think the HD version is rendered as well.

I watched most of the video, don't have time right now to finish but I think I got the idea. Actually there are many more things you are suggesting like:

when open file, if you choose a directory add it to the project (I am ok with that, you convinced me with your video)
when open file, start from the name of the current opened file, ok, very practical
when open file, if doesn't exist open it anyway with the given name, ok, we must have that
when open file, create all the directories if needed, ok, very useful
when selecting a file from treeview open in a "ephemeral" tab, ok with that, just we don't have italic font in lite-xl for the moment :-)
when open a file, if it is not inside one of the directory add it to the project (it means you can add also files to the project), I am okay with that but it is this behavior what you meant or I misunderstood ?

I am sure I am missing other things you suggested, please add them if you want to.
For the project stuff, I got an idea about how to reconcile the current lite-xl approach with the project approach. The current approach of lite-xl is: just sit on the project directory and that's it. You may add other directory but the project "is" the "directory" in some sense.
To reconcile them we can transition to this workflow:

when you just open a folder in lite-xl in reality you are in a project that contains only directory you opened. It is an ephemeral project since it is not saved in the disk and has no name. An user may not know he(she) is using a project.
you can add directories to the project as you explain, even if the project is "ephemeral"
at any point you can save the project with an explicit command and then you give a name to the project and it is saved on the disk. Now it is no longer ephemeral.
you can always open a folder as usual, it will open an ephemeral project, or you can open a project choosing from the already existing ones. They are two distinct operations.

One thing to solve:
currently lite-xl chdirs in the project directory and work from there. It always has a project directory. You can add other directories but the project directory is "special".
Now with the project approach all the directories you have in your project are "equal", no one is privileged.
To reconcile the two approaches may be we have to adopt in lite-xl the project approach and consider all the directories to be "equal" and don't chdir in any of the directory. As an alternative, the project file may have a "working directory" you chdir in and appears explicitly in the project file. The problem is that now it has almost no meaning because what really matters are the directories you have in the project.
So, we have a lot of little improvements, the list above, and the project stuff which is more "complex" to implement. For the projects most ingredients are already there but it requires to re-architecture a few aspect especially because "project" != "directory" now and there is no main directory we chdir in.
All this will take time to implement especially because I don't have a lot of spare time at this moment but if we keep the "cap" I thing the ergonomic of lite-xl will just to an higher level. Thank you for taking this time and for the video!

Yeah, that is typical budlabs, i'll make a compact short version focusing only on the project switching... Makes a video that is 2 minutes shorter, with just as many side tracks as the first.

So, we have a lot of little improvements, the list above, and the project stuff which is more "complex" to implement.

Yeah, the small improvements and tweaks, i think will be very easy to implement now that I know a bit how the source is organized. But I don't think the larger more complex restructure thing will be too crazy either, it feels like most parts are there, a bit of moving stuff around.
In one way I guess i propose two major redesigns, that are somewhat connected and dependent of each other:

Making the projects independent from directories
Open file on steroids

And I think that you are right about most people will never realize that they are in a project its an important thing to keep in mind while doing this. The, by far largest usergroup, will use and start projects by starting lite with a directory as an argument. So things should be designed not to confuse or clash with that workflow.
I will gladly help out with the implementation of this stuff.
I think i will take some time tonight, trying to break up the different points into separate issues here on github.

Thanks, I am really glad to have your help but please do not create a ton of issues for each point! Create instead a document in the Wiki or something like this.

Ok. personally i think many small issues isn't an issue ;). It is unfortunate that microsoft github calls the thing "issues" and not tickets or something. Still I think it is worthy at least some issue separation:

#39 Inconsistent widgets (which i already have made)
Project refactoring, which i guess could be this thread
Open File on steroids
"ephemeral" tab
additional font styles (italics/bold)

Issues on github are kind of neat since one can "assign" issues to different contributors :wink: , and it is something to "cross off the list" when done, further you can set priority with labels and stuff and reference issues in other issues and PRs.
Another GitHub feature i never really used is, ironically, "projects", I suspect it could be useful for the project refactoring issues.
Don't worry too much about gathering too many issues. It is a thing, but what is important is that there aren't too many open issues, and especially issues not replied to (like og lite), so I will close the issue I opened about title format, since it is now resolved.

If you like issues make them as you please but don't forget that there are no other contributors except you and me. It's not like we have a team and assign issues to a person from the team :-)
And sometimes its more effective to code something straight away instead of creating tickets and stuff like this. Even if you just begin with a small thing you can create a branch with a meaningful name and it will be shared on github.

two persons is a team. I have a organization here on github @budlabs , with only one member, me. I both write and assign issues to my self, sometimes i even solve them. They are good as reminders on tasks needed to be done, and I guess its a good habit (i haven't really practiced it myself), to try first resolving lingering issues before creating new features (and issues ;).
Also even if we at the moment are only two, it is still useful knowing if a task is assigned to the other, otherwise one might start doing something that is already in progress somewhere else and stuff.
With all that said, i am terrible at this stuff, i mostly just start hacking on something, forgetting to commit at all during the whole process, seldom finish what i started. But when i see an issue I've made, i can say: At least i wanted to try ;)

Not sure if this deserves its own issue, but I use the side-by-side view on VSCodium a lot, it would also make sense for complex projects to have this ability :).


Help with implementing the latest dreamerv2

I have implemented dreamerv2's current tensorflow code here. Your code helped a lot for the parts of tf which can't be directly translated 1-1. I tried to keep the torch code as faithful to the tensorflow implementation as possible. The model starts training, but after 20k steps the return gradually drops instead of going up. I tried cheetah and cartpole_swingup environments upto 100k steps on few seeds. I also tried comparing all the curves with the tensorflow results, most of them looks similar. The world model, actor and critic loss goes down, grad norms are not crazy. I will try to attach some logs soon.

Hi, I'm new to the implementation of dreamerv2, and I'm thinking about using your code for futher research. Does the problem of agent return decreasing after 20k steps still exist?

I fixed it, it was a trivial but hard-to-detect bug where torch.Tensor didn't preserve dtype of numpy array leading to the inputs not being normalized while stepping through the policy. It should work now. Please test with few environments, I checked with cartpole.


Azure Communication Services Insights setup and workbook

Initial setup and overview workbook for Azure Communication Services Insights tab. Added directories and JSON files following the indications and naming conventions here and here.
Also added an entry to the CODEOWNERS file for ownership of directory /Workbooks/Communication*Services by team @microsoft/acs-data

PR Checklist

[X] Explain your changes, so people looking at the PR know what and why, the code changes are the how.

If adding or updating templates:

[X] post a screenshot of templates and/or gallery changes
[X] ensure your template has a corresponding gallery entry in the gallery folder
[X] If you are adding a new template, add your team and template/gallery file(s) to the CODEOWNERS file. CODEOWNERS entries should be teams, not individuals
[X] ensure all steps have meaningful names
[X] ensure all parameters and grid columns have display names set so they can be localized
[X] ensure that parameters id values are unique or they will fail PR validation (parameter ids are used for localization)
[X] ensure that steps names are unique or they will fail PR validation (step names are used for localization)
[X] grep /subscription/ and ensure that your parameters don't have any hardcoded resourceIds or they will fail PR validation
[X] remove fallbackResourceIds and fromTemplateId fields from your template workbook or they will fail PR validation

Hi @microsoft/applicationinsights-devtools could we get a time frame to get a review on this? We are on a public preview deadline

Here are some additional screenshots:

Looks good, just a couple of comments


Adding trackedProperties leads to logic app still to running status in Logic Apps Management solution

My use case is just like the seond step in the blog 2.Edit the code view of the logic app, added a tracked properties tag and saved it, adding trackedProperties --triggerBody()?['propertyName'] leads to logic app still to running status in Logic Apps Management solution, however the logic app is actually finished.

The value of trackedProperties can't be find in log search blade of log Analytics.

First the OperationName Microsoft.Logic/workflows/workflowRunsCompleted can't be found in the excution list(logic app logs of one run).

AzureDiagnostics | where Category == "WorkflowRuntime"
| where OperationName contains "Microsoft.Logic/workflows"
| where resource_workflowName_s =="XXXXXXXXXXXXXXXXXX"
| where resource_runId_s == "XXXXXXXXXXXXXXXXXX"
| project  ResourceType, OperationName, status_s, resource_runId_s

Second the OperationName Microsoft.Logic/workflows/workflowActionStartedand Microsoft.Logic/workflows/workflowActionCompleted are not return(logic app action logs)

AzureDiagnostics | where Category == "WorkflowRuntime"
| where OperationName contains "Microsoft.Logic/workflows"
| where resource_workflowName_s =="XXXXXXXXXXXXXXXXXX"
| where resource_actionName_s == "XXXXXXXXXXXXXXXXXX"
//| where resource_runId_s == "XXXXXXXXXXXXXXXXXX"
| project ResourceType, OperationName, status_s,resource_runId_s

However the trackedProperties property could be found in the Azure Resource Explorer, the actual Azure Rest API is Workflow Run Actions - Get

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

ID: a1a1a0ec-679d-ef82-2b6f-b6dad27c9eb0
Version Independent ID: 3d72d0e4-7ecb-fc36-0112-e5f216950523
Content: Check status, set up logging, and get alerts - Azure Logic Apps
Content Source: articles/logic-apps/logic-apps-monitor-your-logic-apps.md
Service: logic-apps
GitHub Login: @divyaswarnkar
Microsoft Alias: divswa

Meanwhile, I think the documentation for trackedProperties is too much general, what about the restrict of the authoring the trackedProperties. for eaample, I found triggerBody() and action() could be used, but variables() can't. I think tech details of it should be put into documentation.
Error details found in the Azure Resource Explorer
"status": "Failed",
    "code": "TrackedPropertiesEvaluationFailed",
    "error": {
      "error": {
        "code": "TrackedPropertiesEvaluationFailed",
        "message": "Failed to evaluate the tracked properties for action 'Initialize_variable_(SumUp)'. Error details: 'The template function 'variables' is not expected at this location.'."
      }
    }

@ToMakeSense Thank you for your feedback! We have assigned this issue to the author to review further and take the right course of action.

Add another problem related to the "Logic Apps Management solution", Pinning it to the dashboard cannot display well.

But, it actually looks OK when check it in Log Analytics workspace. This problem has occurred for some time.

@ToMakeSense, could you please respond to Divya's question? Thanks!

@divyaswarnkar, any ideas about the other questions that @ToMakeSense had?
Meanwhile, I think the documentation for trackedProperties is too much general, for example:
* What about the restrict of the authoring the trackedProperties. I found triggerBody() and action() could be used, but variables() can't.
* Is trackedProperties available for all actions? I found the trackedProperties is not available for trigger action at least in the Azure portal designer view.
I think this kind of tech details should be put into documentation.

@divyaswarnkar, could you comment? I'd like collect the necessary info, so that I can get this work on the backlog. Thanks!

Yes we should update the docs on the other feedback

@ecfan @divyaswarnkar It's consistent issue not a one off observation under my company's subscription. However, I found the issue is much more complex than I thought after creating a demo logic app in my personal subscription to reproduce.
In my demo logic app, I found it had a very little chance to reproduce within 22 times retry. just for the first time, it happened. Not sure if it's happened by chance or traffic(workloads) sensitive or caused something else, as it's obvious, my personal Log Analytics had very little traffic.

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Initialize_variable:_trigger(Object)": {
                "inputs": {
                    "variables": [
                        {
                            "name": "trigger",
                            "type": "object",
                            "value": "@trigger()"
                        }
                    ]
                },
                "runAfter": {
                    "Initialize_variable:_triggerBody(String)": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "Initialize_variable:_triggerBody(String)": {
                "inputs": {
                    "variables": [
                        {
                            "name": "triggerBody",
                            "type": "string",
                            "value": "@{triggerBody()}"
                        }
                    ]
                },
                "runAfter": {},
                "type": "InitializeVariable"
            },
            "Response": {
                "inputs": {
                    "body": "@triggerBody()",
                    "statusCode": 200
                },
                "kind": "Http",
                "runAfter": {
                    "Initialize_variable:_trigger(Object)": [
                        "Succeeded"
                    ]
                },
                "trackedProperties": {
                    "input": "@triggerBody().['input']"
                },
                "type": "Response"
            }
        },
        "contentVersion": "<IP_ADDRESS>",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "method": "POST",
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    },
    "parameters": {}
}

Above is the logic app definition I used, I found the header Content-Type is needed in order to get trackedProperties working, it's another find. See examples below:
1. Http request without Content-Type header
POST https://prod-XXX.locationName.logic.azure.com:443/workflows/XXXX/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=XXX

{
    "input":{
        "name": "variable",
        "type": "String",
        "value": "12345678"
    }
}

Response from rest client (Content-Type: application/octet-stream)
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 98
Content-Type: application/octet-stream
Expires: -1
x-ms-workflow-run-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-correlation-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-client-tracking-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-trigger-history-name: XXXXXXXXXXXXXXXXXXXXXX
x-ms-execution-location: XXXXXXXXXX
x-ms-workflow-system-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-version: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-name: XXXXXXXXXXXXXXXXXXXXXX
x-ms-tracking-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-ratelimit-burst-remaining-workflow-writes: 14999
x-ms-ratelimit-remaining-workflow-download-contentsize:<PHONE_NUMBER>
x-ms-ratelimit-remaining-workflow-upload-contentsize:<PHONE_NUMBER>
x-ms-ratelimit-time-remaining-directapirequests: 99999847
x-ms-request-id: XXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Fri, 21 Feb 2020 15:29:12 GMT
Connection: close

{
  "input": {
    "name": "variable",
    "type": "String",
    "value": "12345678"
  }
}

Response Action outputs in Resource Explorer
    "code": "TrackedPropertiesEvaluationFailed",
    "error": {
      "error": {
        "code": "TrackedPropertiesEvaluationFailed",
        "message": "Failed to evaluate the tracked properties for action 'Response'. Error details: 'The template language expression 'triggerBody().['input']' cannot be evaluated because property 'input' doesn't exist. Property selection is not supported on content of type 'application/octet-stream'. Please see https://aka.ms/logicexpressions for usage details.'."
      }
    }

Response Action outputs in Resource Explorer(if I use triggerBody()?['input'] in the template)
    "trackedProperties": {
      "input": null
    },

Note that: the value of triggerBody() is base64 text in logic app view, you can check each action to find this fun fact out.
2. Http request with Content-Type header
POST https://prod-XXX.locationName.logic.azure.com:443/workflows/XXXX/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=XXX
Content-Type: application/json

{
    "input":{
        "name": "variable",
        "type": "String",
        "value": "12345678"
    }
}

Response from rest client (Content-Type: application/json; charset=utf-8)
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
x-ms-workflow-run-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-correlation-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-client-tracking-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-trigger-history-name: XXXXXXXXXXXXXXXXXXXXXX
x-ms-execution-location: XXXXXXXXXX
x-ms-workflow-system-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-version: XXXXXXXXXXXXXXXXXXXXXX
x-ms-workflow-name: XXXXXXXXXXXXXXXXXXXXXX
x-ms-tracking-id: XXXXXXXXXXXXXXXXXXXXXX
x-ms-ratelimit-burst-remaining-workflow-writes: 14999
x-ms-ratelimit-remaining-workflow-download-contentsize:<PHONE_NUMBER>
x-ms-ratelimit-remaining-workflow-upload-contentsize:<PHONE_NUMBER>
x-ms-ratelimit-time-remaining-directapirequests: 99999819
x-ms-request-id: XXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains
Date: Fri, 21 Feb 2020 15:47:01 GMT
Connection: close

{
  "input": {
    "name": "variable",
    "type": "String",
    "value": "12345678"
  }
}

Response Action outputs in Resource Explorer
    "trackedProperties": {
      "input": {
        "name": "variable",
        "type": "String",
        "value": "12345678"
      }
    },

Doc work item exists on backlog. #please-close


Convert figure element's xml:id attribute into ID anchor to enable linking to figures

Previously, links to figures were broken, because no ID anchor was being generated for figures. This fix extracts the value of the xml:id attribute from the figure element and uses it to generate an anchor, [[XmlId]].

This looks good. I have one request, though. Could you write the anchor as follows?
[#_sample_figure]

When there is no reftext, we want to encourage the use of the modern, shorthand syntax.
I'll also need you to rebase, if possible, since other merges introduced a conflict. Thanks!

@mojavelinux  I'll update the syntax and rebase the PR this evening. Should be ready for merging by tomorrow. Thanks for reviewing the PR!

Thanks @fbolton!
After that, I'll follow up on your other PRs as well. Thank you for your contributions to improve this converter!

Ping me in a comment when it's ready.


Add protection for larger chests

Add more types of protected chests.

Iron
Copper
Silver
Gold
Mithril

These are added with technic_plus it seems..  👍


[test] Migrate MobileStepper to react-testing-library

[x] I have followed (at least) the PR section of the contributing guide.

#22911

Suggested changes are done now

Working on the latest suggested changes now 👍

@devrasec It's a great first pull request on Material-UI 👌🏻. Thank you for working on it!

@devrasec It's a great first pull request on Material-UI 👌🏻. Thank you for working on it!

A pleasure!


Light filters have incorrect guides

Screenshot shows a PxrBarnLightFilter attached to a PxrDistantLight:

However, the guidelines extending from the PxrBarnLightFilter appear to be calculated incorrectly, and they are affected by rotation of the PxrDistantLight around its normal axis (which should have no effect on the light). The rendered results are not affected by this issue.
light-filter-bug.blend.zip

Thanks for the report. I can reproduce the issue, so will look into it.


Handle invalid snippets instead of panicking

This'll fix a panic encountered in rust-lang/cargo#5833

Thanks! Can we add a simple test for this? (I can do this later, if you don't have time)

Hm I appear to have lost the file in the meantime with the diagnostics. I'm not really familiar with where the diagnostic structure and this came deep from within weird macros and such, so I'm not entirely sure how best to test it per se (the json that came out was 2.1MB of diagnostic json)
Do you know where a test could easily be added though? I'm all for adding tests!

👍


Improve error message when unscheduling a previously unscheduled coroutine (Fixed #650)

…utine.
Unscheduling a coroutine is not idempotent and successive attempts likely indicate a test defect. The current error message is an unintentional artifact of the RunningCoroutine implementation.
#650

Before we go into the details, @pgfarley could you please fix the git commit in two places?

Please set your name and email address (https://help.github.com/articles/setting-your-username-in-git/).
Please keep the summary line (the first line in the commit message) below 50 characters. Please see this document for more details: https://github.com/potentialventures/cocotb/blob/master/CONTRIBUTING.md#patch-requirements

After you have set your name and email address, you can use git commit --amend --reset-author to fix the commit message and to apply the new username/email settings to the commit. You then need to use git push --force to update this PR.

For what it's worth, asyncio.Task.cancel() lets you (attempt) to cancel a task multiple times.
On the one hand, this might be justification for allowing kill to be called multiple times. On the other, we could introduce a .cancel member with different semantics to kill if the goal is to behave more like the standard library.

Given that this PR just makes existing behavior more explicit and easier to understand for the users, I'm in favor for merging this as-is, and discuss changes to the current behavior in an issue. @eric-wieser would that be OK with you?

Thanks for the review @eric-wieser please see #650 for the stack trace.

Careless of me not to see that. I think I've caused #650 by other means in the past though, so probably worth keeping that open even if this is merged

That's interesting. I rook a look at code that accesses _join on RunningCoroutine and it does look like you could pop a no attribute error if you for instance tried to Join(some_routine) after some_routine.kill(). Need to confirm with a test. The pull requests as committed covers @juliusbaxter case in #650 of an obfuscated and inadvertent repeated call to kill() but as long as unschedule() is going to remove the _join attribute the accessor itself really should be guarded with the informative TestError. I can take a look at that. Happy to amend this request, replace this request,  or submit an additional if you prefer to merge this as is.

I think the right fix here is to solve the GC problem via weakref, rather than by deleting attributes prematurely. I can take a look at this tomorrow.

weakref-based solution: #723

@pgfarley would you mind trying #723 in your setup to see if it solves the problem for you?

@imphil I'm not actually impeded by issue #650, was just picking up an issue flagged as Bug that seemed to need some root cause digging. This pull request was meant to be a minimal failing test and a do no harm improvement, but @eric-wieser #723 weakref is much better. Happy to have this closed unmerged.

Then let's do that.


fix: The "beeeep" is back 🔊

Hi everyone,
I don't really understand the issue here, because according to the doc, we should only open once an asset file and call stop / resume. But if I do the same by resetting the file every time, it now works 🤨

Codecov Report

Merging #4436 (ea4fef6) into develop (a5e1808) will increase coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##           develop    #4436   +/-   ##
========================================
  Coverage    10.17%   10.17%
========================================
  Files          295      295
  Lines        15093    15090    -3
========================================
  Hits          1535     1535
+ Misses       13558    13555    -3

Files Changed
Coverage Δ

packages/smooth_app/lib/pages/scan/scan_page.dart
2.15% <0.00%> (+0.06%)
:arrow_up:

...mooth_app/lib/widgets/smooth_product_carousel.dart
1.67% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Enhance Readme and outline limitations

The main project description (README) needs a major rewrite, to cover the following stuff:

Add a few screenshots to give a better guidance what the plug-in intends
outline the current limitations (100 commits, deprecated sign-in method, ...)
move feature list to release object
remove todos and add respective issues where necessary

@MartinBenninger

See issue 2
@MartinBenninger @Innerjoin

This project has been phased out a while ago. Anyone interested in integrating RTC with GitLab or GitHub should check out the RTC Git Connector project, which covers all the use cases of this repo plus many more.
If you feel like this issue is still relevant with what the RTC Git Connector aims to provide, feel free to open a new issue there


Integrate Visibility Archival into the system

Task 3 of https://github.com/uber/cadence/issues/2452

Archive visibility record when workflow closes
New Frontend API for querying archived records
Integration test for visibility archival

Advanced query API for archived visibility records will be added later.

Coverage decreased (-0.3%) to 66.996% when pulling 23ab80301d4abdfe4dfc09655ceaff9e4461776a on yycptt:visibility-archival into faec6e537f85b9923d8b7b3760903ffc9ea0d807 on uber:master.


Add support for localizing strings

This mainly wraps string literals with tr, and for global string literals QCoreApplication::Translate. This also changes the strings themselves to take arguments using the QString::arg function, instead of appending them manually.
In MemViewer::renderColumnsHeaderText you'll see that the calculation has been altered, which has been done to take the spacing in front of the string into account without including it in the string itself.

Took the liberty to resolve the remaining conflicts, idk you could do it with the web editor.

Oh, what was the conflict?


Race condition when setting up isolate addOnExitListener should be FIXED

If the spawnee terminates quickly the addOnExitListener will not have any effect.
This is completely broken. Please make sure OnExit listener will be executed despite the isolate has already terminated. Default behavior like this is really annoying.
//Lars
first.dart
=======
import "dart:isolate";

setup(port) async {
  await for (var msg in port) {
    print("Receiving in first: $msg");
  }
}

main() {
  ReceivePort port = new ReceivePort();
  setup(port);
  Isolate.spawnUri("./second.dart",[], port.sendPort).then((Isolate isolate) {
     RawReceivePort exit;
     exit = new RawReceivePort((_) {
        print("EXIT HANDLER");
        exit.close();
        port.close();
      });
      isolate.addOnExitListener(exit.sendPort);
  });
}

second.dart
=======
import "dart:isolate";

main(args, SendPort port) {
  port.send(42);
  port.send(1243);
}

I'm reluctant to change this. We could potentially make this work for addOnExitListener, but it wouldn't for addErrorListener, or setErrorsFatal.
The correct way is to spawn the isolate in a paused state (see Isolate.spawn).

This isn't the first time people have run into this. I'm aware of two others that brought this up.
So to help, we added some notes in the dartdocs: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:isolate.Isolate#id_spawn

It's currently documented on addOnExitListener, but it is annoying that it can fail in this way.
The package:isolate class IsolateRunner creates an isolate and starts out listening for errors and exit. It's more convenient than the core Isolate, which is very low-level (the API is based on you sending ports and handling the responses yourself).
One reason that it's not more elaborate is that it would necessarily be based on ports underneath anyway, and if we hide those ports, you will have hidden receive ports keeping your isolate alive.
If we had ports that didn't keep an isolate alive, we might be able to use those, but that could also be confusing.
I can probably add an "isAlive" on Isolate, which checks whether the control port's isolate is alive (or whether the port is open, which is the same thing). Then you could check first if the isolate is already dead, and only if not you send the onExit listener to it. That's still not safe enough - you get a race condition between checking it the isolate is alive and it receiving your message - delivery can take arbitrarily long and the isolate could die in-between.
The way things are structured, even delivering the message isn't enough if the isolate terminates after receiving the control message but before returning to the event queue.
So, the design is basically incredibly fragile because there is no guarantees on events being delivered and on delivered events being processed. The only way to be sure is to send the onExit listener, and follow up with a ping event. If you receive a response from the ping, then you are sure the onExit listener was added. Until then, maybe just check if the isolate is alive occasionally. At least the only problem then is a spinning isolate that never returns to the event loop.
I'll try adding the isAlive check. I think it's the best we can do without building full two-way communication channel (TCP on top of send-ports).

You can use the Isolate.spawn parameter onExit to set an exit message port when creating the isolate.


Custom styles as template

Fixes #180

This does not work out as I hoped. If custom-styles.js does not exist, it now throws an error, which is undesirable.
Closing this, as I do not plan to invest more time into this.


Clerk theme poc (WIP)

Description

Checklist

[ ] npm test runs as expected.
[ ] npm run build runs as expected.
[ ] (If applicable) JSDoc comments have been added or updated for any package exports
[ ] (If applicable) Documentation has been updated

Type of change

[ ] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[ ] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[ ] @clerk/backend
[ ] @clerk/chrome-extension
[ ] @clerk/clerk-js
[ ] @clerk/clerk-expo
[ ] @clerk/fastify
[ ] gatsby-plugin-clerk
[ ] @clerk/localizations
[ ] @clerk/nextjs
[ ] @clerk/clerk-react
[ ] @clerk/remix
[ ] @clerk/clerk-sdk-node
[ ] @clerk/shared
[ ] @clerk/themes
[ ] @clerk/types
[ ] build/tooling/chore

!preview

!preview

!preview

Hey @desiprisg, your preview is currently deploying and should be available shortly.

Status
Preview
Updated (UTC)

:cook: Deploying...
Inspect
Feb 01, 2024 03:44 PM

!preview

Closing this one in favor of #2753


Revert "Add RESTRICT_ON_SEND for RSpec/FactoryBot/ConsistentParenthesesStyle"

Reverts rubocop/rubocop-rspec#1461

Oops, I'll close the https://github.com/rubocop/rubocop-rspec/pull/1464 since there is a duplicate PR that reverts commit.
Thanks for the quick response.


How do I highlight "today" on the calendar? v12.6.0 upgrading to v15.1.0

Using an old version (v12.6.0), this CSS worked:
.CalendarDay--today {
	box-shadow: inset 0 0 2px 1px rgba(0,0,255,1);
	font-weight: bold;
}

To give this effect:

How can I do the same thing using a recent version?
I have searched and looked at the v13+ changes, but the answer does not seem obvious. Thanks!

Hmmm, it looks like this feature got removed by accident. Will add back!

This may have happened during the conversion to using withStyles.  Previously there was this:
const className = cx('CalendarDay', {
    'CalendarDay--outside': isOutsideDay,
}, Array.from(modifiers, mod => `CalendarDay--${mod}`));

And within modifiers is "today", so it would have set the class CalendarDay--today.

Put up a PR for a quick fix! :)

@majapw Thanks for the fast fix. It works for me (class changed to .CalendarDay__today).
Do you think there will be a release containing this sometime this week?

Yup! Working on a release right now :)

v15.2.0 is out! :D


improve readability of encoding profile templates

Reported by atze on 6 Jan 2014 23:48 UTC
introduce something like  to have a more compact structure, enabling things like:
-c:a mp2 -ac 2 -ar:a 48000

Modified by atze on 21 Sep 2014 22:20 UTC

Comment by atze on 21 Oct 2014 14:17 UTC
This will be implemented, together with #65, in a lightweight rewrite of exmljob.pl


fixFix wrong default value for char and varchar of reading json data

Proposed changes
Issue Number: close #xxx
If a column is defined as: col VARCHAR/CHAR NULL and no default value. Then we load json data which misses column col, the result queried is not correct:
+------+
| col      |
+------+
|    1      |
+------+
But expect:
+------+
| col      |
+------+
| NULL  |
+------+
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.41 seconds
stream load tsv:          511 seconds loaded<PHONE_NUMBER>9 Bytes, about 139 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.1 seconds inserted 10000000 Rows, about 343K ops/s
storage size:<PHONE_NUMBER>6 Bytes


Error handling for corrupted files.

How to handle corrupted files. How to check whether file is corrupted or unsupported file.

Thanks. I've added this to our backlog for review. Cheers :)


Can't run the jupyter sample

When i try to execute reactor.run() in the jupyter sample, i get the following error:
Unhandled Error
Traceback (most recent call last):
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/log.py", line 101, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/log.py", line 85, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/context.py", line 83, in callWithContext
    return func(*args, **kw)
--- <exception caught here> ---
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/posixbase.py", line 691, in _doReadOrWrite
    why = selectable.doWrite()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/tcp.py", line 614, in doConnect
    self._connectDone()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/tcp.py", line 642, in _connectDone
    self.protocol.makeConnection(self)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/protocols/tls.py", line 211, in makeConnection
    ProtocolWrapper.makeConnection(self, transport)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/protocols/policies.py", line 74, in makeConnection
    self.wrappedProtocol.makeConnection(self)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/protocol.py", line 508, in makeConnection
    self.connectionMade()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/endpoints.py", line 142, in connectionMade
    self._wrappedProtocol.makeConnection(self.transport)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/protocol.py", line 508, in makeConnection
    self.connectionMade()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/ctrader_open_api/tcpProtocol.py", line 21, in connectionMade
    self.factory.connected(self)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/ctrader_open_api/factory.py", line 11, in connected
    self.client._connected(protocol)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/ctrader_open_api/client.py", line 33, in _connected
    asyncio.run(self._connectedCallback(self))
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/asyncio/runners.py", line 33, in run
    raise RuntimeError(
builtins.RuntimeError: asyncio.run() cannot be called from a running event loop

Unhandled Error
Traceback (most recent call last):
  File "/tmp/ipykernel_6723/2480525364.py", line 4, in <module>
    reactor.run()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/base.py", line 1318, in run
    self.mainLoop()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/base.py", line 1331, in mainLoop
    reactorBaseSelf.doIteration(t)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/epollreactor.py", line 244, in doPoll
    log.callWithLogger(selectable, _drdw, selectable, fd, event)
--- <exception caught here> ---
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/log.py", line 101, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/log.py", line 85, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/python/context.py", line 83, in callWithContext
    return func(*args, **kw)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/posixbase.py", line 699, in _doReadOrWrite
    self._disconnectSelectable(selectable, why, inRead)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/posixbase.py", line 306, in _disconnectSelectable
    selectable.connectionLost(failure.Failure(why))
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/tcp.py", line 507, in connectionLost
    self._commonConnection.connectionLost(self, reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/tcp.py", line 325, in connectionLost
    protocol.connectionLost(reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/protocols/tls.py", line 394, in connectionLost
    ProtocolWrapper.connectionLost(self, reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/protocols/policies.py", line 113, in connectionLost
    self.wrappedProtocol.connectionLost(reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/internet/endpoints.py", line 161, in connectionLost
    return self._wrappedProtocol.connectionLost(reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/application/internet.py", line 467, in connectionLost
    self._lostNotification(reason)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/twisted/application/internet.py", line 660, in <lambda>
    self._factory, lambda _: self._clientDisconnected()
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/automat/_methodical.py", line 235, in _clientDisconnected
    (outputs, outTracer) = transitioner.transition(self)
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/automat/_core.py", line 157, in transition
    outState, outputSymbols = self._automaton.outputForInput(self._state,
  File "/home/sina/miniconda3/envs/strader/lib/python3.10/site-packages/automat/_core.py", line 137, in outputForInput
    raise NoTransition(state=inState, symbol=inputSymbol)
automat._core.NoTransition: no transition for MethodicalInput(method=<function _ClientMachine._clientDisconnected at 0x7f4d1e94f520>) in MethodicalState(method=<function _ClientMachine._connecting at 0x7f4d1e94e8c0>)

Connected

Disconnected:  [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionLost'>: Connection to the other side was lost in a non-clean fashion: Connection lost.
]

Please note that at the time of writing this issue, the market is closed. so maybe the NoTransition error is referring to that. but in any case i shouldn't get an unhandled error when I'm just trying to authenticate.
Maybe i would need to check my account balance or my open positions or submit a pending order in the market closed time and the fact that the market is closed shouldn't stop my application from sending such requests.

Update:
Turns out it had nothing to do with market close time. i had some dependency issues and i had to uninstall this package and all of it dependencies and install them again.
That solved my problem, so I'm closing this issue.


Setting 'inline-block' and 'relative' position on buttons with custom element

Control buttons always receive display: inline-block and position: relative regardless of whether an ID to a custom button has been provided:
https://github.com/openseadragon/openseadragon/blob/81a634a61845aac973cf6b7d00ee0dcbbaf968ea/src/button.js#L195
This potentially breaks the layout of custom styled button elements. If the user is specifying their own button elements, I think the appropriate behavior would be to not apply any style changes.

Yes, good point. Looks like if no custom button is provided, it already sets the position: relative. We'd want to add the display: inline-block to that area.
My only concern is finding a good migration path. It's possible people's code already assumes those styles are getting added to their custom buttons, so removing this will break them (a little bit). One option would be to add those styles unless a special parameter is given. That said, it would be nice to eventually move to this being the default, so I guess I'd love it if we could have a release where it's deprecated somehow and then the next one can have the change for real. What do you think?

Yep, that's an understandable concern. I think phasing the current behavior out over a release or two is a great idea (maybe with a deprecation warning logged to the console?). At the moment we're just working around this by selecting the elements and unsetting the display/position styles after init. Which isn't great, but it's far from critical.

Cool. Well, if you're up for making a patch for OSD, that would be lovely :)


Implement changes to titles

What
Make changes as per the review on ticket https://github.com/alphagov/govuk-prototype-kit/issues/1085
Why
Accessibility issue

At the moment, we set our documentation page titles all to "Documentation - GOV.UK Prototype Kit"
Instead, we'll need to hook into the markdown -> HTML conversion and generate unique titles there.
Looks like the Design System uses gray-matter to interpret "frontmatter" on their markdown files.
We could probably take a similar approach.

This will close #855


Support  dynamic persistent volumes

use marathon to launch multiple docker container instance from the same images on a host, like this:
{
"id": "/product/service/myApp",
"cpus": 1.5,
"mem": 256.0,
"instances": 3,
"container": {
"type": "DOCKER",
"docker": {
"image": "group/image"
},
"volumes": [{
"containerPath": "/etc/a",
"hostPath": "/var/data/a",
"mode": "RW"
}]
}
if they containers runing on the same host, they apps  will use the same path "/var/data/a".  that file will conflict. I don't want to use the constraints:UNIQUE. I want to get the only directory of each container. How do I do?

Hey @wplatform this is on our roadmap. The underlying  mechanism is described here: http://mesos.apache.org/documentation/latest/persistent-volume/

@aquamatthias Can you please tell me what's the status on this? Is this already usable with Mesos 0.26/Marathon 0.14? If not, what's the roadmap/timeline?
I have a running Ceph cluster on CoreOS with a working Docker volume plugin, but it's very unclear to me how this can be used with Mesos/Marathon... I can find no article/blog post/whatever that deals with the automated creation of these volumes via Marathon (also: how to scale if each instance of a stateful service need to have it's own volume?).
Thanks in advance!

@tobilg this feature is planned for Marathon 0.16 and is not available in prior versions.

@aquamatthias Thanks for the feedback. Is there already a timeline when 0.16 is planned? From the past releases, I guess this means 3-5 months from the 0.14 release...
To be honest, I really think this is a very important feature. I'd be very curious how Mesos/Mesosphere clients normally run stateful services... Sounds quite impossible to me at the current state. For us this might me a show stopper for Mesos/Marathon in the middle term. Persistent volumes are in the works since 2014, and no end in sight (at least for me, concerning the "front to back"-usability)...

+1, need to dynamic create volume before docker run

+1, need to dynamic create volume before docker run

the current workaround is to mount the parent volume to container, and then the app in container to create the sub-folder according to container's ip

Persistent Volumes will be available in Marathon 0.16. We released RC1 today, so try this out!

@aquamatthias I'm too lazy to open an issue, but link points to about:blank:

@aquamatthias Thanks a lot for adding this feature. If I understand the Persistent Volume docs correctly, then it's currently not possible to use Docker volumes which use plugin drivers, such as volplugin or rbd.
Is this assumption correct? If so, is it planned to add this in the future? If not, how can I use such volumes with Docker containers?
Thanks a lot in advance!

@bobrik good catch. The docs are currently in review here: https://github.com/mesosphere/marathon/blob/persistent-volumes-doc/docs/docs/persistent-volumes.md
Once merged the link will work.
@tobilg we are currently waiting for mesos 0.28 which will support persistent volumes in docker. Docker volumes with plugin drivers is not available right now. Please make a feature request on the Mesos JIRA.

I'm having a really tough time getting this to work.
http://stackoverflow.com/questions/36242383/mesos-slaves-reject-all-marathon-jobs-with-persistent-volumes-claims-no-space-a

@aquamatthias I just created an issue in the Mesos JIRA. If I can improve the description please let me know. Thanks a lot in advance.

Hi,
We have installed mesos 0.28.2 version and marathon 1.1.1 version. I am looking to launch instance with persistent local volume option. In my slave server i have installed docker engine and i have installed local persistent plugin and created the volume. From marathon i am able to launch instance if persistent volume created in slave server. Is there any possibility to create new persistent volume from marathon itself with new instance launch  instead of creating volume from slave server.

There are two types of "persistent storage": agent-local, and external. If
you want persistent storage NOT located on the same agent (on which the
related task is running) then you'll need to use some kind of external
volume. Marathon ships with support for the Mesos DVDI isolator that lets
you use docker volume drivers for creating external volumes on-demand
(works with both mesos and docker containerizers).
On Fri, Sep 2, 2016 at 8:12 AM, LiginGeorge<EMAIL_ADDRESS>wrote:

Hi,
We have installed mesos 0.28.2 version and marathon 1.1.1 version. I am
looking to launch instance with persistent local volume option. In my slave
server i have installed docker engine and i have installed local persistent
plugin and created the volume. From marathon i am able to launch instance
if persistent volume created in slave server. Is there any possibility to
create new persistent volume from marathon itself with new instance launch
instead of creating volume from slave server.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mesosphere/marathon/issues/2493#issuecomment-244358206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACPVLJl278CxEb4PIe8ELG9GPWq4LR0Lks5qmBK-gaJpZM4GS3Tr
.

Hi,
In my case we are using local-persist volume driver, Please find the volume which i have created
docker volume ls
DRIVER              VOLUME NAME
local-persist       tomcat
After creating the volume in slaves server from marathon i can launch the instance via below json script.
But my requirement is without creating volume manually in slave servers from marathon console i need to  create local-persist volume in slave server and launch the instance. If you have the steps please let me know.
{
"id": "tomcat",
"container": {
"docker": {
"image": "tomcat:latest",
"network": "BRIDGE",
"portMappings": [{
"containerPort": 80,
"hostPort": 0,
"protocol": "tcp"
}],
"parameters": [{
"key": "volume-driver",
"value": "local-persist"
}, {
"key": "volume",
"value": "tomcat:/data/www"
}]
}
},
"cpus": 0.2,
"mem": 32.0,
"instances": 1
}

Hi Team,
Can you please help on this thread, for creating persistent local volume from marathon console via json

Can anyone share the answer for the same?


Example 4-12 - PerKeyAvg for Python Incorrect

In the example, the map method shows to take a lambda with two parameters (key and xy), but it appears as though the python version of spark only has a map method that expects a lambda with just a single parameter.
So instead of the following
r = sumCount.map(lambda key, xy: (key, xy[0]/xy[1])).collectAsMap()

We should use
 r = sumCount.map( lambda kvp: ( kvp[0], kvp[1][0] / kvp[1][1] ) ).collectAsMap()

Note: It appears the github source foregoes the mapping step and returns a list of {key: (sum, count)} instead of {key: avg}.


Issue parsing dates in IBKR Historical Feed

WARN IBKR - Exception: Text '20231115 09:30:00 US/Eastern' could not be parsed at index 9
Leads to no data returned.

Seems to be a different time format than before. Right now roboquant expects one of two formats (one for date granularity and one for date-time):
private val dtf = DateTimeFormatter.ofPattern("yyyyMMdd  HH:mm:ss")
private val df = DateTimeFormatter.ofPattern("yyyyMMdd")
Possible we need to add a third one, but personally never encountered this one. What assets and timeframe do you try to retrieve? So in other words, what are the parameters to the retrieve function you are invoking.

The behavior for eu and us market data seems to be slightly different.
The issue seems related to the date passed into the api for US stocks. Right now updated the code so IBKR knows it should return utc timestamps and not timezone included timestamps.
Not sure there are more of these small differences since they are not documented.


Kubernetes Exec API intermittently hangs when executing curl command for ItMiiDomain test

When using the Kubernetes java client exec api, to invoke curl commands, intermittent hangs occur with no response.  This was seen in the JUnit 5 ItMiiDomain test.  It seems that by reading the both stdout and stderr streams while the command is executing resolves the hang on the Kind cluster.

Here is the full test suite result for kind cluster run:  https://build.weblogick8s.org:8443/job/weblogic-kubernetes-operator-kind-new/1292/
There is one failure which is different than the develop run Pani referred me to compare known failures:  https://build.weblogick8s.org:8443/job/wko-nightly-parallel/3/
The single failure in my run 1292 (above) doesn't look related to my change.