Change / refresh / close page?

Hi! Thank you a lot for your work on Eel. I'm wondering if there is a way to open, re-open, or refresh the html page in the very same window? Unfortunately, I couldn't find this information.
I'm using Jinja2 templates for different views. As the program runs, the rendered templates are saved under the same name (index.html) and then should to be re-opened. However, doing ee.start("index.html") for the second time opens a new window beside the previous one. To add to this, the following OSError appears in the process:
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted: ('localhost', 8000)
2018-05-22T20:00:29Z <Greenlet "Greenlet-0" at 0x1ece5058a48: _process_message({'call': 1.5296098246811638, 'name': 'select_new_t, <geventwebsocket.websocket.WebSocket object at 0x0)> failed with OSError

but actually does not seem to affect the program's functionality.
In case if opening another html page in the same window or refreshing it is not possible, is there a way to simply close the old window?

@khoidt
I faced this issue myself recently so I will probably add something to make this easier. For know you can do it in JavaScript with location.reload(true) (which you can then wrap in a function and expose).
Similarly you can do things like  window.close() although there are some restrictions on when this can be called I think

@ChrisKnott, thanks for your answer. I tried both your suggestions. location.reload(true) provides the desired frontend effect, but it also stops the Python process. Do you know if the latter can be avoided? window.close() seems not work at all.

For the moment, I managed to get the program to continue running after refreshing the page by changing sleep(1.0) to sleep(10.0) in _websocket_close() (Github link).

@ChrisKnott @khoidt Hi there, I'm facing a similar issue here. My application is split into 3 .html parts, whenever I navigate to the .html page initially, all of the functions work fine, however navigating back and forward even once - breaks the functions, is it not possible to have several html pages with <script> in each one of them?

Hi @nba94! You can find my code in this repo. I use Jinja2 templates that are saved as index.html on the fly; then this page is refreshed from javascript when new views are needed. With the slightly adjusted Eel (see my last comment above) I managed to get it to run well. Try installing this Eel instead the default one and see if it works.

@khoidt Thanks for your suggestion and input. I have indeed gone ahead and altered the sleep from 1.0 to 10.0 prior to commenting my initial comment - but that didn't work out..
I will look into Jinja2 and see maybe that will help me, but I've never used it before, maybe looking at your code will help! Thanks.

@ChrisKnott Thanks for your reply. I have downloaded the above shared Eel version by @khoidt and cded to the top Eel folder and installed by using pip install -e . as you suggested. Now I'm running my app and for some reason each time I press a button with a function assigned to it, I get a 'print this page' menu that wants to print the current page out? Also it times out after navigating back and forward between multiple .html pages...

@ChrisKnott @khoidt I did a bit more of digging into this and realised that when I start my .py script and initiate the main.html, even though I have buttons on it that navigate users to other .htmls like profile.html for example, when I check in the developer console of chrome it seems that the ONLY html loaded onto localhost is the main.html, all other htmls are not loaded onto it. Potentially if I create a dependency to upload all of the required htmls onto localhost this issue will be fixed. Just wondering how to do that now.

@nba94
The "print this page" is because the JavaScript is calling print() instead of  console.write() - an easy mistake to make when switching back and forth between JS and Python

@ChrisKnott Thanks you were indeed correct about print() and console.log() mishap I had..
Also I have decided to use JQuery instead of having multiple .html pages, and it works like a charm!!
I wanted to ask a question however - I keep having the same issue over and over again.
When I update either .html or .css file, and run the new app through python, it is not always updated. I sometimes have to force refresh it from within the python script runtime, which is an OK workaround, but it doesn't work like this for CSS for some reason.
Have you come across this before?

I think this is Chrome's default caching behaviour, you can disable the cache by opening dev tools (F12 on PC, cmd+option+J on Mac), going on "Network" and ticking "Disable cache". The cache is only disabled if dev tools is open (but you can have them in a separate window - open the "More" (three dots) menu in the top right)

@ChrisKnott Thank you so so much..

@khoidt you can now specify a callback in the options which will be called every time a websocket closes. You can use this to check for a boolean or something for whether you actually want to quit.

@ChrisKnott, thank you! I'm going to use this feature in my next eel script.

Hello! Thanks a lot for inventing Eel. It's truly wonderful.
I was getting a lot of errors when changing pages. I managed to make everything work as expected by doing some changes to eel.init.py file.
In case anyone needs it, please give it a try. If someone spot something wrong that might be with it, please also share it.
All I did was to move away the _websockets.remove((page, ws)) call from _websocket(ws) to _websocket_close function and slightly modify a couple more of thing in the latter function. Just as follows:

note that I set _websocket_close to accept one additional parameter now.

def _websocket_close(page, ws):
    if _on_close_callback is not None:
        sockets = [p for _, p in _websockets]
        _on_close_callback(page, sockets)
    else:
        sleep(5.0)
        _websockets.remove((page, ws))
        if len(_websockets) == 0:
            sys.exit()


asset-conversion pallet: persist a pool account id

Is there an existing issue?

[X] I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

[X] This is not a support question.

Motivation
A pool account id is computed every time we need it. The computation involves a decoding which in theory might change over time (with some major updates for example).
I can not reason from the code base why should the account id should be compute every time we need it.
Solution
Compute a pool account id on a pool creation and store it in the Pools storage as PoolInfo.

I like this idea as it also makes the data more easily discoverable for people/apps walking the state.

The computation involves a decoding which in theory might change over time (with some major updates for example).

This argument could also be used for every type that may changes and thus the decoding could fail in the future.

I can not reason from the code base why should the account id should be compute every time we need it.

We are doing this everywhere were we use an account id.  The question here would be on what is faster, a storage read or doing the computation.

@bkchr agree. and accessing the storage wont be faster. my benchmarks showed pool id generation is matter of nano seconds.
but may be worth having this additional docs
https://github.com/paritytech/substrate/pull/14811


draft: Remote publish E2E prototype

[Ready for review, not suppose to merge]
Description
A follow up of the remote publish doc https://microsoft.sharepoint-df.com/:w:/r/teams/Composer/_layouts/15/Doc.aspx?sourcedoc={0B524AA7-23E4-44BC-A0FC-9BD258232DA7}&file=Remote Publish from Composer.docx&wdOrigin=OFFICECOM-NTP.MAIN.REC&action=default&mobileredirect=true
This PR consists 3 parts

[x] a local bot manager service that take over the runtime management and bot hosting

accept the http protocol and manage runtime in it's own space
support publish\history\rollback
support multiple bots at same time, port management, fast reload

[x]  some publisher management in composer

a IPublisher interface
a HttpPublisher which creates publisher given a config

[x] UX hook up in composer

Architecture diagram

Goals

Verify the approach that sperate the concern of runtime from composer, into dedicated runtime service would work
Figure out the details of the http publisher api
Figure out how much effort we need to have a runtime hosting service that implements those api
See how we can build a non-code(config-based) publisher system on top of a generic coding interface
Figure out how much we can\need to clean the core, how much abs-h specific code we've built

Non-goal

This PR touched some parts of how a publisher is registered and generally how a plugin get loaded and surfaced out through API. But not tended to be the standard.

Road map to ship
Stage1: replace BotProject1 with BotManagerService

[ ] pass LUIS settings when publishing
[ ] clean BotProject
[ ] remove the copying runtime logic from composer core

Stage2:  integrated in plugin system

[ ] hook in with plugin system

Stage3: cleanup and polish

[ ] clean IEnvironment, IConnector, IEnvSettings
[ ] publisher controller polish

This looks great and is roughly in line with what I've been doing in the plugin loader.
@boydc2014 in my implementation, the loaded publishing mechanisms actually live in the PluginLoader service, rather than in the publishing service itself. It may be more appropriate for them to live in the publisher service -- but we will need to make sure it can be exposed to the plugin loader so that plugins can add new methods.
One key difference is that, in my current design, the configuration for each publishing endpoint will actually live in the bot settings. We may need a special case for local publish to test runtime, but in general, I believe these settings should be part of the bot configuration and NOT handled by the plugin or environment variables.
What I did in my prototype is, the user provides a configuration object via settings page that is bound to a specific method of publishing. Then, when the publish action is requested, Composer passes that configuration into the plugin to fulfill the request.  This enables a user to set up multiple publishing targets of the same type without installing multiple plugins -- for example, a dev, staging and production instance that differ only in their configuration.

See also, #1945 and #1928

This looks great and is roughly in line with what I've been doing in the plugin loader.
@boydc2014 in my implementation, the available publishing mechanisms live in the PluginLoader service, rather than in the publishing service itself. It may be more appropriate for them to live in the publisher service -- but we will need to make sure it can be exposed to the plugin loader so that plugins can add new methods.
One key difference is that, in my current design, the configuration for each publishing endpoint will actually live in the bot settings. We may need a special case for local publish to test runtime, but in general, I believe these settings should be part of the bot configuration and NOT handled by the plugin or environment variables.
What I did in my prototype is, the user provides a configuration object via settings page that is bound to a specific method of publishing. Then, when the publish action is requested, Composer passes that configuration into the plugin to fulfill the request. This enables a user to set up multiple publishing targets of the same type without installing multiple plugins -- for example, a dev, staging and production instance that differ only in their configuration.

I think we are on the same page even for the key difference you mentioned, my thought is we have a IPublisher coding interface for plugin, then I have a HttpPublisher to create HttpPublisher via config,  there is another type of IPublisher that may load from local plugin folder.
In the case of HttpGenerator, i use multiple config will generate multiple HttpPublisher, see the code in PublisherService.init(), which allow user to publish with different target without have to modify config, user are creating multiple plugin(Ipublisher) in my case, by it's created very lightweight, the HttpPublisher serve as a "PublisherGenerator" in this case.
It's not ready yet, i plan to complete it to some degree, and reach out to you and folks to review it later, probably next week, and the implementation is not to be production, mainly focus exploration on the protocol.

@benbrown  I read through your comments here and in your PR, and re-clarify the goals and non-goals of this PR in the description above, to make sure this PR focusing on run time decoupling, publishing protocol evaluation and implementation and other relate refinement on the composer core ifself. Leave out the plugin loading and managing as a non-goal, and let us seek for a good approach works for all scenarios we are targeting now.

update some ux

Close this, since this PR reach its goal, the follow up will be a local plugin which separate the concern of runtime from Composer core


Install software [EPIC]

Allow users to install from cc:

p2p
x2go
vagrant
Oracle VM virtualbox

p2p is done

I guess this is just partially done right? BTW usually we use an epic with sub-issues for big jobs like this. FYI.

X2GoClient is done:

Users can install X2GoClient from "About" menu

Vagrant is done:

Users can install Vagrant and its plugins from "About" menu

Fixed.

Done (prod).


Add JSX support.

References #12.
This is a PR to add support for parsing code that may contain JSX. It uses a method of injecting acorn into acorn-jsx so that we don't have to rely on their version of acorn.
Comments in PR explaining rationale of changes.

Great work here. Thanks again.
I wrote just-parse as a way of falling back to the loose parser in case of parse errors. That might be helpful here so the walker doesn't fail on unknown syntax.
I still think babylon as the parser is the way to go, but happy to make that change when it's necessary. Though https://github.com/mrjoelkemp/node-dependency-tree/issues/23#issuecomment-146073350 already requests supporting es7 support.
I'll land this as a minor release and look into babylon support for a major release.

Released in 2.1.0. Thanks again!
The detectives are using ~, so I'll update them and cut new releases.

No problem. Happy I could help :)


Add support for additional env vars, either from secret/config or via chart

Looking to add a couple env vars, one that would use in the accept.json see #89, but also some internal monitoring non-prescriptive to roadie itself.

Closed by #98


Make llvm-mca available to Rust

This allows using llvm-mca with Rust directly.

I'm not sure if it works this way, but I copied it from the Zig configuration which does it like that too. Also I bumped Rust's default compiler version to 1.33, as that seemingly was forgotten.

Hi, have you actually tested that MCA works with Rust? Because when I implemented the MCA tooling it did not work because of too many incompatible ASM keywords.

I have copied the LLVM IR generated by Rust, and then used LLVM IR as source language and both emit the same ASM, and with the latter MCA seems to work just fine. However I did not manually verify that the change in this PR works.

I just tried this locally and it mostly worked.
, stderr=/tmp/compiler-explorer-compiler119221-646-1rg5xv.mj6sy/output.s.mca:73:45: error: expected the entry size
        .section        .debug_gdb_scripts,"aMS",@progbits

was the only error: as a result of the asm filtering not being perfect. It worked "well enough" though for me for now, so we can only improve :)
Gonna merge! Thanks @CryZe and sorry it took so long to get to this!


Consume data from MetricBackend continuously

Current coverage is 44.59% (diff: 16.66%)

Merging #206 into master will decrease coverage by 0.14%

@@             master       #206   diff @@
==========================================
  Files           622        623     +1
  Lines         16167      16246    +79
  Methods           0          0
  Messages          0          0
  Branches       1636       1644     +8
==========================================
+ Hits           7233       7245    +12
- Misses         8470       8537    +67
  Partials        464        464

Powered by Codecov. Last update caf70b3...cbdc093

Could you add a description? From the look of this, it's the first step towards sliced by having LocalMetricManager support the feature, and metric/bigtable emulate its behavior?

@parmus asked for parts of the original PR to be separated to allow a subset to be merged and tested in separation.
This PR is the first step that allows different series to be consumed continuously which in many cases reduces the amount of memory that must be retained.
The next step which also allows a single row to be read in chunks is based on this branch and is available here https://github.com/jo-ri/heroic/pull/2
The third step is to use the protobuf client and is available here https://github.com/jo-ri/heroic/pull/3

Tried to find more missing finals. Also removed some new-line-changes, so review commit could be squashed after review to avoid touching unrelated files.

Fixed comments, squashed and rebased on master

@jo-ri: It does look like this feature is off by default (which is what we want). Can you confirm this?

Have verified that:

This feature is disabled by default
Integration tests pass
Small local cluster test works as expected.
Feature can be enabled/disabled per query and can be enabled by default via configuration file.

Let's merge.

@gabrielgerhardsson will you rebase? (reason being #228)

@udoprog: Yep, I'm rebasing right now.


Small improvement in the TUTORIAL file

While I was trying to install shields for the first time, I ran into a problem that I solved.
I've added the solution in the doc/TUTORIAL.md file in order to ease the process for the newbies like me.
Source of the solution: https://medium.com/andrewmmc-io/node-js-error-getaddrinfo-enotfound-localhost-b7ee35e1bb60

Messages

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

:book:

Thanks for contributing to our documentation. We :heart: our documentarians!

  Generated by :no_entry_sign: dangerJS against 98c742891e6a13f6a04c440e660de6fd6c6a86a9

Thanks for this! Do you think it might be easier to just have the docs suggest trying to hit <IP_ADDRESS>:3000 instead?

What do you think now @calebcartwright?

HI! Did you run into this issue? What OS was that on?
Usually OS's will include this alias by default; it's rare that I've seen something like this happen.
I'm with Caleb… not sure I'd want to direct new users to edit their /etc/hosts file 🙈

I'd echo @paulmelnikow question about your OS if you experienced this issue. We want to make sure anyone can get Shields running on their local machine regardless of their OS, without having to manually edit the hosts file.
If there's a particular OS/environment where our npm start script won't work unless the hosts file is manually updated, then I'd be inclined to review our scripts/config to see if we can address that instead.

So, do you guys think that the best option is to replace localhost with <IP_ADDRESS>:3000?

Can you say more about how you encountered this issue? What OS are you using?

I'm using macOS 10.12.6 (Sierra), node 10.15.3 and npm 6.4.1.
I was just following the TUTORIAL.md when I had this problem:
Error: getaddrinfo ENOTFOUND localhost.
I researched it and found that the system can't find localhost. So, I decided to add the explanation to add localhost manually.
Some folks told me that that's not the best way to do it so I think that the best way to do it is accessing straight to the IP address (instead of the localhost address).
What do you think, @paulmelnikow?

Also, I've just added the method in the first example, because it didn't compile:
static get category() {
return 'build';
  }

Thanks for adding the category!
Re /etc/hosts:
Here's an example of this issue reported on another project: angular/angular-cli#2227. I'm gleaning from that issue that this line is in /etc/hosts by default which certainly is also my expectation. So I think this issue occurs when the original contents of /etc/hosts is manually changed. Probably it is better if most users do not edit /etc/hosts for exactly this reason.
We could use <IP_ADDRESS> instead, though again, I'm not aware of any systems that don't have this mapping by default.
We shouldn't cover every eventuality in our tutorial and I don't want to give people the impression that they should be editing /etc/hosts (which seems to be what caused this issue). I suppose we could add a troubleshooting section, and maybe link out to that issue. (particularly https://github.com/angular/angular-cli/issues/2227#issuecomment-358036526)

Nice, let me modify the file it with your proposal.

I've updated the TUTORIAL.md file with your proposals. Could someone review it in order to close it?
Thanks for your help. I'm really proud of my very first issue!

This LGTM now. @paulmelnikow any other thoughts on this one?

I've just added the explanation for both get category() functions.

Can we close this PR or is there anything else to do?

Can we close this PR or is there anything else to do?

Each PR has to be reviewed, and approved by at least one member of the maintainer team before it can be merged. Even after a PR has been approved, additional changes (like the one you made a few hours ago) restart the process.
We'll take a look at your latest commit when we can and potentially provide additional feedback and/or request changes.

Thanks @calebcartwrigh! I I didn't want to seem to hurry, sorry if I did!

No worries!


cannot build on latest nightly

thanks, should be fixed in https://github.com/nkconnor/sharded/commit/2788e5be6ed780b251816c9cdca6f75187c0ed0b

@nkconnor mind publishing a new release on crates.io?

Sure, tomorrow

Saw a new release. Closing


Auth is not working on ubuntu-latest

Depends on https://github.com/prefix-dev/pixi/issues/334
[project]
name = "test-auth"
version = "0.1.0"
description = "Add a short description here"
authors = ["Pavel"]
channels = ["conda-forge", "https://repo.prefix.dev/setup-pixi-test"]
platforms = ["osx-arm64", "osx-64", "linux-64", "linux-aarch64", "win-64"]

[tasks]
test = "python -c 'print(\"Hello world!\")'"

[dependencies]
python = "3.9.*"
private-package = "*"

  auth-token-install:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - name: Move pixi.toml
        run: mv test/auth/* .
      - uses<EMAIL_ADDRESS>        with:
          auth-host: https://repo.prefix.dev
          auth-token: ${{ secrets.PREFIX_DEV_TOKEN }}
      - name: Ensure private-package is installed
        run: |
          test -f .pixi/env/conda-meta/private-package-0.0.1-0.json

This currently doesn't work on ubuntu-latest because on default linux runners, there is no keychain available. pixi then default to the insecure auth method to write the credentials in ~/.rattler but apparently they are not read.
See also #13

A workaround to fix this is adding the following before uses: setup-pixi
      - name: Unlock Keychain
        if: matrix.os == 'ubuntu-latest'
        run: |
          sudo apt-get update
          sudo apt-get install -y dbus-x11 gnome-keyring
          dbus-launch --sh-syntax
          echo '' | /usr/bin/gnome-keyring-daemon --unlock

Works with pixi >= 0.4.0.


feat: expose on ice candidate event callback

This PR exposes an additional event which will allow listening on generated ICE Candidates.
PeerConnection:

Add event IceCandidate, emits a RTCPeerConnectionIceEvent with gathered ICE Candidate Event

This change is provided to allow keeping track of generated ICE Candidates. Currently, it will be used to check if Firefox has properly generated relay candidate due to the existing bug -> https://bugzilla.mozilla.org/show_bug.cgi?id=1891503.

Not sure if it should expose RTCPeerConnectionIceEvent, or directly RTCIceCandidate.

Is this to enable a specific use case/scenario?  Don't necessarily disagree with it, but would be good to document the intent in the PR i think

(I'd agree in general/for completeness it's a good idea though either way)

This change is added to allow keeping track of generated ICE Candidates. Currently, it will be used to check if Firefox is properly generated relay candidate due to the existing bug -> https://bugzilla.mozilla.org/show_bug.cgi?id=1891503.

Looks good. Should we add some simple unit tests for this?

@brycetham I would like to, but not sure how such tests should look like. Do you have any proposal for such tests?

Looks good. Should we add some simple unit tests for this?

@brycetham I would like to, but not sure how such tests should look like. Do you have any proposal for such tests?

Honestly looking at it again, the only test I'd be interested is on in which it checks if PeerConnection.Events.IceCandidate gets emitted whenever this.pc.onicecandidate occurs. But the code is simple enough where I'm thinking it's probably not necessary.


[VERSION TRACK] v2.9.0 Known Issues & Bugs

Known Bugs - v2.9.0
This issue is an umbrella issue to keep track of bugs in the current version.  You can reply directly here, but opening a new issue would make life easier for us.
Issue List

Hi!

In 2.9.92 I did not find any problems.
Maybe it will be more convenient if clicking on the selected element will leave only the selected mods in the list?

Oh, I like that.  maybe highlight it or something when clicked?  lemme see what I can do on that.
Thanks for looking at it - I'm really, really happy with the changes for 3.0.0 - particularly the multi-threaded approach - I was resetting my inflated collection last night, rescanning about 600 mods over and over and the app felt responsive the entire time.

Somehow to inform users that the "selected mods counter" (?) function button, of course, would be nice, but how to do this without overloading the interface - now there are no ideas. Maybe the hover tooltip is "Keep Selected"?

inactive state

active state

the hover tooltip "Keep Selected" would be inaccurate - the selection library filters mods after keeping selected mods visible - this is so that if you select a bunch of mods, then set a filter that would hide them, then click copy / move / delete, the behavior might be unpredictable, as the file operation will always receive the full selected set - so I did that to prevent a file operation on a currently hidden mod

also, sorry about the weird zero-width space in the translation files - this is actually the sole instance of a localized string in the entire app where I want only the tooltip set, and no value for the actually text - and I can't just set it empty as there are debug warning messages specifically to catch that (because it means I did something wrong, probably)

I liked that there is a switch "Show Only Selected"/"Show All". Thank you.

Maybe it makes sense to add the item "Disable tooltips in the search bar" in the Settings? Everything is intuitive/remembered there, but over time they (pop-up hints) begin to interfere/irritate. )))
Or so, a button with "?" for temporary activation:

Added.  Strings also pushed to crowdin just now.

In the description should be added: "(Requires restart)" or not?


styled-components inconsistency

When using styled-components I see the following error:

the rendering works but this error message appears in the browser console

VM1265 patternplate.web.vendors.js:445 Warning: Prop `className` did not match. Server: "sc-cSHVUG bRVayV" Client: "sc-htoDjs QZJlR"

{
    "@patternplate/cli": "^2.0.0-54",
    "@patternplate/render-styled-components": "2.0.0-54"
}

npm -v
5.6.0

node -v
v8.9.4

I can't reproduce this issue anymore. Even when using different versions of styled-components
{
    "@patternplate/cli": "^2.0.0-63",
    "@patternplate/render-styled-components": "2.0.0-63"
}


[Bug] fix cancel multi times cause pipeline hang

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：
Fixes #6160
Problem Summary(Required) ：
FE cancel query multi times pipeline, driver_number in
SubQuerySharedDriverQueue will decrease greater than once.
which will cause driver_number to zero. so pipeline executor
won't take any driver

@Mergifyio backport branch-2.2


The Caligula Effect [PCSG00687]

App summary

App name: Caligula －カリギュラ－
App serial: PCSG00687
App version: 1.00

Vita3K summary

Version: v0.1.6
Build number: 2854
Commit hash: https://github.com/vita3k/vita3k/commit/1ce445ce
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: nishinji
OS: Windows 10
CPU: Ryzen 9 3950x
GPU: RTX 3060ti
RAM: 32 GB

Issues
Screenshots

Log
vita3k.log
Recommended labels
Nothing

Still not boot

App summary

App name: Caligula －カリギュラ－
App serial: PCSG00687
App version: 1.00

Vita3K summary

Version: v0.1.8
Build number: 3139
Commit hash: https://github.com/vita3k/vita3k/commit/39bfd764
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: nishinji
OS: Windows 10
CPU: Ryzen 9 3950x
GPU: RTX 3060ti
RAM: 32 GB

Issues
Screenshots

Log
vita3k.log
Recommended labels
bootable

as of https://github.com/Vita3K/Vita3K/commit/2101d1ea3faf8bb4c01fe3b6853724125169daf8, the game goes ingame as #578.
Screenshots

Log
vita3k.log
Recommended Labels

Playable


carbon-ql-k8s-specification.md

This article is meant as work in progress discussion, to :

envision k8s scenarios using the caron-ql yaml spec

propose a carbon-QL modeling for kubernetes (that could be later implemented by different k8S providers)
@jawache

Hi @yelghali, closing this PR to clean things up. I believe we've found an approach which works best to bring all the threads into one (exporter models that can export data from azure, and then the rest of the pipeline of models is as per the standard approach in IEF)


More

Please make sure to remove the extra "<Divider />" in Landing/index.tsx on the master branch when merging dev to master.

Which divider should be removed @orishim, the top or bottom one?

Bottom one (line 36)


Subclass reworks for 5.0.0

Discuss improvements, reworks, changes for the Isekai Protagonist and its subclasses here.

Add a new feature called Edgy Aura which a similar effect to Friendly Aura and Dark Aura

God Emperor should get a few more OP abilities (all non-villain classes too probably).

Another OP ability at 5th and 15th level.

Hero needs to be buffed to make it stand out more. e.g. more powerful features.

Another OP ability at 3rd and 17th level.
Gold version of Plot Armor that applies to allies :question:

Villain's study target feature should be replaced with another feature that affects spells. (#100)

I'm wondering maybe renaming the Villain subclass to Demon Lord ❓ and making the subclass a more generic evil class rather than a spell focused one ❓ This class does have alot of extra OP abilities so it would make sense that it would be powerful like a demon lord.

@kjk001 @Nerin3 @Mythalar Ideas are welcome

Isekai Protagonist

An extra feature group that would give a whole bunch of OP abilities and Special powers

I don't really understand this one, a new kind of progression?

Edge Lord should get some feats that scale from DEX.

Add a new feature called Edgy Aura which a similar effect to Friendly Aura and Dark Aura

IRC those auras do no scale with a stat, but perhaps a toned down/scaling WotR aura ? +1 attack/per round at level 8 and 15 for the whole party, and a party wide speed enhancement?

God Emperor should get a few more OP abilities (all non-villain classes too probably).

Another OP ability at 5th and 15th level.

I advocate for this for some time so I wont disagree here ^^
In my current run I play a God Emperor with three OP abilities at level 1 but no pet and 2 more QoLso  auto quicken, auto reach and auto selective.
Here I also made a suggestion for a (unique? at least matching) legacy that would add domain powers. But some OP abilities would do just fine.

Hero needs to be buffed to make it stand out more. e.g. more powerful features.

Another OP ability at 3rd and 17th level.

That would make it in line with Edge Lord I think.

Villain's study target feature should be replaced with another feature that affects spells. (Villain - Studied target #100)

I'm wondering maybe renaming the Villain subclass to Demon Lord ❓ and making the subclass a more generic evil class rather than a spell focused one ❓ This class does have alot of extra OP abilities so it would make sense that it would be powerful like a demon lord.

On this one I very much disagree since Demon is a mythic path by itself and it would be incoherent with other path (Villain could be Devil/Lich/Demon/Trickester and even Aeon).
Futhermore it's the only subclass that is more clearly spell focused (with OP metamagic), a more generic one would be redundant with IP and even Edge/Hero.
And it so very Momonga-sama !
Still for hexes since they can be used for a variety of things and witch hexes/conduit surge would be unique to this subclass and in line with the villain theme (killing hexes, nightmares etc...)
Gameplay-wise Villain has a little reduced spells choice since they have to be memorized ((which is nice for a cleaner spellbook by the way), but hexes can bypass this "issue" (chich is clearly not a real one :p )

I don't really understand this one, a new kind of progression?
An extra line of feat/abilities in the progression sheet. I think the base class needs some powering up.

On this one I very much disagree since Demon is a mythic path by itself and it would be incoherent with other path (Villain could be Devil/Lich/Demon/Trickester and even Aeon).
Futhermore it's the only subclass that is more clearly spell focused (with OP metamagic), a more generic one would be redundant with IP and even Edge/Hero.
And it so very Momonga-sama !

Fair enough. I put :question: because I wasn't sure about this.

Still for hexes since they can be used for a variety of things and witch hexes/conduit surge would be unique to this subclass and in line with the villain theme (killing hexes, nightmares etc...)
Gameplay-wise Villain has a little reduced spells choice since they have to be memorized ((which is nice for a cleaner spellbook by the way), but hexes can bypass this "issue" (chich is clearly not a real one :p )

I suppose so. I was thinking before that a new custom feature would allow for more flexibility but I can see now how hexes could work.

I believe several users suggested that the Emperor should also get access to its own sub list of legacies. Mythalar referenced one of his own suggestions earlier in this thread.
I didn't do that at that point because it didn't have access to the original features that were replaced by the legacy and given how few OP Abilities he gets taking away the level 1 OP feat for that choice felt wrong.
But if more are added at higher levels perhaps that would be an option? Or since all classes are getting a slight buff perhaps just add it without replacing anything?
Regarding Hexes, the shaman legacy already adds them, so they are at the moment not villain exclusive. If Hexes are to be the villains thing restricting the legacy or adding some additional hex options available only to villain would grant him an edge there.
Overall it might make sense to go over the list of legacies now added and reconsider what subclass gets access to which.
Right now the IP gets the full list.
Making something like Kinetic Knight, Shaman, or Judge (once added) completely exclusive to specific archetypes might also help with making each Archetype more special?

I believe several users suggested that the Emperor should also get access to its own sub list of legacies. Mythalar referenced one of his own suggestions earlier in this thread. I didn't do that at that point because it didn't have access to the original features that were replaced by the legacy and given how few OP Abilities he gets taking away the level 1 OP feat for that choice felt wrong. But if more are added at higher levels perhaps that would be an option? Or since all classes are getting a slight buff perhaps just add it without replacing anything?

Emperor could get a legacy at level 1 and just one more instead of two later on (probably earlier than now so perhaps 6/12/18 instead of 10/20)

Regarding Hexes, the shaman legacy already adds them, so they are at the moment not villain exclusive. If Hexes are to be the villains thing restricting the legacy or adding some additional hex options available only to villain would grant him an edge there.

I can be mistaken but when I looked into new legacies the shaman only added shaman Hexes, that are fewer in number and restricted by the chosen spirits.
It would still make sense to make the witch hexes progression exclusive to the Villain since some specific Hexes are quite useful/flavorful.

Overall it might make sense to go over the list of legacies now added and reconsider what subclass gets access to which. Right now the IP gets the full list. Making something like Kinetic Knight, Shaman, or Judge (once added) completely exclusive to specific archetypes might also help with making each Archetype more special?

I think completely exclusive legacies would be a pity since it would only remove build possibilities.
Form me those are two sides of the same coin:

a list restricted to what is flavorful and coherent with mechanics (Emperor would be more divine, Villain more arcane/evil etc...)
open the subclass to the entire list and be done with it. After all you can select what you want as a dual legacy (or could earlier?) and subclasses could be defined in some other ways (Hero could have two legacies at level 1 or something since it it to be buffed)

I was unaware that there is a big difference between those hexes since I don't really use either.
Ok so a witch based alternative still makes sense.
At the moment dual class legacy permits selecting everything because in the first batch the only legacies that really should be completely locked as a second option were Paladin and Dread Lord and those were automatically alignment locked.
Now we have a lot more options and as I  said might consider further restrictions that would then apply in the dual legacy option as well.
I liked the Villain as a spellfocused evil character, for melee focused evil characters I tend to just use Edge Lord. Rather than change the Villain to melee perhaps split the evil subtypes into two, Mastermind(the classical spellfocused villain) and Cultivation Novel Protagonist(because I can think of no other group that encapsules Chaotic Evil as well as them while mostly being melee focused)...

bp.AddComponent<PrerequisiteNoArchetype>(c => { c.m_Archetype = EdgeLord.GetReference(); }); so what I am considering is adding a bunch of conditions like that directly to the relevant progressions, so that even if the option appears in the dual legacy list the relevant archetypes can't pick them.
As I said for Paladin and Dread Lord that did not appear necessary at the time but now we have a lot more options that should be locked for specific Archetypes.

I was unaware that there is a big difference between those hexes since I don't really use either. Ok so a witch based alternative still makes sense.

Some are quitedefining even so that's cool, and I also insist on the possibility of Conduit Surge since it would give an "active" ability that is not replicated elsewhere. Thematically the evil wizard that exert himself for his grand spell is nice I think.

At the moment dual class legacy permits selecting everything because in the first batch the only legacies that really should be completely locked as a second option were Paladin and Dread Lord and those were automatically alignment locked. Now we have a lot more options and as I said might consider further restrictions that would then apply in the dual legacy option as well.

Fair but tricky for some (bard or skald for example, since they are really not good or evil and can be useful in any kind of build). Totally agree on those with a clear alignment restriction though.

I liked the Villain as a spellfocused evil character, for melee focused evil characters I tend to just use Edge Lord. Rather than change the Villain to melee perhaps split the evil subtypes into two, Mastermind(the classical spellfocused villain) and Cultivation Novel Protagonist (because I can think of no other group that encapsules Chaotic Evil as well as them while mostly being melee focused)...

Also agree, the current Villain could be a Mastermind, INT caster focus (also neutral perhaps?) and is nice as it is now but switch studied target for hexes.
I would replace the Dark Aura with a scaling aura that would allow the caster to bypass enemy spell immunities (Mind-affecting, Death, Paralysis and so on but not elemental immunities), with perhaps just the -2 saves at lvl 10. Ideally you could choose what effect at any given level (5,10,15 and no spell immunity at 20?)
The Cultivation could have feature from specific melee archetypes around there (some abilities from the Two Handed warrior are unique IIRC) and focus on STR. The Dark Aura could stay as it is (a generic penalty is nice for build like dreadknight etc...)
Corrupt aura would still be given to both of them since evil parties are often bolstered with dark powers...

Fair but tricky for some (bard or skald for example, since they are really not good or evil and can be useful in any kind of build). Totally agree on those with a clear alignment restriction though.

See above, there are other locking options that are not alignment based, I just didn't apply them at the time because they were already covered by the existing alignment lock for those options.
Please note that the chaotic evil melee version does not have to be called Cultivation Novel protagonist. When thinking evil melee mc that was simply the first group that came to my mind as I have yet to find one of those that was not a horrible person in at least one aspect.

Please note that the chaotic evil melee version does not have to be called Cultivation Novel protagonist. When thinking evil melee mc that was simply the first group that came to my mind as I have yet to find one of those that was not a horrible person in at least one aspect.

Noted, Abyssal Lord could be ok but same issue as before since there already is a demon mythic path.
Regarding Mastermind/caster I'd rather have some unique effects like bypass spell immunities (if doable for sure) since I think damage bonuses are quite covered in diverse ways (direct + damage, auto bolster, sneaky magic, magic amplification etc...).
As a very much caster oriented player I find the current Villain as a castery subclass nearly perfect except for studied target (hexes?) and the impossibility to use a lot of CC spells on somes foes, which is sad because they are litteral "traps" from a mastermind.

Then I would shamelessly pile up on @Nerin3 suggestion :

Less OP abilities than current Villain,
a mandatory Abyssal bloodrager legacy
the passive effects of the sorcerer Abyssal bloodline
Greater Power Attack  somewhere
a dual legacy to choose at lvl 1?

In the end, regarding subclasses as a whole, I would suggest giving them at lvl1 an imposed legacy and one to choose, but they could not choose the dual legacy feat afterward (except God Emperor?)
This would also limit the issue of the retroactive benefits issues (if still there?) and give them some iconic skills.

Hero : Paladin + 1 goody/generic
God Emperor : Domain Lord (+ dual OP?)
Mastermind : Witch + 1 caster/baddy
Abyssal Lord : Abyssal Bloodrager + 1 baddy/generic
Edge Lord : Thief + 1 (?)
IP : any two

It could be seen as a step back but subclasses as of now already have quite unique abilities (main stat etc...) and just lack some narrower "direction".
This way there would be some place for custom, more RP coherence and easir to "balance" if quite everyone has some dual legacies (just a matter of adjusting the number of bonus feats/OP/SP)

I would keep mastermind as Arcanist type of caster though.

While I think the available legacies should thematically be locked I do not like the idea of forcing the choice of the first one with a single option.
As a mastermind I would prefer tactician to witch for my first choice because thematically it fits just as well and it fits my evil planner better.
As an Edge Lord going Kinetic(neutral), Paladin(Good), or Dread Lord(Evil) also tends to feel more natural for my first choice than rogue.
So while a lot more choices need to be more narrowed down on who gets access to them I think hardcoding the first choice will actually push a lot of people into boxes they wouldn't want and were pretty glad to get out of with the broader legacy options introduced in 4.0.

I wouldn't lock any legacy behind a archetype, if anything only behind an alignment. But that is my opinion though.

Those are still legacies, just a much smaller list for now ;)

Also I think some legacies are much weaker than other, take Kineticist legacy: It's a full class on its own, while Tactician is 1/3 of Inquisitor.

Personally I think Kineticist powers should be a separate op ability instead of legacy that you can chose on lvl 1.

It is a bit more than that with the addition of tactics enhancing feats from other classes, was one of the first 3 made and I still like it even if we have now buffed all other legacies a bit beyond what it grants.
If you have a good idea for buffing it I will consider it.
Actually most of the options are now balancing wise at the level of Kineticist. With some like the Seeker of Truth and Chimera it is just less obvious because you don't really see that in reality they are even more than a full class progression till you reach their end.
Only the tactician really lags behind and I still like him anyway...

Regarding Mastermind, and to complete my previous post : Studied target could be specificly replaced with Eldricht Font progression since it's quite thematic for an evil caster. And if Arcane Discoveries could be added to the list... :p

and in all the recent posts starting a debate about legacies here we might now have successfully burried the one suggestion and debate that would actually be higly relevant to John.
@JohN100x1
Quick recap:
everyone aggrees that the villain as a scheming type villain is perfect and only Studied target should be chaanged on it.
However it could be renamed to Mastermind with a second more melee focused archetype being added.
If you ignore the last 12 posts you can read up the ideas that came together on that idea before that.

Yes so more on point :

Mastermind blabla Eldricht font progession etc...
Abyssal Lord : a real question here. Would it be doable to make a kind of Rageshaper Shifter that would work with weapons?
As it is it could be quite thematic with a very angry big bad boy?

Quick recap:
everyone aggrees that the villain as a scheming type villain is perfect and only Studied target should be chaanged on it.
However it could be renamed to Mastermind with a second more melee focused archetype being added.
If you ignore the last 12 posts you can read up the ideas that came together on that idea before that.

Thanks for the summary @kjk001, it looks like you guys are really passionate about legacies.
So this is what I've gathered so far.

Villain is renamed to Mastermind (great name btw) and the study target feature is replaced with arcanist feats i.e. Eldritch font.

My question would be, Is the evil alignment removed from this archetype so that it's a generic caster?

A new evil melee archetype is added Abyssal Lord :question: I don't really like the name to be honest. The word "Abyssal" makes it sound like the player comes from the abyss. I think it's best keep the villain naming.

Here's a high level summary of how I envision the archetypes for 5.0.0:
New ideas marked with ❗  and ideas that need refinement marked with ❓.

Isekai Protagonist: Jack of all trades

❗ Gets a new line of feats/abilities that is a mix of feats/abilities from other archetypes

Edge Lord: Melee focused

Uses DEX for attacks
Has extra attacks

God Emporer: Buffing focused

Has auras which buff allies
Has stats/resistances that increase (gets immunities at higher levels)

❗ Mastermind: Spellcasting focused

❗ Has arcanist feats i.e. Eldritch font
❗ Gets a line of OP abilities restricted to the auto metamagics

Hero: ❓❓❓ focused idk what the identity of Hero should be

Good-aligned
Uses Charisma for attacks
❓ used to have the true smite ability which is now part of a legacy

Villain or Abyssal Lord:question:: OP ability focused

Evil-aligned
Has many OP abilities (like the current villain)

That's how I envision the archetypes so far. The most problematic is the Hero because I don't know what it should focus on.
I could give it auras which buff allies but that would be too similar to God Emperor. The Hero needs a new set of feats/abilities that will make it stand out and have a more solid identity. This is probably the issue I'm struggling to think about the most at this moment.

Very much agree with this.
The Mastermind could be of suite any alignment I guess.
That's without balancing questions?
Regarding Hero I don't really have ideas that are not already in other subclasses or paladin legacy...
Something like getting buffed when hurt/controlled etc... for tenacity? Or a burst of divine damage ?
Something like the Argonaut of Bell Cranel

To me a hero is a fighter that is more focused on protecting his allies and the innocents. So a bit like the Base class a Jack of all Trades as long as those Trades are heroic.
Less total Buff auras (and no true full immunities gained from ascending to godhood) then the God Emperor but in exchange more OP and Special Power Options to develop personal freedom. If we can do it mechanically perhaps add some abilities to switch places with allies when they are attacked to protect them?
Edge Lord to me is more of a solo focused melee build rather than a team player. Since the buffing of the heroic legacy will actually add lay on hands and other team based paladin skills I would take that away from the Edge Lord, then hero would besides IP be the only archetype with access to it.
So thematically we have differences there and even if we at some point create two archetypes that are mechanically identical, they can still differ in their rp flavor, the anti paladin to the paladin...

Then what about a self damaging aura (like the Martyr) that would give a X damage reduction to the whole party (scaling with level).
I think ive seen the switch place thing somewhere in a mod but can't recall right now.

Ultimate protector (toggle ability) : confers "level" damage resistance, "level/4" bonus to AC and saving throws to the whole party.
Hero takes "level" (?) unstoppable damage each round and can only be healed by himself.
Something like that (or perhaps the other way : cannot heal himself?).

If Edge Lord is for dex builds focused on getting lots of attacks in a round, how about making Hero about two-handed weapons or sword and board, and instead focusing on getting a lot of damage on fewer attacks. Maybe something like applying 2x Cha to weapon damage rolls when not dual wielding, or a vital strike like ability that works on every attack in a full attack?
I also like the idea of a protection focus. Heroes in Isekai are always about protecting their friends, so it makes sense.

Maybe instead of Villan/ Abyssal Lord name him Overlord

I think that for the Hero it is also necessary to change his ability channels positive energy.
1d6 for each level. And at level 20, let him always heal the maximum amount of health. Just like a paladin.

I will open another issue in the future for discussing the specific features when I begin implementation.

Ok, I'll have to remember my ideas :p
Speaking of auras, I think that would be more intuitive that they all be fused in a subclass-unique level scaling ability. Easier to follow trough leveling than splitting them in multiple features.
Mastermind could be the one to have an debuffing aura (like the siphoning aura)

Not sure if this is a good idea, but we could change the God Emperor to actually use wisdom for casting and the new Overlord to use strength.

Not sure if this is a good idea, but we could change the God Emperor to actually use wisdom for casting and the new Overlord to use strength.

Proposed this some time ago and it was rejected.
To be honest it does not change so many things but it could be useful to some legacies that are Wisdom based (a psychokineticist could translate the trials and errors with new powers).
Totally agree with you for Overlord.
Still have a draft for auras that would specific to each subclass to enforce their theme (as of now I've protection for Hero, overall buff for God Emperor, Damage buff for Overlord, debuff for Overmind, still in work for Edgelord though)

if it was already rejected, then it was rejected.
I was unaware of the previous request.

@Mythalar I actually forgotten about the wisdom casting stat suggestion when I implemented the changes. Now that we are reworking subclasses again I think we can discuss and implement this.
I agree that God Emporer should use wisdom as the casting stat. I think some features need to be changed/implemented to accommodate this:

Creature backgrounds that replace certains skills (e.g. persuasion) to use wisdom. These new backgrounds can be discussed here https://github.com/JohN100x1/WOTR_IsekaiMod/issues/114
Features from the Isekai Protagonist progression (for example Quick-footed) that scale with charisma should be repalced with wisdom scaling.

For the Overlord suggestion, I find it funny that strength can be used for spell casting but I'm fine with implementing this if you guys think it fits the subclass.
Some personal thoughts:
Just like in kingmaker, the player becomes the ruler of a city. So, my original thinking was that a ruler needs to have good persuasian (i.e. good charisma) to rule people, which was why I selected charisma as the casting stat for the Isekai Protagonist class. It seemed to be the most sensible stat use for rulers. Discussing the casting stat changes has now opened my mind to new possibilities. It makes sense for an evil Overlord to rule through strength rather than persuasion, and the God Emperor to rule through wisdom like a philosopher king. I very much appreciate these discussions we are having!

Actually there are already quite a lot of background that use Wis for persuasion (acolyte) or even for knowledge skills (don't remember the name right now).
But could be useful to make a "package".
Agree with you on the God Emperor/personal features.
I guess there will be a separate thread for progression or feature discussions.
As for the Overlord: there is actually a feat that add Str to intimidation rolls so that's not so stretched!
Regarding casting stat Homebrew archetypes added a witch subclass that has spells/hexes scaling based on constitution and that's quite fun (actual unchained version of a real archetype).
Same way Edgelord could focus on Dex so to each their own :p
Setting a corresponding main stat can have a nice side effect regarding legacies since some would be "natural extensions" of the subclass, and selecting another one can be done at the expense of more stat spreading.
This way it would not be necessary to, IE, add uses/day to domain powers based on another stat than wisdom.
(Someone else can choose the legacy but at some cost)

I was just about to post that a high enough strength has a charisma all of its own when it comes to diplomacy...
Almost as if people just don't want to say no to you...

I wouldn't change casting stat to strength for Overlord though, I'll stick to Charisma or Intelligence (Depends if you prefer Charismatic Overlord or a Cunning one).
Str casting would warrant another archetype akin to: Muscle Wizard.

What do you think about adding this toggle ability to the Hero or making it a full-fledged separate legacy along with other auras that I suggested?
HEROIC AURA
But to exchange HEROISM for HEROISM, GREATER.
You can also add these auras as a separate ability:

UNBREAKABLE HEART
BULL'S STRENGTH and others are the same.

I think it would be great for a hero or a separate legacy for a hero. You can also add other auras, but not too much and not too strong.
It must be remembered that the power of the Hero's friends comes from the heart, not from muscles or spells.

I wouldn't change casting stat to strength for Overlord though (feels weird), I'll stick to Charisma or Intelligence (Depends if you prefer Charismatic Overlord or a Cunning one).
IMO Str casting would warrant another archetype like a Muscle Wizard or something (as if made for this specific purpose).

I guess the casting stat would depend on whether we want the Overlord to be desinated a general evil archetype or an evil melee-focused archetype. I'm fine with either really, the Mastermind could serve as an alternative for a cunning "overlord" if we have a consensus (or majority agreement) of the Overlord casting stat. Also I don't really want to implement any more archetypes than the ones we discussed before for 5.0.0.

What do you think about adding this toggle ability to the Hero or making it a full-fledged separate legacy along with other auras that I https://github.com/JohN100x1/WOTR_IsekaiMod/issues/111#issuecomment-1480000169?
...

Can you give me detail about this ability? A list or description of all its effects would be good.

Can you give me detail about this ability? A list or description of all its effects would be good.

What do you mean?
HEROIC AURA - this is Aivu's passive ability. She is our companion on the path of Azata.

Would personaly emphasize the melee part for Overlord.
Thoughts of mine : all subclasses could/should have a level scaling aura that enforces their theme.
Based on what would be thematical (Isekai level = IL)
God Emperor (global buff)

Aura of Majesty : sacred bonus of 1/2 IL to the party attributes + 1/4 IL to AC + 1/4 IL to saving throws

No more siphoning aura/dark aura/aura of divine fury (damage is covered by increased stats).

Celestial realm much sooner (lvl12?), perhaps make it so it also extends spells for the whole party (or another "minor" but useful metamagic)

At lvl 20 it would be nerfed compared to the current iteration but if God Emperor gets a legacy and 1 or 2 more OP abilities it would be nice.
As of now bonuses are quite repititive along the road but at the end the bonus/penalties are really strong without doing anything...
Mastermind (debuff)

Siphoning aura : -1/3 IL to attributes of every creature in a 40 feets radius.

I find this one a little on the weak side but -1/2 IL would be too much. Something in between perhaps like -(2 + 1/3 IL) for a max of -8 perhaps ? (same as cumullative Dark aura and siphoning auras of the current God Emperor)
With an arcanist exploit progression (eldricht) it would be a nice all around caster.
Overlord (+damage)

Dark aura : +1/2 IL to attack damage and hit point damages from spells + 1/4 attack bonus to the party 40f radius. Attacks are considered evil.

Hero (protection)

Aura of golden protection : +1/2 DR + 1/3 sacred bonus to AC + 1/3 sacred bonus to saving throws to the party 40f radius (+ a little regeneration perhaps?)

Edge Lord
Tricky since more of a loner...
Would have thought of a +X attack/round bonus to the party + enhancement to speed?
I think something like that would shrink the growing number of Isekai abilities and simplify them.
They should also be granted soon (5 or something) to limit the power spikes and make it so every level is a gain.
The numbers are a little weird but I think a straight +10 (1/2 IL) bonus to AC/saving throw is a tad much. It's less of an issue for damages since numbers already can go wild.

@JohN100x1 I'm mostly against STR as casting stat, because it's against the concept how casting should work for people, it's the reason why other classes still use mental stat for spellcasting even if they're martial focused class, as casting through physical stat without a proper explanation doesn't really make sense in the world of pathfinder.

I've mixed feelings about this.
I think justification can be found easily enough there there already exist some archetypes with spellcasting based on physical stats (granted, mostly constitution).
But that's also true that a character based entirely on strength would be quite more powerful than a charisma/int/wis based one since strength would give +hit, +dmg, +spell DC etc...
A strength focus character would also probably rely more on buffs which are not affected by casting stat except for bonus spells...
I think it was a good idea to discuss this, but it's not really worth to actually implement.
Still a good idea to make a wisdom based god emperor since it allows some choices for party composition/gear but further rework could be more focused on abilities than casting stat.

I will revert the STR casting stat change.

I was wondering, if instead of / as an alternative to hero / villain there should just be one subclass regarding alignment types with all their features being applied in the way that would fit the character's alignment, so instead of smite evil for a lawful neutral character, it would be smite chaotic. And for characters with a mixed alignment they would need to pick between which opposing alignment they would smite.
If this is an additional class you could realign the hero and or villain class more to their characteristics (like how villain's spell casting focus was changed into mastermind) instead of just being anti-good or anti-evil.
Hero for example could get an enemy bane instead of a smite with 2 sets of favoured enemies. I actually like how overlord is being handled, though I don't really like it's alignment restriction, since an overlord is more like an overly domineering and powerful ruler and though (e.g.) Ains would be evil aligned, that's more because of his inability for compassion since he became an undead (and he's still quite benevolent to his actual allies and subject) of cource there are more evil people fitting the description of an Overlord, but I don't believe all of them are.

Overlord (+damage)

Dark aura : +1/2 IL to attack damage and hit point damages from spells + 1/4 attack bonus to the party 40f radius. Attacks are considered evil.

Following my earlier mentioned opinions this would instead be:

Domineering aura : +1/2 IL to attack damage and hit point damages from spells + 1/4 attack bonus to the party 40f radius. Attacks are Aligned with (one of) your alignment(s).

And other such a minor changes for hero's sacred type bonus


Support NUMBER_OF_PROCESSORS not being defined when running tests on Windows

In some cases clean Windows builds were hitting:
lit.py: S:\SourceCache\llvm-project\llvm\utils\lit\lit\TestingConfig.py:138: fatal: unable to parse config file 'S:/SourceCache/swift\\test\\lit.cfg', traceback: Traceback (most recent call last):
  File "S:\SourceCache\llvm-project\llvm\utils\lit\lit\TestingConfig.py", line 127, in load_from_path
    exec(compile(data, path, 'exec'), cfg_globals, None)
  File "S:/SourceCache/swift\test\lit.cfg", line 1450, in <module>
    config.environment['NUMBER_OF_PROCESSORS'] = os.environ['NUMBER_OF_PROCESSORS']
  File "C:\Users\tristan\AppData\Local\Programs\Python\Python39\lib\os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'NUMBER_OF_PROCESSORS'

This is likely because https://github.com/tristanlabelle/llvm-project/blob/llvm.org/main/llvm/utils/lit/lit/TestingConfig.py has an allow list of environment variables that does not include NUMBER_OF_PROCESSORS. It doesn't seem like anything else in that repo depends on the environment variable being set, so this adds support for its absence.

@swift-ci please test

I verified that:

This fixes the issue
lit.py runs with the same number of workers with or without NUMBER_OF_PROCESSORS (32 on my machine)
Test execution takes the same amount of time with or without NUMBER_OF_PROCESSORS (non-significant 0.4% timing difference)


Release for v3.7.0 missing from "Releases" page

Don't know if this is the right way to raise this issue, but I noticed that the v3.7.0 Nuget package was published on 3/26, but I don't see it nor its release notes on the releases tab in GitHub, nor does it seem to have a corresponding tag in the repository. I made my first contribution a few weeks back and came looking to see if it made it into a release when I noticed.
Let me know if there is anything I can do to help resolve, or if there is a better place/way to raise an issue like this in the future.

Thanks for pointing this out. I added the tag and updated the releases.


[Outlining] Tooltips contain extra end line characters

VS 2013

Using build 2.2.0-a1510171942 in VS 2013 my hint tooltip looks like

It looks like your screenshot is from the experimental instance, this is the issue I told you about earlier today.

No, it is from normal instance.

The issue was I didn't account for the different possible linebreak characters.
Should be fixed in #1182 , tested in VS2013 & VS2015
VS 2013 \r\n

VS 2013 \n

VS 2015 \r\n

VS 2015 \n

Fixed in https://github.com/fsprojects/VisualFSharpPowerTools/pull/1182


[docs-only] graph(docs): More details for the README

Add some details about the users and groups endpoints provided by the graph service.

LGTM, only a few capitalisation things and punctuation stuff.
Q: is the LDAP - Active Directory config example still actual? I know that you have created it some time ago.

Q: is the LDAP - Active Directory config example still actual? I know that you have created it some time ago.

I tried it a couple of weeks ago. It should still work, yes.
Would be great if we had some automation on that (based on a Samba 4 DC?).


add pandoc version 2.2 to travis.yml

Coverage remained the same at 97.427% when pulling c707708a03d2fe09c36be4b82bf32076f3acf8e7 on kmschoep-usgs:master into d802ac479362ee947d84b0ccb32fcdf54c49cffc on USGS-R:master.


why 'govendor sync' does not sync local packages used by my main package?

for example i pushed my code to remote deploy server(ignored vendored packages, only keep vendor.json file), run 'govendor add +e && govendor sync', then i modifed my local packages,  push it to the remote deploy server, run 'govendor sync' didn't sync the local packages i modfied.
'govendor add +e' doesn't update the modified localpackages into vendor too?
Am i using the correct way?

shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ rm vendor/tasks/log.go
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ govendor status
The following packages are missing or modified locally:
tasks
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ govendor update +e
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ govendor status
The following packages are missing or modified locally:
tasks
However if i delete the whole folders, it worked:
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ rm -rf vendor/tasks/
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ govendor update +e
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$ govendor status
shenxianpeng:~/base_architect/user_center/src/usercenter(master)$

In the above example, I think you want govendor sync.
Due to historical reasons, govendor add and govendor update pull from your computer's GOPATH. govendor fetch and govendor sync pull from the remote (Internet location).
This does look like a bug in the update command however. Thank you for reporting this behavior. I will look into.

is this fixed? Very painful to edit packages one by one in vendor.json


[Docs] Customization of MeshMap Snapshot

Current State
Are users of MeshMap Snapshot allowed to customize the trigger criteria for when the snapshot workflow runs? If so, are these customizations lost on upgrade to a new version of the MeshMap Snapshot Action?
Desired State
An update to the documentation that outlines this behavior - https://docs.meshery.io/extensions/snapshot

Contributor Guides and Handbook

📚 Instructions for contributing to documentation

Meshery documentation site and source

🛠 Meshery Build & Release Strategy
🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

I would like to take up this issue @leecalcote

Hey @Abhishek-kumar09 can you spread some light on this?

@leecalcote , no they are not lost. The way user can customize the criteria for running the workflow. The upgrade should be happening just for the internal version of the MeshMap-Snapshot
Here is the ways in which the event can be triggered: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows

Hey @leecalcote, as I was working on this issue should add the triggers mentioned by @Abhishek-kumar09 in the docs. Also I was thinking to add steps to enable meshmap snapshot in the docs. let me know you views on this

@yash37158, great. Get it done. Your actions speak louder than good intentions. In the meantime, I'll open this up for others to help.


"Add a Volume" should send "size" as integer, not string

This bug currently prevents volume creation from working.

Currently sent as a numeric - fixed.


Add Notification, Application Service resources

Category

[x] New feature
[ ] Bug fix
[ ] Improvement
[ ] Refactor
[ ] etc

Description

api gateway (api key, service, usage plan)

email (category, tag, template)

push (tag, token)

add schema properties for paas service request (service-wide secret value)

static asset PR : https://github.com/cloudforet-io/static-assets/pull/2
Known issue

I will develop transit hub resource next.

Merge first.
For cloud service types, one of key information is app_key per services.
Let's make documentation for developer or user.
For example.
https://github.com/cloudforet-io/plugin-aws-cloud-service-inven-collector/blob/master/docs/ko/GUIDE.md


test: desigin the move and copy operation test cases

Pull Request Test Coverage Report for Build 982077309

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.691%

Totals

Change from base Build 981904568:
0.0%

Covered Lines:
4952

Relevant Lines:
5917

💛  - Coveralls


 This is great stuff here and maybe you can even eventually submit to official CustomTkinter for future inclusion. 🦄

Thanks!


Update Common Modules and Tests

Updated/added various tests to satisfy requirement.
Refactored file manager for increased abstraction and verification testing.

Merging in 24 hours. Review as necessary.


[fix] fix master compile TYPE_DECIMAL_DEPRACTED error

Proposed changes
Issue Number: close #xxx
Problem Summary:
TYPE_DECIMAL already deprecated, remove TYPE_DECIMAL_DEPRACTED support in array data type.
Checklist(Required)

Does it affect the original behavior: (Yes/No/I Don't know)
Has unit tests been added: (Yes/No/No Need)
Has document been added or modified: (Yes/No/No Need)
Does it need to update dependencies: (Yes/No)
Are there any changes that cannot be rolled back: (Yes/No)

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...

LGTM

merge to fix compile error


D0S.Factory - Active crafting prevents scripted window opening of Factory window.

If D0S.Factory is actively crafting and the Factory window is closed, another script that attempts to open the factory window will fail to do so. I've tried to use my limited knowledge to work around this to no avail. I have a feeling it may be a technical limitation, but thought I'd report it all the same.

Sorry for the late reply.
This works fine for me. Here's my test script:
BFRlc3QBAAAABWtleS5iAAAAAAEAAAAQdG93bi53aW5kb3cuc2hvdwhjb25zdGFudAQHZmFjdG9yeQhjb25zdGFudAEB

If I leave the factory while it's crafting and then hit "b", I return to the factory.

Thanks for your reply. It was indeed the screen switching, even though I included waits before and after window open/closes, it appears that closing my mine window caused a stutter in the window animation occasionally, and that stutter was just long enough that the call to open the factory window happened while the mine window was still closing. Slightly longer waits solved the issue.


Fix URL rewrite for icons in SLD and JSON styles

The solution is not 100% perfect (only the URL remapping is taken into account), but it's an easyfix that solves the customers' need.
Fix PNG in SVG layer. Was missing a Batik library for including images in SVG.

This PR doesn't lead to working results.


Possible conflict with Roughtly enough items

Describe the bug
Crashes the client when viewing a specific page, in my case page 6.
Steps to Reproduce
Steps to reproduce the behavior:

Open inventory
Progress to next page
repeat until you hit page 6
Client crashes

Environment (please complete the following information with the version):

Minecraft: 1.16.5
Mod Loader: fabric

Additional context
These are all the plugins that I have installed. Adding them one at a time no crash occurs unless Mo'Colors is added. Removing just Mo'Colors and the crash no longer occurs. Crash does not happen with only REI and Mo'Colors
alaskanativecraft-1.1.1.jar
architectury-1.12.148-fabric.jar
bedspreads-fabric-1.3.1-1.16.4.jar
biome_locator-1.1.2.jar
byg-1.1.7.jar
cloth-config-4.11.19-fabric.jar
Couplings-1.3.6.jar
Croptopia-1.16.4-FABRIC-1.3.6.jar
deep-dungeons-1.0.0-1.16.5.jar
DualRiders-1.0.5.jar
expandedstorage-5.6.33+1.16.5.jar
fabric-api-0.34.0+1.16.jar
FallingTree-1.16.5-2.11.3.jar
flytre_lib-0.2.9.jar
full-slabs-2.0.1.jar
geckolib-fabric-1.16.5-3.0.33.jar
gravestones-v1.9.jar
immersive-portals-0.90-mc1.16.5-fabric.jar
lithium-fabric-mc1.16.5-0.6.4.jar
llamasteeds-2020.02.08.jar
micalibria-1.0.2.jar
modmenu-1.16.9.jar
mostructures-1.1.1+mc.1.16.5.jar
okzoomer-4.0.1+1.16.2.jar
phosphor-fabric-mc1.16.3-0.7.2+build.12.jar
rightclickharvest-1.0.0.jar
riverredux-0.1.6.jar
RoughlyEnoughItems-5.11.218.jar
shelf-1.2.jar
SimpleBackpack_Fabric_1.16.5-1.0.38.jar
sodium-fabric-mc1.16.4-0.1.1-ipc2.jar
stonetotools-1.0.0.jar
untitledduckmod-0.1.1-fabric.jar
villagernames-1.16.4-1.6.0.jar
worldedit-mod-7.2.5-dist.jar
WorldEditCUI-1.16.5+02.jar
Xaeros_Minimap_21.7.1_Fabric_1.16.5.jar
XaerosWorldMap_1.13.4_Fabric_1.16.5.jar
mocolors-1.1.2.jar
I've created the same issue with REI
https://github.com/shedaniel/RoughlyEnoughItems/issues/526

this is a bug with sodium/Iris shaders, when you see a mo-colors item it does not know what to do with the model so it crashes, ive reported it here: https://github.com/GabrielOlvH/Mo-Colors/issues/6

@TheDerpu0ne @shaneknysh mo colors mod need indium mod to work. make sure you have it.


Change SplitterCircle Color

Right now, they're grey, but that color sticks out compared to the other colors. I want the color to be unique so players know the type of circle, but the new color should be similar to the other colors in the colors array in utils.ts.

Commit: https://github.com/johneastman/circles/commit/ceb1107c71462c5d8e561eee1c5ad5a4fa4559d1


Automating Superchain-ops Upgrade Execution Safety

Goals:
Improve the safety and ergonomics of L1 on-chain actions by:

checking the full set of state accesses and changes
checking the post action state of the system

Non Goals:

Implementing this functionality for L2 upgrades

Spec
Enabling L1 upgrade safety while maintaining flexibility in the tooling of the repo
This work will introduce a new contract L1SignJson, which inherits from SignJson.  The original SignJson contract will thus remain mostly unchanged and can be used in ceremonies that don't require or are not supported by the added checks.
Superchain Registry access
In order to obtain the addresses of the system contracts required for this work, the Superchain Registry will be added as a submodule. The required commit of the superchain registry can be provided as an env var to ensure the right one is used.
The json utilities provided for forge-std will be used to parse this information. This is considered less error prone than providing the local address of the superchain registry.
Post Checking
The ChainAssertions library will be imported and the post checks will be called. These of course will not run on-chain, but will be executed during the pre-broadcast simulation.
State diff checking
Ceremonies using this additional safety will require a new diff.json file. This file will provide an array of objects which correspond to the format of the state accesses struct returned by foundry's vm.stopAndReturnStateDiff().
All diffs in the JSON file MUST be includes in the state diffs, and no state diffs will be allowed which are not included there.
An alternative to the diff.json file may be to define the state diffs in a Diff.sol. This option will be explored during implementation.

I'm going to close this issue as completed:

We do have the superchain registry as a dependency and use it to getch addresses
We do have post check hooks used to make assertions
We do not yet have state diff checking, but as part of a separate issue we will think about how to do that


material-ui

Hi there! I was wondering if this is going to get merged in the near future, and/or if there's anything I can do to help?

@inlinestyle Yeah - as you noticed this one sat here quite a while. It's probably outdated by now and definitively needs tests. I just haven't managed to get a swing at it so far.
Feel free to copy paste the current state and make a PR on your own if you want to finish them.


Swap daemon won't start (error : "The swap daemon has stopped unexpectedly")

I get the error "The swap daemon has stopped unexpectedly"
Any idea what could be the issue. It worked correctly a few weeks ago
Current Behavior
{"timestamp":"2024-09-25T15:00:07.210271Z","level":"INFO","fields":{"message":"Logging initialized to /Users/xxx/Library/Application Support/xmr-btc-swap/cli/mainnet/logs"}}
{"timestamp":"2024-09-25T15:00:07.210329Z","level":"DEBUG","fields":{"message":"No seed file found, creating at /Users/xxx/Library/Application Support/xmr-btc-swap/cli/mainnet/seed.pem"}}
"Error: "
"Failed to initialize Bitcoin wallet"
"Caused by:"
"    0: Failed to subscribe to header notifications"
"    1: Made one or multiple attempts, all errored:"
"       \t- invalid peer certificate contents: invalid peer certificate: CertNotValidForName"
"       \t- invalid peer certificate contents: invalid peer certificate: CertNotValidForName"
"       \t- invalid peer certificate contents: invalid peer certificate: CertNotValidForName"
"       \t- invalid peer certificate contents: invalid peer certificate: CertNotValidForName"
"       \t- invalid peer certificate contents: invalid peer certificate: CertNotValidForName"
"       "
Your Environment

Node version : 22.9.0
Operating System and version : macOS latest version

Please upgrade to 0.6.4.
Thank you for the bug report.

That fixed it. Thank you very much!


Have mixed as "mediaType" on android

Feature Request
I want to use this library ro upload video or image. I've managed to do it every thing is working fine on iOS and android but there is an issue which is that I can't have access to take photo and record video on Android like iOS.
I have managed to do this using a custom button like this:
   if (response.customButton) {
                ImagePicker.launchCamera(videoOption, response => {})

But I know that users don't like to see disabled button so I prefer to have them both on same screen.

same issue here

Is there a solution?

having the same issue. Mediatype mixed is not working on android. I can only select photos.

for reference the issue is discussed here: https://github.com/react-native-community/react-native-image-picker/issues/759#issuecomment-444938268

It seems like android does not allow this behavior. See this.
It's possible to open a camera app which will allow to shoot both picture and video but it won't be returned from the Intent. The image or video will just be stored in Gallery.

I am having this problem as well now. Will the mediaType "mixed" never be made available to Android?


Migrate websites, issues and wiki from Bitbucket, Sourceforge to Gitlab/Github

Using their APIs if they have one or scraping the web sites. For those who we converted to Git.
First need to screen which ones we could do.

Unfortunately many of the sites do not exist anymore, so it's difficult to add them now. For others it should still be possible.


Submitting MyGames.GameCenter version 4.0.1569.53606.yaml

Submitting MyGames.GameCenter version 4.0.1569.53606.yaml
Microsoft Reviewers: Open in CodeFlow

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


Inline method action

With regard to issue #134; inline method action. Created the inline method action for methods with simple complexity (1 line of code), unit tests for code coverage and unit tests for as many scenarios as I could think of.
Thx.

I am not certain I follow, please confirm my understanding.
Given a method to be inlined, M, defined within a document D1. An invocation of M by code within a different document, D2, will be incorrect or cause an exception.
If my understanding is correct, then I can say that I did in-fact create a unit test which asserts this exact situation in another branch. I removed the unit test in the final branch in which I submitted the pull request for 2 reasons; primarily because I added code which extended some core classes (non-breaking extension, but still extra-curricular) and felt it too risky for approval and second because I believed the test to be overly exhaustive.
If my understanding is correct, I will add the unit test into this branch and ensure that this does work as expected.
Thx!

When you collect locations of invocations of M, the locations will be related to the different documents (D1, D2). Now you use a method of the same SemanticModel instance on all locations. But a SemanticModel is always document-specific, so if you have a location in D2, you also will need the SemanticModel for D2.

Means: Yes, such a test would be important :-)

Andreas,
I added the test for refactoring across documents and a couple of supporting classes for such a test. Additionally, I found an additional case for delegate references, fixed the action and added tests for it.
Look forward to your feedback. Thx.

Hmm, just tried latest code with a simple usecase: I have an one-liner method in a class and call that method in another class (different .cs file). When I press Ctrl+. on this method's declaration, I still get an exception here: https://github.com/icsharpcode/RefactoringEssentials/pull/167/files#diff-dcd7a5a4e531ea43dba4e398edfd21a5R95

I was able to reproduce the problem. I now understand your original concern about using the SemanticModel's document and that was this problem. I changed to code to use what I believe is a much better method of using the caller and caller symbol. Also, stepping away and coming back, I found a few areas where I could reduce the likelihood of an exception occurring and changed those.
The multiple document test I created originally was flawed in that it had callers in both documents and managed to hide this problem (a consequence of me trying to test 2 concerns with a single test). I fixed this test so that it will not hide the problem and created an additional test for the other concern.

Thank you, looks great and now works over document borders! While testing I've found one problem in implementation: If replaced method is overloaded (means there is more than one with same name in document), an exception is thrown at https://github.com/icsharpcode/RefactoringEssentials/pull/167/files#diff-dcd7a5a4e531ea43dba4e398edfd21a5R252, because here you receive more than one symbol. Also searching only by method name might lead to removing of wrong method.

Any updates? Closable?


Decrease RAM with forced releases of objects

Find all Release() calls were forcing would be better.

Fixed with #225


"Prettier-SQL.tabulateAlias": true ignores back ticks

Input data
Which SQL and options did you provide as input?
select
    coalesce(FAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen')  `Item family`,
    coalesce(SUBFAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen') `Item subfamily`,
    product.ITEMNR                                                  `Art-Nr.`,
    product.DESCRIPTION                                             Bezeichnung,
    coalesce(LOCATIONQTY, 0)                                        `Verfügbar`,
    STANDARDCOST                                                    EP,
    coalesce(StockAmount, 0)                                        `Lagerwert`,
    KONTONR
    /*, concat( KONTOBEZEICHNUNG, '|', KONTONR ) Account*/
from
    product
    left join product_family pf on ITEMFAMILY = FAMILY_ITEMS
    and ITEMSUBFAMILY = SUBFAMILY_ITEMS
    join (
        select
            ITEMNR,
            sum(LOCATIONQTY)                               LOCATIONQTY,
            sum(StockAmount)                               StockAmount,
            str_to_date(IP_TIMEDATEPK_REPORTING, '%Y%m%d') `last_date`,
            STANDARDCOST
        from
            report_stock_300
            join warehouse_300_state using (IP_WAREHOUSE, STOCKTYPE)
        where
            `State` = 'Verfügbar'
            and TDYEAR = $year
            and TDMONTH = $month
        group by
            ITEMNR,
            IP_TIMEDATEPK_REPORTING
    ) r300 using (ITEMNR)
order by
    coalesce(FAMILY_ITEMS, 'zz'),
    SUBFAMILY_ITEMS,
    product.DESCRIPTION

Expected Output
select
    coalesce(FAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen')    `Item family`,
    coalesce(SUBFAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen') `Item subfamily`,
    product.ITEMNR                                            `Art-Nr.`,
    product.DESCRIPTION                                       Bezeichnung,
    coalesce(LOCATIONQTY, 0)                                  `Verfügbar`,
    STANDARDCOST                                              EP,
    coalesce(StockAmount, 0)                                  `Lagerwert`,
    KONTONR
    /*, concat( KONTOBEZEICHNUNG, '|', KONTONR ) Account*/
from
    product
    left join product_family pf on ITEMFAMILY = FAMILY_ITEMS
    and ITEMSUBFAMILY = SUBFAMILY_ITEMS
    join (
        select
            ITEMNR,
            sum(LOCATIONQTY)                               LOCATIONQTY,
            sum(StockAmount)                               StockAmount,
            str_to_date(IP_TIMEDATEPK_REPORTING, '%Y%m%d') `last_date`,
            STANDARDCOST
        from
            report_stock_300
            join warehouse_300_state using (IP_WAREHOUSE, STOCKTYPE)
        where
            `State` = 'Verfügbar'
            and TDYEAR = $year
            and TDMONTH = $month
        group by
            ITEMNR,
            IP_TIMEDATEPK_REPORTING
    ) r300 using (ITEMNR)
order by
    coalesce(FAMILY_ITEMS, 'zz'),
    SUBFAMILY_ITEMS,
    product.DESCRIPTION

Actual Output
select
    coalesce(FAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen') `Item    family`,
    coalesce(SUBFAMILY_ITEMS_DESCRIPTION, 'nicht zugewiesen') `Item subfamily`,
    product.ITEMNR                                                  `Art-Nr.`,
    product.DESCRIPTION                                             Bezeichnung,
    coalesce(LOCATIONQTY, 0)                                        `Verfügbar`,
    STANDARDCOST                                                    EP,
    coalesce(StockAmount, 0)                                        `Lagerwert`,
    KONTONR
    /*, concat( KONTOBEZEICHNUNG, '|', KONTONR ) Account*/
from
    product
    left join product_family pf on ITEMFAMILY = FAMILY_ITEMS
    and ITEMSUBFAMILY = SUBFAMILY_ITEMS
    join (
        select
            ITEMNR,
            sum(LOCATIONQTY)                               LOCATIONQTY,
            sum(StockAmount)                               StockAmount,
            str_to_date(IP_TIMEDATEPK_REPORTING, '%Y%m%d') `last_date`,
            STANDARDCOST
        from
            report_stock_300
            join warehouse_300_state using (IP_WAREHOUSE, STOCKTYPE)
        where
            `State` = 'Verfügbar'
            and TDYEAR = $year
            and TDMONTH = $month
        group by
            ITEMNR,
            IP_TIMEDATEPK_REPORTING
    ) r300 using (ITEMNR)
order by
    coalesce(FAMILY_ITEMS, 'zz'),
    SUBFAMILY_ITEMS,
    product.DESCRIPTION

Usage

How are you calling / using the library?
What SQL language(s) does this apply to?
Which SQL Formatter version are you using?

@nene are there any plans to reintroduce the tabulateAlias option? it was very useful

Not really. The architecture of SQL Formatter makes it pretty much impossible to implement correctly.
It's also a formatting style that in general is problematic to apply automatically. It works for simple cases like this:
SELECT
  customer.fname   AS first_name,
  customer.lname   AS last_name,
  customer.address AS address
FROM
  customer;

But it quickly breaks down or gets silly when the code gets more complex, like:
SELECT
  CONCAT(customer.title, ' ', customer.fname, ' ', customer.lname) AS full_name,
  customer.address                                                 AS address
FROM
  customer;

or perhaps like:
SELECT
  CONCAT(
    customer.title,
    ' ',
    customer.fname,
    ' ',
    customer.lname
  )                AS full_name,
  customer.address AS address
FROM
  customer;

With the latter also being a particularly tricky case of formatting to implement.


How to validate on submit only. Not on change and blur.

I have looked at #2413, #81, #335 but could not find a solution.
method A: touchOnBlur: false
export default reduxForm({
    form: 'submitOnly',
    validate,
    touchOnBlur: false
})(App);

From first look it works, but if you focus after submit and type in, validation is going to be processed again.
method B: call validate from submitHandler
<form onSubmit={this.props.handleSubmit(values => {

          return new Promise(resolve => resolve())
              .then(() => {
                  return validate(values, this.props)
              })
              .then(errors => {
                  if (errors) {
                      throw new SubmissionError(errors)
                  }
              })

      })}>

export default reduxForm({
    form: 'submitOnly',
})(App);

Here validation errors are going to disappear as soon as you type something in input. (All errors get nullified here on onchange no matter what validation rules are).

method C: use shouldValidate and return false if submitting
<form onSubmit={this.props.handleSubmit(values => {
          return new Promise(resolve => resolve()).then(() => {})
      })}>

export default reduxForm({
    form: 'submitOnly',
    validate,
    shouldValidate: params => {
        if (!params.props.submitting) {
            return false;
        }
        return true;
    }
})(App);

Here validation happens only once. Validation error stays forever.

The asyncValidate function is called one last time before the form submits. The fourth argument, fieldString identifies what triggered this function. If this value is undefined that means it was called just before calling the submit function. Write this function to assemble an object of errors when there's no fieldString and throw them.
const asyncValidate = async (values, dispatch, props, fieldString) => {
  if (!fieldString && values.firstName === "abc") {
    const err = { firstName: `Cannot be "abc"` };
    throw err;
  }
};```

You will also want to define `asyncBlurFields` as an empty array (assuming you don't have blur validation on any fields) so that your async validator doesn't run on all form changes.

import { reduxForm } from 'redux-form'
import asyncValidate from './asyncValidate'
export default reduxForm({
form: 'submitOnly',
asyncValidate,
asyncBlurFields: [],
})(App);```
I tried setting this up on a sandbox for you but it's acting oddly. However I've noticed the sandbox having strange behavior for some time.
Try it on your local box and let me know what you find.

@dachinat You can achieve this with the handleSubmit prop.
So first thing first, don't pass any validate prop to any of your fields.
Now, let's look a little bit at the docs of handleSubmit, more exactly, this part:

If your onSubmit function returns a promise, the submitting property will be set to true until the promise has been resolved or rejected. If it is rejected with an object like new SubmissionError({ field1: 'error', field2: 'error' })

Thus, let's take your "method B" approach and fix it to make it work properly:
<form
  onSubmit={this.props.handleSubmit(values => {
    return new Promise((resolve, reject) => {
      const errors = validate(values, this.props);
      if (errors) {
        reject(new SubmissionError(errors));
      } else {
        resolve();
      }
    })
  })}
>

Considering that your validate function returns an object such as { field1: 'error', field2: 'error' }, you should be golden.
Furthermore, if you want to return a general form error message, not related to any field in particular, and have it available on the error prop passed by the reduxForm HOC, the error that your return from your validate function should look something like this:
{
  field1: 'error',
  field2: 'error',
  _error: 'General Error Message', // will be available under error prop
}

@Olliebaba Thanks for your example with asyncValidate and for the sandbox, it works.
@rizedr Thank you, your fix works great.
There's one thing, in both cases with asyncValidate and improved "method B" when you get an error message after submitting and type something into an input an error is going away. Is there a way for a message to stay until next submit occurs?

@dachinat you can make your error messages (field level only) persistent by setting persistentSubmitErrors: true in the reduxForm HOC properties.
However, this will still clear your form's general error message which is expected UX in my opinion - if it would be visible the user would expect that even with the new input the error is still there.
You could still make it persistent with some componentDidUpdate work and internal state on the component you decorate with reduxForm.
Your component will receive this props that are persistent even if you've changed an input:
submitFailed: true,
submitSucceeded: false,
submitting: false,

Let's see how they evolve:

Submit (invalid, we reject with SubmissionError:

submitFailed: true,
submitSucceeded: false,
submitting: false,

We change an input.

submitFailed: true,
submitSucceeded: false,
submitting: false,

Submit (now it's valid)

submitFailed: false,
submitSucceeded: true,
submitting: false,

Watch those values in componentDidUpdate and update a internal state of the component and display the error from there and you should be golden 👍

@rizedr
Thanks for your great help! persistentSubmitErrors: true managed to solve all of the problems.

Validates only on submit and does not remove error messages until next submit event.
Thanks!!!

Hey guys,
I tried @rizedr  approach and I do exactly that in my code but I don't see the error messages at all. When I look at the console, I see the thrown SubmissionError with the correct errors but I don't see the errors in my fields.
Here is what I do:
https://pastebin.com/iHxVKKT6

Quick fix did for me was:
add a property to the error object that makes it different from the previous returned one.
Like so:
error = { whateverKey: Date.now() }


Fix typing of RedemptionsRedeemStackableResponse

Currently parent_redemption field is marked as required in the RedemptionsRedeemStackableResponse but in reality this field is not returned in case there is only single voucher being redeemed. See below screenshot:

Hey @emreler I will take a look tomorrow, can you please in mean-time take a look at our https://github.com/voucherifyio/voucherify-js-sdk/blob/main/CONTRIBUTING.md and read about required changeset file when contributing?