Add validate endpoint step before creation

Create a step in the script that checks if an endpoint with the same name already exists before trying to create it. If the endpoint already exists, skip the creation step and print "Endpoint exists".

I need to move this in "main" to be used by the project repository


Show type and module of completion

It would be nice if intero could show the module and type for a completion while browsing the company popup. I've implemented something similar for purescript's psc-ide using company's meta case for backends.

I tried to make a PR but couldn't manage to get the type info for a "string" with intero. In psc-ide the completions sent to the editor already contain a module and type field for editors to use like this:
{
  "module": "Data.List",
  "identifier": "sort",
  "type": "forall a. (Ord a) => List a -> List a"
}

Maybe we could get something similar to work for intero?

I think that's completely possible to expose from intero. We'd have to have the command return something more structured at this point. JSON output seems like a good step.

Agreed, autocompletion could potentially provide a lot of additional info, this is also covered by my grand scheme for it: https://github.com/commercialhaskell/intero/issues/53 .  Makes sense to have more tickets, though, to track incremental progress towards that.

@Tombert
If you want to get started on this, you can look here:
https://github.com/commercialhaskell/intero/blob/master/src/GhciFind.hs#L55
You'd need a way to grab a Type given a Name. There's some code doing that here: https://github.com/commercialhaskell/intero/blob/master/src/GhciFind.hs#L344
I would make findLocalizedCompletions return a (Name,Maybe Type) via spaninfoVar and spaninfoType. And then do a lookup for each of the filteredToplevels here https://github.com/commercialhaskell/intero/blob/master/src/GhciFind.hs#L93 with the code I mentioned above.
Ideally at the end you'll have a complete list of [(Module, Name, Type)] and then you can print e.g.
Prelude.(++) :: [a] -> [a] -> [a]
Data.List.sortBy :: (a -> Ordering) -> [a] -> [a]

which would provide qualified names and types in one go. The Emacs Intero mode could deal with this information however it likes.
Later when we add some kind of JSON/protocol we can do something structured.

@chrisdone This is extremely useful not only for completion but also for looking up documentation with hoogle --info, which requires a fully qualified name almost always to unequivocally identify correctly the identifier we're looking for.

I won't be implementing this. But a PR is welcome.


Async Talks

This is a great start! You might think to add these talks..
Dave Beazley's "Build your own Async"
https://youtu.be/Y4Gt3Xjd7G8
It's not necessarily specifically about asyncio, however the content very much underlies asyncio's architecture and inner workings.
Edge DB's channel
https://www.youtube.com/channel/UCRF82wX0EPwqvKMBwvB4fQg
There are only 3 videos at the time of writing this, but Łukasz and EdgeDB have plans for more videos which goes very in-depth on asyncio specifically.
Hope this helps!

Hi thanks for the addition! All the talks look fun and updated. Could you please add them under the Talks section and send a PR? I'll merge. 🔥🔥


Fix dependencies for arch in INSTALL.md

current master does not build on arch w/o libxcb
https://www.archlinux.org/packages/extra/x86_64/libxcb/

Thanks for all the great work you put into the project!


Dockerized project cannot connect to elastic

I have a docker compose file containing elasticsearch and my project. When I tried to start the project, elasticsearch couldn't register, I didn't know where I was doing wrong, can you help?
the codes i wrote
https://github.com/bayramerenn/LogingInfra
nlog.Development.config

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true">
	<extensions>
		<add assembly="NLog.Targets.ElasticSearch"></add>
	</extensions>
	<targets>
		<target name="elastic" xsi:type="BufferingWrapper" flushTimeout="5000">
			<target xsi:type="ElasticSearch"
					uri="${configsetting:item=ElasticUrl}"
					index="Development"/>
		</target>
	</targets>
	<rules>
		<!--All logs, including from Microsoft-->
		<!--<logger name="*" minlevel="Trace" writeTo="allfile" ></logger>
    <logger name="*" minlevel="Trace" writeTo="ownFile-web" ></logger>
    <logger name="*" minlevel="Trace" writeTo="database" ></logger>-->
		<logger name="*" minlevel="Trace" writeTo="elastic" ></logger>
	</rules>
</nlog>

nlog.Production.config
<?xml version="1.0" encoding="utf-8" ?>

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true">
	<extensions>
		<add assembly="NLog.Targets.ElasticSearch"></add>
	</extensions>
	<targets>
		<target name="elastic" xsi:type="BufferingWrapper" flushTimeout="5000">
			<target xsi:type="ElasticSearch"
					uri="${configsetting:item=ElasticUrl}"
					index="Production"/>
		</target>
	</targets>
	<rules>

		<logger name="*" minlevel="Trace" writeTo="elastic" ></logger>
	</rules>
</nlog>

appsettings.Development.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ElasticUrl": "http://localhost:9200/"
}

appsettings.Production.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ElasticUrl": "http://elasticsearch:9200/"
}

docker-compose.yml
version: "3.8"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
    volumes:
      - elasticsearch_volume:/usr/share/elasticsearch/data
    environment:
      - xpack.monitoring.enabled=true
      - xpack.watcher.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
    networks:
      - nlognet
  kibana:
    image: docker.elastic.co/kibana/kibana:7.6.2
    container_name: kibana
    restart: always
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200/
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200/
    networks:
      - nlognet
  nlog.api:
    image: nlog_api
    depends_on:
      - elasticsearch
      - kibana
    build:
      context: .
      dockerfile: NLogElastic/Dockerfile
    container_name: nlog.api
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
    ports:
      - "5005:80"
    networks:
      - nlognet

volumes:
  elasticsearch_volume:

networks:
  nlognet:
    driver: bridge

the error is related to me, you can close it

If you can tell what was missing, then it might help others. Maybe also add answers here:

https://stackoverflow.com/questions/75257249/dockerized-project-cannot-connect-to-elastic
https://stackoverflow.com/questions/75252563/net-core-nlog-targets-elasticsearch-when-i-try-to-dockerize-the-project-i-cant

The error was related to me, I didn't feel the need to add it because I thought it was nothing to solve.


Apply License

Waiting on @agustingabiola since his e-mail is attached to this.  In case there are changes needed.


Stopped working

Tried with no addons enabled. Firefox up to date.

I fixed three bugs caused by Facebook's code changes to the event page - one with the incorrect handling of certain types of addresses, one with the export button not working, and one with the handling of dates/times.
Can you update the script and see if it works now? If it doesn't, click the "About" tab on the event page, refresh the page, and wait about 5 seconds. If that still doesn't work, let me know and send me the link to the event page if possible.

I'm closing this issue - feel free to add a comment if the bug still exists

Working. Thank you! (:


Adding failure details for DataReader & DataWriter APIs

@laurenhughes : PR passed acceptance checklist. Please evaluate further and merge if appropriate. Thanks!


Error-raising functions can fire spuriously depending on join order

A straightforward repro of this problem uses the config system, but it isn't necessary to do so.
Create the config testing extension and configure it a bit:
edgedb> create extension _conf;
OK: CREATE EXTENSION
edgedb> configure instance set ext::_conf::Config::config_name := 'inst';
OK: CONFIGURE INSTANCE
edgedb> configure current database set ext::_conf::Config::config_name := 'database';
OK: CONFIGURE DATABASE

Fetch the config_name from the final config object, and also assert on its value:
edgedb> select cfg::Config.extensions[is ext::_conf::Config].config_name;
{'database'}
edgedb> for c in cfg::Config.extensions[is ext::_conf::Config].config_name
....... union (
.......   assert(c = 'database', message := 'wrong: "' ++ c ++ '"')
....... );
edgedb error: QueryAssertionError: wrong: "inst"

It can also happen with less clearly dodgy functions:
edgedb> select cfg::Config.extensions[is ext::_conf::Config].config_name[3];
{'a'}
edgedb> select cfg::Config.extensions[is ext::_conf::Config].config_name[4];
edgedb error: InvalidValueError: string index 4 is out of bounds (on line 1, column 66)

Division by zero can be triggered like this too.
I believe the issue here has to do with how postgres is query planning this: it is fetching all ext::_conf::Config and evaluating the assert on them before it semijoins it against cfg::Config.extensions, so the error gets raised while processing a row that will be filtered out.
Marking the error-raising functions as volatile in SQL fixes the issue. I think one reasonable solution to this problem would be to infer which functions can raise errors, and to mark them all as volatile in SQL (but not necessarily in edgeql.). The tricky bit is that we need to also be able to use some of these functions in constraints and indexes, where volatile functions are not allowed, so we would need to also provide wrapper versions of all of these functions at immutable/stable volatility.
Those places don't allow complex expressions, so we should be able to use the non-volatile versions without worrying about weird join-order effects.
Another thing that seems to work is adding row_number() over () to the target list alongside the call to the error-raising function. I think this is because the row numbers are sensitive to the evaluation order decisions here.

I did manage to reproduce this without using the config system.
First clone the relevant config system parts as normal types:
create module fcfg;

CREATE ABSTRACT TYPE fcfg::ConfigObject;

CREATE ABSTRACT TYPE fcfg::AbstractConfig extending fcfg::ConfigObject;

CREATE ABSTRACT TYPE fcfg::ExtensionConfig {
    CREATE REQUIRED SINGLE LINK cfg -> fcfg::AbstractConfig {
        CREATE DELEGATED CONSTRAINT std::exclusive;
    };
};

ALTER TYPE fcfg::AbstractConfig {
    CREATE MULTI LINK extensions := .<cfg[IS fcfg::ExtensionConfig];
};

CREATE TYPE fcfg::Config EXTENDING fcfg::AbstractConfig;
CREATE TYPE fcfg::InstanceConfig EXTENDING fcfg::AbstractConfig;

create type fcfg::TestConfig extending fcfg::ExtensionConfig {
    create property config_name -> std::str {
        set default := "";
    };
};

insert fcfg::TestConfig { config_name := 'instance', cfg := (insert fcfg::InstanceConfig) };
insert fcfg::TestConfig { config_name := 'database', cfg := (insert fcfg::Config) };

With this, the queries work. But if we add a ton of Config objects that aren't referenced by TestConfig and run ANALYZE:
edgedb> for _ in range_unpack(range(0, 10000)) union (insert fcfg::Config);
edgedb> administer statistics_update();
OK: ADMINISTER

Now it will fail!
edgedb> select fcfg::Config.extensions[is fcfg::TestConfig].config_name;
{'database'}
edgedb> for c in fcfg::Config.extensions[is fcfg::TestConfig].config_name
....... union (
.......   assert(c = 'database', message := 'wrong: "' ++ c ++ '"')
....... );
edgedb error: QueryAssertionError: wrong: "instance"

so we would need to also provide wrapper versions of all of these functions at immutable/stable volatility

It would probably make more sense to go the other way around and add volatile wrappers around stable/immutable versions.  Use the former in complex expressions and the latter in index/constraint expressions.


Update HF model repository url

Change the link ydshieh/kosmos-2-patch14-224 to microsoft/kosmos-2-patch14-224 after this PR being merged into transformers/main.

cc @donglixp


How to create custom huggingface model?

Hey, Thanks for your project!
I want to create absolutereality_v181INPAINTING.safetensors model for inpainting. I don't know how to create custom models to Huggingface. You mentioned here but I am new to this. So, is there any tutorial to create custom models like yours or can you please guide me how to create and which platform? and I don't want to use in SD WebUI Extension. I want in standalone version of Inpaint!

The page linked below describes the diffusers command used to convert the inpainting model from the safetensors extension into the diffusers folder format:
https://huggingface.co/Uminosachi/realisticVisionV51_v51VAE-inpainting/discussions/1#64cc55ece3cc4a476d8fa866

Thanks for the reply but I am getting this error - https://github.com/huggingface/diffusers/issues/5374


Create MANIFEST.in

This bundles in license.txt into the sdist on PyPI. Context: I'm trying to get this package onto Conda Forge, and they do require the license file to be included in the source code distribution.

Thanks. I am not familiar with MANIFEST.in when I look at the contents of design-by-contract-0.2.1.tar.gz (or the wheel) the license file does not appear. If it should appear at the toplevel within, then I will add include=['license.txt'] to pyproject.toml.  Is that what is required?

As for publishing to the cheese shop, perhaps this is useful to you:
# From https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

name: "Publish to PyPI"

on:
  release:
    types: [published]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v2
      - name: Install Poetry
        uses<EMAIL_ADDRESS>      - name: Build package
        run: poetry build
      - name: Publish package
        uses<EMAIL_ADDRESS>        with:
          user: __token__
          password: ${{ secrets.PYPI_API_TOKEN }}

@StefanUlbrich That might work as well; but here's the documentation about MANIFEST.in: https://packaging.python.org/en/latest/guides/using-manifest-in/

@StefanUlbrich That might work as well; but here's the documentation about MANIFEST.in: https://packaging.python.org/en/latest/guides/using-manifest-in/

I think this is only for the traditional workflow. Not for Poetry I think. Can you please confirm if the file is included as expected in the tar file (build it with poetry build and it will appear in dist)? If the expected outcome is that the file is in the root of the tar, then my method mentioned above is cleaner (no additional file)

See this reply. @thewchan , could you please explain how the anaconda upload workflow works? For Pypi, the package is automatically created and uploaded once there is a new relase–it might make sense if we automate it analogously

@StefanUlbrich no worries at all; as you make releases in PyPI, the Conda Forge feedstock is automatically updated as well. The maintainers (me, I can add you or others if you desire) will keep an eye out if anything breaks, e.g. with updating dependencies.

@StefanUlbrich And yes; based on what's said on the Stack Overflow post, using the include field in pyproject.toml should alleviate this.

Hi, I included the file in the source distribution. I would appreciate to be included in the maintainers list. Thanks

@StefanUlbrich no program at all; I will add you as a maintainer.


Takes forever to send and show me if a message has been sent

When I send something it just says "sending..."
eventually it'll show the message and the message the other person sent but that's after forever of waiting.

This seems to be an issue in IG, you can check that their service is experiencing outages


Documentation dark-mode support doesn't consider logo or LaTeX

The docs seems to have a dark-mode enabled by default for users with dark-mode browser/OS by the used pydata_sphinx_theme. This however doesn't currently change the logo, or LaTeX rendering which makes them a bit unreadable

Additionally, syntax highlighting appears to be different than in light-mode, but quite unreadable as well. Notebook output however is nicely dark-mode.

Fix

Logo could have two versions, or a single SVG with detection for light and dark modes.
LaTeX color is probably adjustable somewhere
Syntax highlighting theme for dark-mode is probably adjustable as well

@nikosavola Thanks, this was already updated, indeed. Please check whether clearing all cookies in your browser makes the change visible. (This was reportedly the solution in @saipavanc ’s case.)

@nikosavola Thanks, this was already updated, indeed. Please check whether clearing all cookies in your browser makes the change visible. (This was reportedly the solution in @saipavanc ’s case.)

Yes, this seems to work. I'll close the issue.


Allow lambda_function_associations to be set

Fixes #77

@strongpauly, pipeline is red, just need to use terraform fmt -recursive to fix format issues!


Not working for Golang's memory profiling

First, thanks for this cool project! Seems that there is a bug when reading from the Go's memory profile:
package main
import (
	"fmt"
	"net/http"
	_ "net/http/pprof"
)
func hello(w http.ResponseWriter, req *http.Request) {
	fmt.Fprintf(w, "hello\n")
}
func headers(w http.ResponseWriter, req *http.Request) {
	for name, headers := range req.Header {
		for _, h := range headers {
			fmt.Fprintf(w, "%v: %v\n", name, h)
		}
	}
}
func main() {
	http.HandleFunc("/hello", hello)
	http.HandleFunc("/headers", headers)
	http.ListenAndServe(":8090", nil)
}

curl http://<IP_ADDRESS>:8090/debug/pprof/heap\?seconds\=10 > heap_profile

When loading the heap_profile, error occurs:
Failed to load format Error: Samples must have positive weights
    at n.appendSampleWithWeight (speedscope.026f36b0.js:174)
    at r (/import.e3a73ef4.js:107)
    at /import.e3a73ef4.js:115
    at Generator.next (<anonymous>)
    at s (/import.e3a73ef4.js:115)

Can we just ignore the stack with negative weights? The related PR is #375 , PTAL


Kubernetes Support

This Epic will track the work for Steeltoe components built to simplify the development process on Kubernetes.

Hi,
As a part of this Epic, I would like to see the following To start with

Similarly to AddCloudfoundry there should be a method to called AddKubernetes that will add all Kubernetes specific stuff from ConfigMap and Secrets. Alternatively you can separate it out as AddConfigMap and Add Secrets also
services.ClonfigureCloudfoundry should be able to load all the backing services from config map and secrets.

3.0.0-m3 will contain the work from #209, #316, #317, #338
3.0.0-rc1 will contain at least #107 and #358.

Any idea when a production-ready version is expected that contains all these features. I see that m3 is 100% complete and Rc1 is not showing progress. Is there some way we can see some early bits with samples.

Hi @VenkateshSrini, The good new is that M3 is available now and samples are coming soon.  The bad news is that during publishing to Nuget.org they blocked our Kubernetes packages at this time and we need to get approval for our naming, so everything but the Kubernetes packages are on NuGet under 3.0.0.M3.   You can access the Kubernetes packages on MyGet.org (https://www.myget.org/feed/Packages/steeltoedev) until we can get them on NuGet.
RC1 is set for early August.

Is M3 production ready?

Not recommended.  Here is a list of our release types: https://github.com/SteeltoeOSS/Steeltoe#release-types

3.0.0-rc1 contains the preview of what will be in released for 3.0.0 GA (expected in mid-August). See roadmap for updates.


[Blazor] Problems with Component rendering in a loop

Is your feature request related to a problem? Please describe.
Related to Blazor 0.7.0 and Blazor Components.
The way rendering of Components in a loop is handled causes me some frustration and maybe it could be improved.
I am sure you have probably thought a lot about how to handle this and maybe I am going about it in the wrong way.
Component rendering and state
It is not possible to keep state in a Component when used in a loop, since it will be reused and parameters updated whenever components are being rendered, which requires state to be stored and synchronized to a long lived object (singleton, static etc.), so component state can be restored when re-rendering - sort of what have been done with AppState in the "FlightFinder" demo application, except it doesn't have any additional component state that needs to be synchronized and restored, which is what ends up causing the headache.
I have components which dynamically changes in state based on both user actions and also timers that automatically add or remove to a list or modifies the data.
Here is a simple example to set the scene:
@foreach (var msg in _list)
{
    <Test Message="@msg" />
}

@functions
{
    List<string> _list = new List<string>() {"Message1", "Message2"};
}

This will render 2 Test Components with the Message property set to "Message1" and "Message2":
Component1 = "Message1" - new instance, Init() called
Component2 = "Message2" - new instance, Init() called

If "Message1" is removed from the list and StateHasChanged() is called to re-render:
Component1 = "Message2" - update
Component2 - instance is disposed.

Init() will not be called on Component1 since it is being re-used and the parameter is updated.
Component2 will be disposed even though it contains "Message2" which still exists.
Now internal state of Component1 need to be restored with the state of Component2 as it is now displaying the content of what was previously shown in Component2.
Now lets say you render the list in reverse order because you want new items to show up at the top of the list instead of at the bottom. The initial list only contains "Message1". The following is rendered:
Component1 = "Message1" - new instance, Init() called

Now "Message2" is prepended to the list and StateHasChanged() is called to re-render the list:
Component1 = "Message2" - update
Component2 = "Message1" - new instance, Init() called (again for "Message1")

This means that in Init() you can't setup anything related to the data of the Component, since it will never be triggered for "Message2", and data can be switched around between components at any time.
So a Component is basically a template and cannot hold any state (maybe that's what got me confused in the first place as I was thinking of it in another way than just a template for rendering).
This has lead me to use ComponentModels (like a ViewModel) that holds the state and the initial data/model, but this also means that I now have to wrap all data/models with this ComponentModel and take care of storing the ComponentModel in a long lived object (static, singleton etc.), so state can be restored when re-rendered.
References
Another thing is that getting and handling the reference to a Component generated in a loop is somewhat difficult.
One way around it, is to create a property and let the setter handle it, but then you need to track components that is no longer rendered and which needs to be removed from the list with component references and disposed.
Example:
@foreach (var msg in _list)
{
    <Test Message="@msg" Ref="@Ref" />
}

@functions
{
    List<string> _list = new List<string>() {"Message1", "Message2"};
    List<Test> _refs = new List<Test>();

    protected Test Ref
    {
        get => throw new NotSupportedException("Not supported");
        set => _refs.Add(value);
    }
}

Alternatively you need to let the Component register itself with its parent(s), either using

CascadingValue
Reference to the parent that is supplied using a property parameter on the the component using some standard interface so it doesn't have a hard dependency on the parent/context.
Two event delegates - RefBind/OnRefBind (happens after first render since ref is not available before), and RefUnbind/OnRefUnbind (happens when disposed or if component is not rendered - but not sure how it would currently be detected).

This can of course be implemented by extending BlazorComponent, but a standardized way for handling this would be great.
Describe the solution you'd like
Component rendering and state
I'm not exactly sure how to solve the problem, and even if it should be considered one.
One way of controlling which component(s) gets instantiated, updated or disposed could be if it was possible to supply an Id/Identifier (object) to the Component which will be used to determine how it is handled:

If Id does not equal an Id of a previously rendered Component, a new instance of the Component is created.
If Id equals an Id of a previously rendered Component, the existing instance is updated with the parameters supplied.
Any Component previously rendered that is no longer used/updated is Disposed, which happens already.

References
It would be great to have some standardized way of handling it.
Let the Ref attribute have an overload that take a delegate/lambda that can be used to register reference and signal a change that causes it to be unregistered. Either state is supplied as a parameter in a Action<TComponent, State> or Action is used and Component has a property like "IsRendered" that can be checked to know if reference should be stored or removed.
Alternatively as mentioned previously you can bind to events like RefBind/OnRefBind and RefUnbind/OnRefUnbind on a Component, as an alternative to the "Ref" attribute.
Additional context
On one hand I understand what is going on and why it happens - it finally makes sense now.
But I wish there where some better way for handling both how components are created/updated and how references are retrieved / managed in order to prevent re-rendering and state handling, but if state should never be stored in the component then it of course doesn't matter.
At first thought maintaining state in the component would make life much easier.
But maybe it is not well thought true and storing state in the component is not desirable and will end up with negative side-effects.

Closing in favor of https://github.com/aspnet/AspNetCore/issues/8232


Fix(slider): Add support for change event.

Also clean up test slide event test code. Closes #1070

LGTM


Support numbered lists

It looks like https://github.com/burodepeper/language-markdown/pull/94 was meant to fix this, but it doesn't work for me in the latest version. I could be interested in sending a PR for this.

Blank list items get removed, check: https://github.com/burodepeper/language-markdown/blob/master/lib/main.js#L55-L60
It's meant for when you're at the end of a list, then it'll remove the last, empty list item, so you can just press enter twice. I believe most word processors implement something similar.

Sorry! I should have known that behavior from the lists.

No problem, and you shouldn't anything. Thanks for all your help by the way! Appreciate it a lot


Place market/limit order with metadata.

Description
Proposed change: Add new struct MatchedOrderMetadata<BaseAsset, QuoteAsset> & return from place order functions to provide on-chain info about orders being matched & parties involved in trade.
Use cases this change can enable:

Third party protocols, using deepbook as liquidity layer, can add custom asserts & policies on matched orders in same txn(revert if matched orders doesn't fullfill custom policies & checks). This approach provides a hook for protocols to add custom functions  over matched orders in their respective packages with no changes in deepbook.
Deepbook currently doesn't support slippage/min_buy amount checks. Returning matched orders from place order can allow protocols like KriyaDEX to provide slippage control in Pro-trading. (revert PTB when matched order price > allowed slippage).
KriyaDEX is building a perp-dex using deepbook as matching engine(in audit). For all such margining protocols dealing with leverage, it's essential to have on-chain information about matched orders(parties involved, price & size) to deterministically settle trades with protocol's clearing house.

Scenario(for perp-dex use case):

Attacker configures 2 wallets (w1/w2) in BTC market.
w1 places 10x short order at a very low price (say $100/BTC).
w2 places 10x long order to match with w1 in the same PTB.
After order matching, w2 is instantly at a high profit(mark price being $35k for BTC) while w1 is in a huge loss & banckrupt.
w2 waits until there is some liquidity in deepbook & closes it's position with someone else while realising the profits & withdraws.
w1 is instantly bankrupt with a loss to insurance fund.
This induces bad debt to the system & margin protocol's insurance fund can be drained.

How returning matched orders prevents this attack?
Third party margin protocols can enforce checks on the matched orders price. If matched order price is deviated by say x%, txns can be reverted which will prevent order matching at highly deviated price(wrt mark_price) in low liquidity environments. This scenario is analogous to slippage in spot deepbook pools.
Changes & Upgradeability:

private funcs match_ask/match_bid now also returns vector - back compatible
added new public funcs with metadata - place_market_order_with_metadata, place_limit_order_with_metadata, swap_exact_base_for_quote_with_metadata, swap_exact_quote_for_base_with_metadata. - back compatible

Test Plan
How did you test the new or updated feature?
Added unit tests for all the changes.

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

I see that some of the concern/questions I had are addressed in the next commit!

Hi @dariorussi , let me know if these changes are good to go or something is required from our end.

closing this PR as https://github.com/MystenLabs/sui/pull/15275 contains all changes and has been merged


[EVENT REQUEST] - Codeunit 90 "Purch.-Post" - Function UpdateInvoicedQtyOnPurchRcptLine

Describe the request
Old Code:
local procedure UpdateInvoicedQtyOnPurchRcptLine(var PurchInvHeader: Record "Purch. Inv. Header"; var PurchRcptLine: Record "Purch. Rcpt. Line"; var PurchaseHeader: Record "Purchase Header"; var PurchaseLine: Record "Purchase Line"; QtyToBeInvoiced: Decimal; QtyToBeInvoicedBase: Decimal; TrackingSpecificationExists: Boolean; var TempTrackingSpecification: Record "Tracking Specification" temporary)
begin
    OnBeforeUpdateInvoicedQtyOnPurchRcptLine(
        PurchRcptLine, QtyToBeInvoiced, QtyToBeInvoicedBase, SuppressCommit, PurchInvHeader, PurchaseHeader, PurchaseLine);

    with PurchRcptLine do begin
        "Quantity Invoiced" := "Quantity Invoiced" + QtyToBeInvoiced;
        "Qty. Invoiced (Base)" := "Qty. Invoiced (Base)" + QtyToBeInvoicedBase;
        "Qty. Rcd. Not Invoiced" := Quantity - "Quantity Invoiced";
        Modify();
    end;

    OnAfterUpdateInvoicedQtyOnPurchRcptLine(
        PurchInvHeader, PurchRcptLine, PurchaseLine, TempTrackingSpecification, TrackingSpecificationExists,
        QtyToBeInvoiced, QtyToBeInvoicedBase, PurchaseHeader, SuppressCommit);
end;

New Code:
local procedure UpdateInvoicedQtyOnPurchRcptLine(var PurchInvHeader: Record "Purch. Inv. Header"; var PurchRcptLine: Record "Purch. Rcpt. Line"; var PurchaseHeader: Record "Purchase Header"; var PurchaseLine: Record "Purchase Line"; QtyToBeInvoiced: Decimal; QtyToBeInvoicedBase: Decimal; TrackingSpecificationExists: Boolean; var TempTrackingSpecification: Record "Tracking Specification" temporary)
//Init New Code
var
    IsHandled: Boolean;
//End New Code
begin
    OnBeforeUpdateInvoicedQtyOnPurchRcptLine(
        PurchRcptLine, QtyToBeInvoiced, QtyToBeInvoicedBase, SuppressCommit, PurchInvHeader, PurchaseHeader, PurchaseLine);

    with PurchRcptLine do begin
        "Quantity Invoiced" := "Quantity Invoiced" + QtyToBeInvoiced;
        "Qty. Invoiced (Base)" := "Qty. Invoiced (Base)" + QtyToBeInvoicedBase;
        "Qty. Rcd. Not Invoiced" := Quantity - "Quantity Invoiced";
        //Init New Code
        IsHandled := False;
        OnBeforeModifyInvoicedQtyOnPurchRcptLine(PurchRcptLine, IsHandled);
        if not IsHandled then
            Modify();
        //End New Code
    end;

    OnAfterUpdateInvoicedQtyOnPurchRcptLine(
        PurchInvHeader, PurchRcptLine, PurchaseLine, TempTrackingSpecification, TrackingSpecificationExists,
        QtyToBeInvoiced, QtyToBeInvoicedBase, PurchaseHeader, SuppressCommit);
end;

New Event:
[IntegrationEvent(false, false)]
local procedure OnBeforeModifyInvoicedQtyOnPurchRcptLine(var PurchRcptLine: Record "Purch. Rcpt. Line"; var IsHandled: Boolean)
begin
end;

Additional context
We need an additional event in Codeunit 90 "Purch.-Post" in the function UpdateInvoicedQtyOnPurchRcptLine so we can access the modify() code in this line. It will be required too an IsHandled variable.
Thank you in advance.
Internal work item: AB#538749

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 21460.


Add guidance on determining who to assign to a PR review

As discussed in #114.
Assigning @cfarm, but anyone can feel free to pick this up.

Was already in the repo and needed something to finish out the day so I knocked this out quickly.


VCS Integration

Hello!
Just pushed this WIP PR #39. Mainly to talk about how can dobi better integrate with git.
As I see things, there are two flows I would like dobi to allow. The first one is what #39 aims to achive.
Forbidding a job to run if  HEAD  is not the same as the dobi job branch parameter. This would allow a workflow similar to the below.

Its not quite clear in my mind yet if we need to provide similar behavior with the image resource. Since if a image depends on a job that is bound to a branch, the image task would not run anyway.

job=release:
    use: releaser
    mounts: [dist]
    branch: "master"
    env:
     - "VERSION={env.VERSION}"
    depends: [binary]

job=canary:
    use: releaser
    branch: "canary"
    env:
     - "VERSION={env.CANARY_VERSION}"
    depends: [binary]

The second would allow a workflow similar to Captain where dobi build,dobi push and dobi pull would run/push/pull a specific image task depending where HEAD is. This would be great as a base for a future deploy resource. Maybe a git resource that would let the user link branch to an image
git:
    branches:
     - canary=canary
     - master=release

So far the only integration is through variables. You can get git branch from '{git.branch}, which can be passed to the job from an environment variable. From inside the job you could then check the branch and exit 1` if it doesn't match the expected.
What's the use case for not allowing a job to run instead of just paramaterizing the job to run with the branch name?

@dnephin
Paramaterizing a job to specific branch would narrow the workflow possibilities.
I use git-flow so all features fall under "features/****".
I might want a canary job to be able to run on any feature/** branch.
But at the same time would like to make sure the release job only run on master

My big concern with more integration with VCS is that it makes it a lot more work to add support for new ones. If the only support is variable it will  be easy to add feature parity for others.
If there is tight integration where dobi is actually aware of things like tags and branches it becomes a lot more work to support another VCS, and could add a lot of complication if the objects don't map cleanly to each other (ex: doesn't have the same concept for tags or branches).
Since these restrictions can be imposed from inside a job by passing in the variable to the job, it seems like you could do what you want today with a script in the container, right?

If .git is mounted inside the container, I can script anything. But in this scenario, dobi would spin the container anyway just to figure out it shouldnt have ran.

That's true, but this scenario should be pretty rare, right? It's only to catch an accidental run when you're on the wrong branch? Or do you expect it to happen often?

Accidental things seem to happen a lot with those around me, myself included. Its the only motive.
The approach would also compromise the the subsequent task because they might expect the previous job to have accomplished something. I also do not want dobi to be tightly integrated with git but I see this more like a health check feature just to ensure a successful dobi run is truly successful

@dnephin  github.com/Masterminds/vcs seems like a cool cross vcs package

That does look really cool, we use their glide too for deps as well

The script approach would also compromise the the subsequent task because they might expect the previous job to have accomplished something.

As long as the check exits with a non-zero code, none of the following tasks will execute, so i think this is ok.
It could even be done with a single image that is shared between projects:

image=branch-checker:
  image: cescoferro/branch-checker
  tags: [latest]
  pull: once

job=check-branch-is-master:
  use: branch-checker
  env:
    - 'ACTIVE_BRANCH={git.branch}'
    - 'ALLOW_BRANCHES=master'

job=release:
  ...
  depends: [check-branch-is-master]

Since the branch-checker would exit with status code 1, the release would never run. You don't even have to modify the release script, it can all be done from a generic image/job.
It could even be moved out into a separate yaml, and just included with meta.include

I like this approach better! But still looks like a lot of boilerplate. It would force the user to maintain an docker image that would just run [[ ${ACTIVE_BRANCH} == ${ALLOW_BRANCHES} ]].
IMHO dobi should handle those normal use cases. Maybe we could add a recipe metadata field, that would allow us to include the resources needed by these workflow programativally with an images we can maintain. I can see a lot of others usefull recipes we could agregate, making dobi easier to use as well as keeping the config file as slim as possible

True, I guess this could be improved even further to something like this:
image=branch-checker:
  image: bash
  tags: [latest]
  pull: once

job=check-branch-is-master:
  use: branch-checker
  command: 'bash -c \'[[ ${ACTIVE_BRANCH} == "master" ]]\''
  env: ['ACTIVE_BRANCH={git.branch}']

job=release:
  ...
  depends: [check-branch-is-master]

The recipes idea is really interesting. Right now the only support is include: ... and #22 looks at expanding the support of include: ....  Maybe another include type could be a remote http url?
That way you could host recipes in some common place, and dobi would download and cache the config the first time you run it. Do you think that would work for recipes?

@dnephin  Thats exactly it. It would be Dobi's version of the Ansible Galaxy
I thought about remote http url, but did write it  because I thought that might make dobi useless when offline, which might be bad for a building tool. Thats why I sad programatically, but the concept is the same.

Ya, I think as long as we cache the file it can still work offline, as long as it's been run at least once already.

Going to close this issue since it should be handled by supporting "include from url" in #22


First attempt to create a Checker

@cristianoc
This Checker is based on Checkers.callback_print_c_method_calls and prints every Java method call.
Note: for my convenience I have added oUnit-all.cache to .gitinore.

@luiscruz FYI,  we're rolling out a new framework that makes it easy to write a flow-sensitive checker if you can express your checker as an abstract interpretation. See https://github.com/facebook/infer/blob/dec843f5f53ced7a41bd3331de7be3c89a795b99/infer/src/checkers/copyPropagation.ml for an example of what these can look like.
The framework is restricted to intraprocedural checkers for now, but we're planning to extend it to summary-based interprocedural analyses in the near future.

Thanks @sblackshear, it looks interesting. I'll take a look at that :+1:


Tooltip does not disappear

When using the tooltip like this and the Icon was clicked to follow the link, the tooltip stays even on the new page.
<Tooltip Title="MyTitle" Placement="TooltipPlacement.Bottom"><Icon Name="IconName.PlusSquare" Size="IconSize.x2" /></Tooltip>

Only refreshing the page with F5 removes the tooltip.

@Hunv Please share the below information.
.NET Version:
BlazorBootstrap Version:
Blazor WebAssembly / Server:

@drewcav96 There is no need to put button inside the Tooltip. But itself supports tooltip.
https://demos.blazorbootstrap.com/buttons#show-tooltip

@drewcav96 Please share a sample GitHub project to reproduce the issue.


fix: operator highlighting with cutlass mappings

I just discovered your plugin and I really like the eye candy :smile: very nice work
I found a bug when also use vim-cutlass(or similar mappings): the highlighting gets stuck in operator mode
To reproduce:

set a mapping like noremap d "_d
press d and wait for the operator highlighting to become active
press another key (e.g. e) to end the operator mode
the highlighting will stick with the cursor until the next mode change

I checked the code streamlined it a bit and reset the operator highlighting on the next key press.
So far it is working without any errors for me

Looks great, thanks!

I'm away from my computer right now, but the code doesn't seem to be formatted with stylua

Yes you are correct, the code was not formatted with stylua
I was not aware of it when hacking together my fix :see_no_evil:


feat: Want to add our Contributor page in the website

What feature?
Details
Is your feature request related to a problem? Please describe.
Our Contributors page in the website
Describe the solution you'd like
We can add a Contributors page in the website. which is shows the name and the profile image of the contributor.and the number of commits is done by the contributor
Add screenshots
na
Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

previously we had & currently we don't want to add contributors page


[Enum Request] table 5088 - Profile Questionnaire Line - Customer Class. Field

Hi al-team,
can you change the data type of field 7 "Customer Class. Field" to an enum?

This is already implemented
field(7; "Customer Class. Field"; Enum "Profile Quest. Cust. Class. Field")


PLT-677 Rounding conventions

Add rounding convention data model.
Define a single interface and implementation. Making it part of the named lookup system (like holiday calendars) did not make sense, as it would involve inventing names for rounding rules, which are essentially numeric data.

The patch makes this a lot clearer. I think we'll have to see how effective the cache is by measuring once it's in use - we might need to cache common fractional rounding conventions.


Proposal: Add "ContentData" to customize TableOfContents

This is proposal.  Further improvements will be required.
Any comments are welcome.
Add new Page Param ".TableOfContentsCollection" with goldmark.
This enables users to customize table of contents as they like.
You can be used it in shortcodes but have to use with {{< >}} (as non-markdown shortcode) because headers in contents cannot be determined until markdown shortcodes ({{% %}}) are rendered.
First, I was tackling the issue #7095 . It was harder than it looks.
Rather than fixing the single issue, I added the new param that gives Hugo some flexibility
Here is usage example

Addresses #7095, #6811, #6081, #225

I agree about the general idea, but not the param bit.
I have another issue somewhere describing a "page map"; the golden end goal would be that you could do
{{ range .Page.ContentMap.Headings }}

{{ end }}

Etc. etc. in a very efficient way. I need some help on the Goldmark side to get to the above, but it would be really cool.
That said, I admit that the above ideal end goal may be some time in the future, so I'm open to adding ToC as the first step ... If we could agree on a name (not params) for the container collection, e.g.:
{{ range .Page.ContentData.TableOfContents }}
{{ end }}

Thank you for commenting @bep

it would be really cool.
Absolutely.
I am afraid that I cannot find your description even now but I hope it will be done in the future.

I agree with your suggestions. Especially, I am appreciating your attention to names which interface with general user.
I will update.

Done.

ContentData was adopted
TableOfContentsCollection (as param?) was removed
PR title was changed

Hi, will this feature be added in the future? I'd like to customize toc content by shortcode as I need to filter out some headings.
I've tried this solution, but it throws out error can't evaluate field Content in type *hugolib.ShortcodeWithPage.
If I change to use .Page.Content instead of .Content, there won't be error, but the toc content is never rendered.

Thanks for the link @bambooom , it works for me (in a partial, not in a shortcode). Expanded a bit to also catch the tag name and make it configurable (not sure how to access the markup.tableOfContents settings, so using custom params. It (obviously) needs CSS to style now.
{{ $startLevel := .Site.Params.tocStartLevel | default 2 }}
{{ $endLevel := .Site.Params.tocEndLevel | default 3 }}
{{ $tagRe := printf "h[%d-%d]" $startLevel $endLevel }}
{{ $tocRe := printf "<%s.*?>(.|\n])+?</%s>" $tagRe $tagRe }}
{{ $headers := findRE $tocRe .Content   }}
<toc>

{{.Title}}

          {{ range $headers }}
              {{ $tagname := substr . 1 2 }}
              {{ $header := . | plainify | htmlUnescape }}

                  {{ $header }}

        {{ end }}

</toc>

Still feels like a hack though; would be great if something like this proposal were to be added.

I'd also like this feature to render only parts of a table of contents.  My use case is a "here's what's in this part of the document" at the top of a section, and the table of contents for only that section.  Currently what I'm doing is rendering the whole table of contents where I want it with a shortcode, then copy pasting the rendered HTML into another shortcode and editing it, and then using that shortcode for the final render, which really is kinda sub-optimal.
(Note "section" here is the English use of the word, not the hugo use).


Figure out how to read effect (and other) parameters directly.

@shooking
We know how to write individual parameters to device (including directly to FX), can we figure out how to read in the same manner?
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 01  02 3d 17 00 00 00 f7'
                                                    ^^ ^^ value lo/hi
                                                 ^^ param
                                             ^^ slot
param 0: effect on/off
param 1: effect type
param 2: dial 1 (left most)
param 3: dial 2
param 4: dial 3
param 5: dial 4 (right most)

From notes I made a long time ago (and have mostly forgotten).
Set Master Volume
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 0a 00 20 00 00 00 00 f7'
                                                   ^^
                                                   ++---- Volume

and
Appears to be contrast...
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 56 00 0a f7'  -r temp.bin -t 1 ; hexdump -C temp.bin
                                          ^^ Contrast

7 bytes read
00000000  f0 52 00 6e 00 0d f7                              |.R.n...|
00000007

Wondering if that 2nd command is actually missing bytes... and reading contrast by default.

Yes this is what I was musing earlier.
For longest sysex request I seem in 15.
Typical is 8.
I have some 12 ....which makes me think is should be 15.
You confirm it wasn't poking around with sysex that cause your display -
and other than that your pedal is working
Given I have the (g|b)X1 four and it looks like it is possible to
interchange the FX I will be a bit more aggressive.
I notice the pedal can crash. I was thinking of putting a relay or
something to physically switch the unit on/off them write some brute force
wait 2 seconds, if nothing comes back then cycles the unit and move to next
sequence.
I am glad I started using the Pi because this lives in main house - warm.
My windoze PC lives in garage -tad cold in UK. But the Guitar Lab runs on
that.
I see this tonelib looks interest - I wonder.if the dev.would port it to Pi?
Majority of pedal now appears externally controllable via midi and hence
Ctrlr - should be cool on Pi4.
Great stuff you have done here.
On Fri, 11 Dec 2020 22:16 mungewell<EMAIL_ADDRESS>wrote:

From notes I made a long time ago (and have mostly forgotten).
Set Master Volume
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 0a 00 20 00 00 00 00 f7'
^^
++---- Volume
and
Appears to be contrast...
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 56 00 0a f7'  -r temp.bin -t 1 ; hexdump -C temp.bin
^^ Contrast
7 bytes read
00000000  f0 52 00 6e 00 0d f7                              |.R.n...|
00000007
Wondering if that 2nd command is actually missing bytes... and reading
contrast by default.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mungewell/zoom-zt2/issues/16#issuecomment-743455862,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFO7EVYNSQEZ3Y45MVFG5RDSUKK3HANCNFSM4UXKHJMQ
.

Confirmed that we can directly change the parameters on the 2nd page of a 'large' effect.
$ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 01 02 00 F7' -r temp.bin -t 1
343 bytes read
$ python3 decode_screens.py temp.bin
---
Effect: MS 800 (On)
Input : LO
Bass : 52
MID : 48
Treble : 70
PRSNC : 60
Gain : 75
VOL : 48

$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 01  08 40 00 00 00 00 f7'
$ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 01 02 00 F7' -r temp.bin -t 1
343 bytes read
$ python3 decode_screens.py temp.bin
---
Effect: MS 800 (On)
Input : LO
Bass : 52
MID : 48
Treble : 70
PRSNC : 60
Gain : 75
VOL : 64

Thanks - I was already there - the parts I haven't squared in my mind yet
is how to get list of FX and then how to set them for a patch.
My aim is to get this into Ctrlr panel.
It likes to know core sysex, their parameters. And some combo lists.
I know how to create these dynamically in Ctrlr - but not currently how to
get this from pedal.
Miniak was a real PITA but then I reverse engineered this TableOfContents
sysex. And that was a game changer.
We know how to ask menu of patches.
I dont know how to get menu of FX.
I know if an FX is deleted from pedal that factory reset DOES NOT restore
missing FX. So to me there is a semi ToC on the pedal - so would be better
to just ask it "which FX you have at what index?".
It looks like if one can know the core filename it might be possible to
have initial guesses for FX paraterm, bias, range and values
On Mon, 14 Dec 2020, 03:08 mungewell<EMAIL_ADDRESS>wrote:

Confirmed that we can directly change the parameters on the 2nd page of a
'large' effect.
$ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 01 02 00 F7' -r temp.bin -t 1
343 bytes read
$ python3 decode_screens.py temp.bin
Effect: MS 800 (On)
Input : LO
Bass : 52
MID : 48
Treble : 70
PRSNC : 60
Gain : 75
VOL : 48
$ amidi -p hw:1,0,0 -S 'f0 52 00 6e 64 03 00 01  08 40 00 00 00 00 f7'
$ amidi -p hw:1,0,0 -S 'F0 52 00 6e 64 02 01 02 00 F7' -r temp.bin -t 1
343 bytes read
$ python3 decode_screens.py temp.bin
Effect: MS 800 (On)
Input : LO
Bass : 52
MID : 48
Treble : 70
PRSNC : 60
Gain : 75
VOL : 64
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mungewell/zoom-zt2/issues/16#issuecomment-744137214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFO7EV75FFHGJTRZIVJIPGTSUV6TNANCNFSM4UXKHJMQ
.

@shooking I think that you are forgetting the "raison d'être" for this project.
The 'FLST_SEQ.ZT2' file contains a list of which effects are installed on the pedal and does some grouping/ordering of how they are displayed in the menus. Originally this file was worked by editing the FW, but on the G1Four that did not work and we discovered it can be accessed via Midi - which is how this project adds effects (and uploads the effect binary too).
Each effect as an 'id' which is how Zoom identifies them. This is stored in the '.ZT2', as well as the effect binary '.ZD2'.
https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L25
https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L66
You are correct that the 'files' seen in the FW do not necessarily reflect the current status of the pedal. It seems that this information remains as-is despite factory resets. We also noted that the FW v2.00 for the B1Four actually includes the Guitar effects... roll eyes.

I don't know how to get menu of FX...

$ python3 zoomzt2.py -R -w my_pedal.zt2
The '-d' (--dump) or '-s' (--summary) flags will show the ZT2 contents as readable ASCII.

Cool. So on my Raspberry Pi4 I am not able to get the python to work.
pi@raspberrypi:~/Software/zoom-zt2 $ amidi -p hw:2,0,0 -S 'F0 52 00 6e 64 02 01 02 00 F7' -r temp.bin -t 1
343 bytes read
pi@raspberrypi:~/Software/zoom-zt2 $ python3 decode_screens.py temp.bin
Traceback (most recent call last):
File "decode_screens.py", line 28, in
"type1" / Embedded(Type),
NameError: name 'Embedded' is not defined
I see that this project uses construct.
I dont seem able to construct the construct :-(
Out of interest - I was trying to decode the strings you use to grab the table of contents.
I found similar sysex in PCMODE when I decoded the pedal traffic captured in Zoom GuitarLab when in PCMODE.
I was commenting it for my own benefit
export MIDI_DEV=amidi -l | grep ZOOM | awk '{print $2}'
-- turn editor mode on
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 52 f7" -r temp.bin -t 1 ; hexdump -C temp.b
in
`
--                                                 F  L  S  T  _  S  E  Q  .  Z  T 2
-- send A0
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 25 00 00 46 4c 53 54 5f 53 45 51 2e 5a 54 32 00 05 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
-- effectively 04, 17[23] 36[54] 42[66] (h) which is 6 B in chars
-- send A1
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r temp.bin -t 1 ; hexdump -C
temp.bin
-- send C1
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 27 f7" -r temp.bin -t 1 ; hexdump -C tem
p.bin
--                                                                         F  L  S  T  _  S  E  Q  .  Z  T 2
-- send f(A0)
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 20 02 00 00 00 00 00 00 00 00 00 46 4c 5
3 54 5f 53 45 51 2e 5a 54 32 00 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
-- 16 repeats ops A1 A2 A1
-- part 1 - start of FLTS_SEQ in 7Byte->6Byte encoding
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r temp.bin -t 1 ; hexdump -C
temp.bin
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 22 14 2f 60 00 0c 00 04 00 00 00 f7" -r
temp.bin -t 1 ; hexdump -C temp.bin
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r part1.bin -t 1 ; hexdump -C
part1.bin
`
I got curious - so do you know what "f0 52 00 6e 60 05 00 f7" means (lets call this A1)
Then f0 52 00 6e 60 22 14 2f 60 00 0c 00 04 00 00 00 f7 (A2 say)
The first sequence seems to be saying "hey Zoom ... give me handle on FLST_SEQ.ZT2
So I wondered if you have tried this on the GUARD
theCMD=60; amidi -p ${MIDI_DEV} -S "F0 52 00 6e ${theCMD} 25 00 00 47 55 41 52 44 5a 44 4c 2e 5a 54 32 00 05 f7" -r t1.bin -t 1; hexdump -C t1.bin
This returns
41 bytes read
00000000  f0 52 00 6e 60 04 25 00  00 17 00 00 00 00 00 47  |.R.n`.%........G|
00000010  55 41 52 44 5a 44 4c 2e  5a 54 32 00 00 00 10 08  |UARDZDL.ZT2.....|
00000020  00 00 00 00 00 00 00 00  f7                       |.........|
00000029
cf
pi@raspberrypi:~/Software/ZoomPedal $ amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 25 00 00 46 4c 53 54 5f 53 45 51 2e 5a 54 32 00 05 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
41 bytes read
00000000  f0 52 00 6e 60 04 25 00  00 17 00 00 00 00 00 46  |.R.n`.%........F|
00000010  4c 53 54 5f 53 45 51 2e  5a 54 32 00 00 00 36 42  |LST_SEQ.ZT2...6B|
00000020  00 00 00 00 00 00 00 00  f7                       |.........|
00000029
The primary difference is GUARD has a 10 08 cf FLST_SEQ.ZT2 with 36 42. Some for of lengths? Or some offset into the "file"?

ok so maybe this is old news to you but if I run this I get the "particles" in the naughty list - bummer I got the pedal cos I really like the particles.
 export MIDI_DEV=amidi -l | grep ZOOM | awk '{print $2}'`
baseFile="all"
turn editor mode on
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 52 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
G  U  A  R  D  Z  D  L  .  Z  T  2
send A0
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 25 00 00 47 55 41 52 44 5a 44 4c 2e 5a 54 32 00 05 f7" -r temp.bin -t 1 ; hexdump -C te
mp.bin
effectively 04, 17[23] 36[54] 42[66] (h) which is 6 B in chars
send A1
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
send C1
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 27 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
G  U  A  R  D  Z  D  L  .  Z  T  2
send f(A0)
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 20 02 00 00 00 00 00 00 00 00 00 47 55 41 52 44 5a 44 4c 2e 5a 54 32 00 f7" -r temp.bin
-t 1 ; hexdump -C temp.bin
16 repeats ops A1 A2 A1
part 1 - start of FLTS_SEQ in 7Byte->6Byte encoding
for i in {1..30}
do
echo "send A1"
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
echo "load more data?"
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 22 14 2f 60 00 0c 00 04 00 00 00 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
echo "save A1 response"
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 60 05 00 f7" -r ${baseFile}$i.bin -t 1 ; hexdump -C ${baseFile}$i.bin
if [ grep -c -P "\x7f\x7f[\x7f\xf]" ${baseFile}_$i.bin -eq 1  ]; then
echo "Time to stop"
break
fi
done
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 53 f7" -r temp.bin -t 1 ; hexdump -C temp.bin
`
So it seems to me I have to keep reading until I get the (0x7f) in the response? (not sure I can check for top bit in bash)/
IE after first few A1 A2 A1 sentences, the A1 return the (0x7f) which I guess is "ok I am spend!"
Now sure yet how to work out up front when is enough.

Sorry if you already knew this method to grab it.
Just wondering about names in the good list
000000c0  00 00 02 00 00 00 00 45  58 43 49 00 54 45 52 2e  |.......EXCI.TER.|
000000d0  5a 44 32 00 00 00 31 2e  33 30 00 20 00 30 00 00  |ZD2...1.30. .0..|
so 45 58 43 49 54 45 52 2e 5a 44 32
Well if I try this trick on a ZD2 file .. I just read the current patch ... odd.
So I think you found the generic "read me a ZT2" file - are there other known ZT2 to test this on please?
Now I am guessing there is a way to read the ZD2 files.

Can you please fix the highlight (make things blocks of code so that GitHub doesn't assume headings/etc).
Construct changed their way of formatting Struct block around rev 2.8, you might need to rebuild that module from source.
Simon.

Now I am guessing there is a way to read the ZD2 files.
My Python module includes some basic parsing but does not implement a command line. The GUI version uses this to print pretty information when you select new effect binaries to upload, and to make sure that they go into the correct group in FLST_SEQ.

Now I am guessing there is a way to read the ZD2 files.

All files are read the same way, you can even do some wildcard operations.
https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L261
Note: If you upload the same file name multiple times you end up with duplicates, each of which deleted individually... had a script go wrong when I was playing.

So now I made an accident.
Am I reading the available FX from my pedal?
I send from a fresh reboot
probeString="F0 52 00 6E 64 05 F7"
to an empty patch (initially on bypass).
And it seems to progressively cycle thru the available effects.
I still not able to get your program working to check if this is following my SEQ ZT2
It also doesnt quite enable the effect properly (leaves it in some "inverse" mode). But I can eventually delete the thing off.
Ex
amidi -p ${MIDI_DEV} -S "f0 52 00 6e 64 02 00 09 00 f7" -r t1.bin -t 1; hexdump -C t1.bin; rm t1.bin
tells me I am in all bypass and off.

RACKCOMP.ZD2
SLWATK.ZD2
ZNR.ZD2
OK so consulting your g1_everything
pi@raspberrypi:~/Software/zoom-zt2/scripts $ strings G1_everything.zt2
BYPASS.ZD2
COMP.ZD2
1.20
RACKCOMP.ZD2
1.20
SLWATK.ZD2
1.30
ZNR.ZD2
1.30
MUTESW.ZD2
1.20
GRAYCOMP.ZD2
1.20
N_GATE.ZD2
1.20
OPTCOMP.ZD2
1.30
BLACKOPT.ZD2
1.20
LMT1176.ZD2
1.30
160_COMP.ZD2
1.20
DUAL_CMP.ZD2
1.20
perhaps I predict the next one is MUTESW?
Nope I got LMT1176.ZD2 ...
Do you already know about this ZD2 iterator?
So far it is only setting FX slot 0 - my guess is I am not sending sufficient params.
This is what I get out until end of iterator
pi@raspberrypi:~/Software/ZoomPedal $ strings zd2_dump.bin
BYPASS.ZD2
COMP.ZD2
RACKCOMP.ZD2
SLWATK.ZD2
ZNR.ZD2
LMT1176.ZD2
AUTOWAH.ZD2
SEQFLTR.ZD2
GTGEQ71U.ZD2
PARAEQ.ZD2
RNDMFLTR.ZD2
TS_DRIVE.ZD2
EP_STOMP.ZD2
RCBOOST.ZD2
GOLD_DRV.ZD2
SWEETDRV.ZD2
DYNDRIVE.ZD2
REDCRUNC.ZD2
ACOSIM.ZD2
NYC_MUFF.ZD2
BGTHRTTL.ZD2
DIST_1.ZD2
SQUEAK.ZD2
DISTPLUS.ZD2
ZEN_DRV.ZD2
VIOLETDS.ZD2
MS800_1U.ZD2
MS19591U.ZD2
FD_TWR1U.ZD2
FDBMAN1U.ZD2
FDDLXR1U.ZD2
UK30A_1U.ZD2
BGMK1_1U.ZD2
XTSBLU1U.ZD2
HW100_1U.ZD2
RCTORG1U.ZD2
ORG1201U.ZD2
DZ_DRV1U.ZD2
MACH301U.ZD2
MS4X12.ZD2
MS4X12GB.ZD2
FD2X12.ZD2
FDB4X10.ZD2
FDDX1X12.ZD2
UK2X12.ZD2
MK1_1X12.ZD2
MK3_1X12.ZD2
BGN4X12.ZD2
HW4X12.ZD2
RCT4X12.ZD2
ORG_4X12.ZD2
DZ4X12F.ZD2
MA2X12.ZD2
TREMOLO.ZD2
STEREOCH.ZD2
PHASER.ZD2
VINFLNGR.ZD2
VIBRATO.ZD2
OCTAVE.ZD2
PITCHSHF.ZD2
HPS.ZD2
CLONECHO.ZD2
CRNTRI3S.ZD2
BOMBER.ZD2
DELAY_3S.ZD2
ANDLY_3S.ZD2
TAPEECHO.ZD2
RVRSDL3S.ZD2
MODDELAY.ZD2
PPDLY_3S.ZD2
SOFTEC3S.ZD2
ROOM.ZD2
HALL.ZD2
HD_HALL.ZD2
SPRING.ZD2
FDSPRING.ZD2
PLATEREV.ZD2
PDL_VOL.ZD2
BLCK_WAH.ZD2
PDL_PIT.ZD2
PDL_VIBE.ZD2
PDL_PHA.ZD2
PDLDLY3S.ZD2
PDL_REV.ZD2
OUT_VP.ZD2
I just verified manually this is the order of FX I can choose for slot 1 of an empty preset.
Actually it is all I can select in any of the slots ... so I have more cruft on my pedal than I can use?? No wonder there is none left.
You mentioned it is possible to pull the contents of the files. I tried to read hall.zd2 (attached) but I have no idea what I am looking at to verify if I read it right.
hall.txt
Attaching binary dump you recognise slots IDs or other useful info.
zd2_dump.txt
Not sure if there is anything useful in here. To me it is because it allows me to enumerate current content of the FX on the pedal (and I can already read current patch content).
Is it that the FLTS_SEQ is the total set of FX, and this method is the current "available for selection in an FX"? Would be odd - more cruft than I can select.

For your 'Hall' question - I think that you are not doing 7bit -> 8bit unpacking, nor stripping SysEx header, checksum, and terminator... all this is shown here in the code.
https://github.com/mungewell/zoom-zt2/blob/master/zoomzt2.py#L284
$ hexdump -C ~/Downloads/hall.txt | head
00000000  f0 52 00 6e 60 04 22 01  00 00 04 00 5a 44 4c 46  |.R.n`.".....ZDLF|
00000010  78 00 00 30 00 1a 50 49  76 07 00 00 00 00 01 00  |x..0..PIv.......|
00000020  01 00 01 08 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 02 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 40 00 00 00 00<EMAIL_ADDRESS>00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000070  01 31 2e 00 35 30 00 00  09 30 00 00 00 09 48 61  |.1..50...0....Ha|
00000080  6c 6c 00 00 00 00 00 5e  27 0d 52 00 45 56 45 52  |ll.....^'.R.EVER|
00000090  42 00 00 44 32 27 31 1b  18 50 00 01 00 00 49 43  |B..D2'1..P....IC|

$ hexdump -C /media/simon/OS/Users/simon/Documents/ZoomFW/B1_FOUR_v2.00/zd2/HALL.ZD2 | head
00000000  5a 44 4c 46 78 00 00 00  b7 97 5d bc 03 00 00 00  |ZDLFx.....].....|
00000010  01 00 00 00 01 00 00 00  80 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  80 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  01 31 2e 33 30 00 00 09  |.........1.30...|
00000060  30 00 00 09 48 61 6c 6c  00 52 00 03 c3 66 09 52  |0...Hall.R...f.R|
00000070  45 56 45 52 42 00 03 db  66 61 1b 98 50 00 00 00  |EVERB...fa..P...|
00000080  49 43 4f 4e b6 00 00 00  42 4d b6 00 00 00 00 00  |ICON....BM......|
00000090  00 00 3e 00 00 00 28 00  00 00 17 00 00 00 1e 00  |..>...(.........|

The 'everything' example is just a pre-compiled ZT2 listing effects from the F/W image, it can be decoded to text with
$ python3 ../zoomzt2.py -s G1_everything.zt2  > G1_everything.txt
G1_everything.txt
Zoom (inadvertently published a full list of the effects here:
https://www.zoom.co.jp/archive/ZDLM/AllZDL3.lst

The command you suggested reads once, and then pedal (G1Four v2.00) has crashed and doesn't respond again until power cycled.
$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
49 bytes read
00000000  f0 52 00 6e 64 06 42 59  50 41 53 53 2e 5a 44 32  |.R.nd.BYPASS.ZD2|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 02 01 00 00  00 00 00 00 00 00 00 00  |................|
00000030  f7                                                |.|
00000031

$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
0 bytes read

$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
0 bytes read

The command you suggested reads once, and then pedal (G1Four v2.00) has crashed and doesn't respond again until power cycled.
$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
49 bytes read
00000000  f0 52 00 6e 64 06 42 59  50 41 53 53 2e 5a 44 32  |.R.nd.BYPASS.ZD2|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 02 01 00 00  00 00 00 00 00 00 00 00  |................|
00000030  f7                                                |.|
00000031

$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
0 bytes read

$ amidi -p hw:2,0,0 -S "F0 52 00 6E 64 05 F7" -r temp.bin -t 1 ; hexdump -C temp.bin
0 bytes read

Well I did say I send from a fresh reboot
probeString="F0 52 00 6E 64 05 F7"
to an empty patch (initially on bypass).
And under those circumstances for sure it works.
I can delete such an FX but it isnt usable - I was hoping somehow the operation reveals the FX ID and Group ID, then I can use this to find the current sequence of FX, their ID and Group ID, so I can then use your "set FX" midi strings.

 Thanks for the comparison dump.
I was just hoping to get the FX ID and Group ID for use in your cool "set slot M to FX ID, Group ID".
Because at that point I can
1 - probe patches

look look for an empty patch all in default (we have the logic for this)
if none ... ok stop algorithm
make a table of currently in use FX
2 - given we have list of patches and one empty patch
probe the set of FX hopefully recording ID and GROUPID
generate set of labels etc (for Ctrlr)
3 - allow user to dial in program change for a patch (we know what is now because of step 1)
4 - allow user to assign FX to Slot M -- hopefully we know what it is
5 - allow use to change SLOTM Parameter N

Having said all this - I am not sure I would ever gig with the above - dont want someone spilling beer all over my 21.5" touch screen - and that's just me :-)

The 'everything' example is just a pre-compiled ZT2 listing effects from the F/W image, it can be decoded to text with
$ python3 ../zoomzt2.py -s G1_everything.zt2 > G1_everything.txt
G1_everything.txt
Zoom (inadvertently published a full list of the effects here:
https://www.zoom.co.jp/archive/ZDLM/AllZDL3.lst

I feel like a fool ...
cd construct-2.10.56/ sudo python3 setup.py install python3 ../zoomzt2.py -s G1_everything.zt2 > pants.txt
My problem(s), other than being stupid was
1] always approach coding with alcohol!
2] if you sudo install python3 .. darn well continue using python3!!
so I can run your excellent code now thanks. Sorry for the dofus questions.
I think I will compile this on Ubuntu and use code debugger, or PyCharm, so I can get to grips with what you did.
Thanks again for your patient explanations.


Miscompilation of nested ifs

The following module:
class Test(Elaboratable):
    def __init__(self, in0, in1, in2):
        self.in0 = in0
        self.in1 = in1
        self.in2 = in2

        self.out = Signal()

    def elaborate(self, platform):
        m = Module()

        with m.If(self.in0):
            with m.If(self.in1):
                m.d.sync += self.out.eq(1)
        with m.Elif(self.in2):
            m.d.sync += self.out.eq(0)

        return m

gets turned into the following Verilog code:
module \top.U$$1 (in0, in1, in2, out, rst, clk);
  reg \$auto$verilog_backend.cc:2253:dump_module$2  = 0;
  input clk;
  wire clk;
  input in0;
  wire in0;
  input in1;
  wire in1;
  input in2;
  wire in2;
  output out;
  reg out = 1'h0;
  reg \out$next ;
  input rst;
  wire rst;
  always @(posedge clk)
    out <= \out$next ;
  always @* begin
    if (\$auto$verilog_backend.cc:2253:dump_module$2 ) begin end
    \out$next  = out;
    if (in0)
      if (in1)
        \out$next  = 1'h1;
    else if (in2)
      \out$next  = 1'h0;
    if (rst)
      \out$next  = 1'h0;
  end
endmodule

which, AFAICS, behaves as if the Elif had been indented:
with m.If(self.in0):
    with m.If(self.in1):
        m.d.sync += self.out.eq(1)
    with m.Elif(self.in2):
        m.d.sync += self.out.eq(0)

This is with Amaranth 0.4.1 and Yosys 0.37 (git sha1 a5c7f69ed).

Oh, no. This is a bug I have submitted to Yosys.

Upstream fix pending: https://github.com/YosysHQ/yosys/pull/4150.
Amaranth should probably explicitly forbid using Yosys 0.37 because of this bug as well.


Adds recognition of the 'crunch' R5RS subset

Crunch is a subset of R5RS that the crunch egg can heavily optimize via
c++ compilation. This change allows geiser to report to chicken
programmers whether the function is found within that subset, easing
development.
Details on the crunch egg can be found at:
http://wiki.call-cc.org/eggref/4/crunch

This is useful for just about anyone who is interested in writing performance-aware chicken code

Done

thanks, dan.  merged!


display error messages upon error returned from server

@mauriel133 This PR addressed backend server and frontend client error handling in an effort to fix the issue #1529. The remaining issue is that the spinner wheel still keeps spinning after the error message is displayed, which I will leave to you to address. You can work on top of my 1529-error-handling branch.

@dtarb I have updated beta with the fixes to this interface hanging issue #1529 as well. You can test it out on beta to see whether the issue has been resolved.

@pkdash I have replied your comment. Please see if you have more concerns and if you can +1 now.

+1

@pkdash Thanks. I have just pushed the change to remove force-override flag for doing unzipping as discussed in our team call meeting. If you get a chance, you can take a quick look. I will merge it after getting a Jenkins green check.

@pkdash Addressed further code review comments. See you can +1 now.

+1


BDS-17 : NICC API : Upgrade the service to use HIP token

Disabled JUnitXmlReportPlugin to resolve Unstable build/deployment.

Test this please.

Test this please.

Test this please.

Test this please.

Test this please


Unable to build any package due to invalid path to vcpkg (missing platform in triplet name)

Describe the bug
Unable to build a project which uses any vcpkg library due to incorrect path to vcpkg headers/libs
Environment

OS: Windows
Visual Studio 2015

To Reproduce
Steps to reproduce the behavior:

Clone vcpkg, build it
Install any package
Make integrate install
Run visual studio, create empty project, try to use the package (e.g. include some header)

Expected behavior
No errors during compilation
Additional context
It looks like the problem is in $(VCPKG_ROOT)\scripts\buildsystems\msbuild\vcpkg.targets.
The default $(VcpkgUserTriplet) is initialized as $(PlatformTarget)-$(VcpkgOSTarget). In solution $(PlatformTarget) seems to be empty when usertriplet is calculated. The workaround is to specify $(VcpkgPlatformTarget) variable ( the same way it is defined in vcpkg.props) and use it instead of $(PlatformTarget)

This is one of the other "odd behaviors" I saw in issue https://github.com/microsoft/vcpkg/issues/12062 . It is somehow caused by commit https://github.com/microsoft/vcpkg/commit/14514508d8d30bdbd645b2bec89696aec25497f1 .
What is even more odd/interesting is that this doesn't always happen in VS2015. I think it may be dependent upon VS2015 bugfix version, as I see it in VS2015 version 14.0.25425.01 Update 3, but not in VS2015 version 14.0.25431.01 Update 3. The former defaults the triplet to $(PlatformTarget)-$(VcpkgOSTarget), while the latter defaults to $(VcpkgPlatformTarget)-$(VcpkgOSTarget).
I don't know how to bugfix upgrade a VS2015 install (running the latest VS2015 Update 3 installer just told me the update was already installed). As a workaround, you could try figuring out how to install the bugfix update (perhaps just remove then reinstall VS2015 Update 3 with the latest installer), or you can clone vcpkg and then checkout before the problematic commit with
git checkout 14514508d8d30bdbd645b2bec89696aec25497f1~1

from the root directory before building it.

@BillyONeal Could you take a look?
Thanks.

Close this issue via #12257 merged.


Setup release v0.0.17 [phab:D656]

Created by schroederc at 2015-12-15 23:41:31:

schroederc wrote at 2015-12-15 23:41:47:
https://github.com/google/kythe/releases/tag/untagged-4b3115abd01b5a8fbf67

zarko accepted this revision at 2015-12-16 00:56:32

schroederc closed via commit 582e107ca8138d9ccee752755025f10bdaead23a at 2015-12-16 17:34:18


Can't override "get-color-from-palette" function becuase of scss module systems

Reproduction
Use StackBlitz to reproduce your issue:

Components: https://stackblitz.com/fork/components-issue
Harnesses: https://stackblitz.com/fork/harness-issue

Steps to reproduce:

Override get-color-from-palette function with your own defination
Check for any mat component like button, it takes color value from mat "get-color-from-palette" not from overriden "get-color-from-palette" function

Expected Behavior
What behavior were you expecting to see?
We have implemented css var in our application and to achieve that we override the "mat-color" function, so that returns the color in "var()" form, but after updating to v12 it is not working because of scss module system, now instead of "mat-color" we have to override "get-color-from-palette" but this function call is scoped to component only, so we are not getting the color in var() form.
Is there any way to override the "get-color-from-palette" ?
Actual Behavior
What behavior did you actually see?
It does not override the get-color-from-palette function
Environment

Angular: 12.0.1
CDK/Material: 12.0.1
Browser(s): chrome v90.0.4430.212
Operating System (e.g. Windows, macOS, Ubuntu):  Windows10

This is something that only worked because of the extremely lax behavior of Sass in the past; Sass put every symbol in the global namespace, so if you defined something with the same name it clobbered it. It was never an intended behavior.
With IE11 support being dropped in Angular v13, we're looking at switching our theming system to be based on CSS variables, but we don't have something explicitly supported today.


pessimistic-txn: fix non-pessimistic lock conflict

Signed-off-by: youjiali1995<EMAIL_ADDRESS>
What have you changed?
If the non-pessimistic lock belongs to a pessimistic transaction and the transaction has been rolled back, the request's for_update_ts may be less than lock's and it's not a stale request.
More info please refer to the unit test.
What is the type of the changes?

Bugfix (a change which fixes an issue)

How is the PR tested?

Unit test

Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No

/run-all-tests

/jepsen txn-mode=pessimistic

/jepsen txn-mode=pessimistic

/jepsen txn-mode=pessimistic

/jepsen txn-mode=pessimistic

/release

/jepsen txn-mode=pessimistic

/jepsen txn-mode=pessimistic

/merge


Unable to download Lover**** mods directly from Wabbajack

What happened?
Since Wabbajack still having problem with Lover**** account and downloads, I hope you can put those mods to the "Commonly failing downloads" part of the readme.
Modlist version
1.1.69

you can always find the full manifest file posted on the releases section: https://github.com/zhongjiedong/Tsukiro/releases


Include TCA Swift Concurrency changes from release 0.39.0

TCA just released version 0.39.0 which includes all the Swift Concurrency changes, and fundamentally changes many internals of the library. For example, Effect no longer conforms to Publisher but instead holds on to a Publisher internally.
The changes encourage moving away from Combine based effects to effects that use Swift Concurrency using Effect.task.
I've been able to maintain this fork in sync with TCA up to the last commit prior to the merge of the Swift Concurrency PR, however I feel that trying to update the fork to include the Swift Concurrency changes would be a huge task, and I don't have the necessary time to dedicate to it.
There's also the question of how useful this fork will continue to be. The objective for @mbrandonw and @stephencelis with TCA is clearly (and rightly) to be able to remove Combine completely from TCA sooner or later, at which point the need for a Reactive Swift fork really ceases to exist. Even now, this fork has a minimum deployment target of iOS 13 so the only use cases for it are:

existing projects using it which haven't yet migrated to Combine TCA
projects that don't want to use Combine as it's not open source
projects using non-Apple OSes like Linux and Android

If anyone is interested in trying to migrate this fork to the new changes, I'd be happy to help out where I can.

Thanks to @p4checo for taking on this huge task. The fork has now been updated to include the upstream changes from 0.39.0 and more, so this issue has been resolved!
Fixed by: https://github.com/ReactiveCocoa/reactiveswift-composable-architecture/pull/58


Updated dependencies

Just trying to get things up to speed a bit, particularly with some Svelte changes

Thanks — do you need me to cut a new release? It should always install the latest 1.x version of Svelte, as things stand

Maybe I'm not understanding you. How would it always install the latest 1.x if it's hardcoded in package.json?

It's not pinned — ^1.11.2 means 'the latest version that's higher than 1.11.2, but lower than 2.0.0'. If you trashed your node_modules folder and reinstalled, you would get the latest version. See https://runkit.com/rich/58c96de90cbc050014063057

ahhhh...
closing then since this is not relevant ;) my bad.

Future note for anyone else trying to figure this out, you also need to delete yarn.lock


Workspace tasks parallel execution doesn't work

Describe The Bug
I have a bunch of microservices in workspace and I want to run cargo run for all of them in parallel.
run_task = { name = ["run"], parallel = true } doesn't work (it runs the run tasks in sequence like with no parallel flag is set)
To Reproduce
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[tasks.run]
command = "cargo"
args = ["run"]

[tasks.run-all]
run_task = { name = ["run"], parallel = true }

cargo make run

without seeing more on how things work in your makefile, i can suggest you try adding fork=true as well

i. your example you meant running
cargo make run-all
not
cargo make run
right?

Yes, you are right, I meant cargo make run-all. I tried to add fork=true, however it seems it is still run in sequence.

It is quite easy to reproduce it completely:
Makefile.toml:
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[tasks.run]
command = "cargo"
args = ["run"]

[tasks.run-all]
run_task = { name = ["run"], parallel = true, fork=true }

Cargo.toml:
[workspace]
members = [
    "one",
    "two"
]
resolver = "2"

and have two rust binary crates one and two without any special settings and with main.rs:
use std::thread::sleep;
use std::time::Duration;

fn main() {
    for i in 1..5 {
        println!("{}", i);
        sleep(Duration::from_secs(2));
    }
}

oh, its a workspace. so it runs one member at a time. you need to replace it with workspace false and trigger members in parallel

I see.. It would be very useful to run all workspace tasks with the same name in parallel :pray:. We are using
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

So there is no need to have Makefile.toml in every crate in workspace (there might be some tweaks if needed though) and it also does mean all crates have the same task name (for example run).

@jancespivo so you need to understand how cargo-make works for workspaces in order to define the task correctly.
when you call cargo make mytask in a workspace, it will go member by member and call that task in sequence.
the task itself, may define 'parallel' for its sub tasks, and those are run in parallel, but it still goes member by member.
The 'workspace' task is internal and hardcoded (well, auto generated in runtime) and simply goes member by member and calls the task you asked on the cli. so you can't change it.
Instead you could maybe use duckscript to provide such a capability and with plugins, you can enable it on every task you want with a simple attribute.

define the plugin - you can put it in your workspace makefile, or some standalone file and just have the workspace make file extend it
add attribute on relevant task with plugin name and workspace=false (workspace false means cargo-make will ignore the fact its a workspace and not trigger it member by member and instead run it once on workspace dir level and let plugin take it from there)

example plugin file:]
see example: https://github.com/sagiegurari/cargo-make/blob/master/examples/plugin_workspace_parallel.toml
script = '''
plugin_used = get_env PLUGIN_USED
plugin_used = eq "${plugin_used}" 1

if not ${plugin_used}
    set_env PLUGIN_USED 1
    members = split ${CARGO_MAKE_CRATE_WORKSPACE_MEMBERS} ,

    workspace_dir = pwd
    for member in ${members}
        cd ./${member}
        spawn cargo make --disable-check-for-updates --allow-private --no-on-error ${flow.task.name} %{args}
        cd ${workspace_dir}
    end

    release ${members}
else
    task_definition = json_parse --collection ${task.as_json}
    map_remove ${task_definition} workspace
    task_json = json_encode --collection ${task_definition}
    cm_plugin_run_custom_task ${task_json}
end
'''

example workspace level toml file:
example: https://github.com/sagiegurari/cargo-make/blob/master/examples/workspace/Makefile.toml
extend = "../plugin_workspace_parallel.toml"

[config]
skip_core_tasks = true

[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[tasks.echo]
# to make echo serial and not parallel, remove following 2 lines
plugin = "parallel-members"
workspace = false

so in your case, it should be
extend = "../plugins/plugin_workspace_parallel.toml"

[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[tasks.run]
plugin = "parallel-members"
workspace = false
command = "cargo"
args = ["run"]

closing due to lack of feedback and solution provided


Links present in IRC NOTICEs are passed all the way down to LinkResolver

That shouldn't be done. Sometimes there might be FPs, see dirty example with debug prints below, which could also contain sensitive information.
A message of this NOTICE will never be seen anyway so there's no point in resolving stuff for links in there, but I'm unsure what should be the approach here; a potential solution should make these NOTICEs be ignored... or perhaps tweak LinkResolver class to not resolve link information for things that cannot be seen. Thoughts @mm2pl @pajlada?

NOTE: incoming NOTICEs are received because we always connect to all IRC servers from settings on application's startup, even if no channels from within an IRC network are present in the window layout (or any IRC channels at all), but that's a whole another story/issue.

This could be solved with that old image uploader issue with stupid GET deletion links, have some links not get previews.
I'm thinking of only resolving links for chat messages generated by users, not system messages and the like. What do you think?

We could also move to only resolve links upon hover - that will solve this issue in a different way.
It may slow down the tooltip generation for the first user to resolve a link but long-term I believe it will provide on average faster responses anyway

This does not apply to local system messages anymore.
IRC support was removed.
F


Ansible split function doesn't work as intended

Following line in roles/transformers/vars/Redhat8.yml
imagemagick_home: "/usr/lib64/ImageMagick-{{ imagemagick_pkg.version.split('-')[0] }}"
results in
imagemagick_home: "/usr/lib64/ImageMagick-[7.1.0-7]"
as opposed to imagemagick_home: "/usr/lib64/ImageMagick-7.1.0" as intended.
My ansible version is as follows:
ansible [core 2.11.6]
config file = None
configured module search path = ['/home/ec2-user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/ec2-user/.local/lib/python3.6/site-packages/ansible
ansible collection location = /home/ec2-user/.ansible/collections:/usr/share/ansible/collections
executable location = /home/ec2-user/.local/bin/ansible
python version = 3.6.8 (default, Aug 12 2021, 07:06:15) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
jinja version = 2.10.1
libyaml = True
Using regex_replace I was able to fix this.
imagemagick_home: "/usr/lib64/ImageMagick-{{ imagemagick_pkg.version | regex_replace('-.+')}}
Thanks,
Shankar

Thanks for reporting that. This has actually been fixed in master by


feat(functions): add auth blocking functions

Added Cloud Functions Auth Blocking Functions to handle user sign up and sign in

Draft WIP for now. Will request review once ready.


Program deploy predicate

storage {
    programs: (b256 => bytes),
}

predicate Deploy(num_programs: int, program_hashes: b256[num_programs]) {
    let programs: OptionalBytes[num_programs] = map (\h -> storage::programs[h) program_hashes;
    let derived_hashes: b256[num_programs] = compute num_program map (\p => hash(@unwrap_bytes(p))) programs;

    constraint all (\h d -> d == h) (zip derived_hashes program_hashes);
    constraint all (\p -> p == OptionalBytes::None) programs;
    constraint all (\p -> p == OptionalBytes::None) programs';

    // more constraints ...
}

Originally posted by @freesig in https://github.com/essential-contributions/essential-base/issues/217#issuecomment-2453593174

Related downstream https://github.com/essential-contributions/essential-node/issues/148


Add suggestions/gallery

We should be able to click a smart cell button that, based on the chosen variable, will generate suggestions of different charts, using different or the chosen columns, with different type charts and so on.
The "Lux: Always-on Visualization Recommendations for Exploratory Data Science" paper has interesting ideas around this.

Visually speaking, we will have a button on the VegaLite cell that says "Chart suggestions". Clicking this button will change the smart cell to a design where we have a "pill" for each column at the top. If the pill is enabled, then we will use that column for suggestions. If disabled, the column cannot be used for suggestions.
It is also very important to send the data from the server only once and not on every chart. The Lux paper has heuristics that we can use to better determine columns and graphs. The heuristics can likely be implemented in Elixir instead of JS. Elixir will then send the possible charts to generate (alongside with the data once, which will be transferred as soon as "Chart suggestions" is clicked).

We won't be exploring this idea for now.


where will be the trained conversation stored.in which file ?in chatterbot

where will be the trained conversation of a chatter bot be stored .in which file

You have to specify where you want to store it. after training your chat bot, you have to:
chatbot.trainer.export_for_training('./export.yml')

on what basis it select the appropriate answer for the quetion form db..what dose the whole algorithm about?

Chatterbot uses logic adapters for how ChatterBot selects a response to a given input statement.
Chatterbot default adapter is Multilogic adapter
Next, it starts to compare with each statement to find the exact match using comparison methods


Add function to store user's initials and score

Add function to store user's initials and score to local storage upon finishing the game

Added code to store data


Check for relation type?

Should there be a check for
boundary=census with relation type=multipolygon?
instead of  type=boundary

Ideally I think we want to flag boundary=* without type=boundary as an error.


[javascript] syntax highlighting for class arrow properties is broken

From @kumarharsh on April 5, 2016 20:6

VSCode Version: 0.10.14
OS Version: Windows 10

Steps to Reproduce:

Write this code:

class x {
  abc = () =>
    this.func(this.arr.concat(['one 1', 'two 2', 'three 3']));
}

The syntax higlighting is broken
See the image below

Copied from original issue: Microsoft/vscode#4980

Fixed by #257


CRC of file being uploaded

I have a requirement for a test where i need to calculate the CRC of a file before upload. does karate offer anything for this scenario?

no. you may get some suggestions if you ask your question on stack overflow


Help Panel feedback background(night mode)

In night mode on the Help panel it's not able to read letters in the feedback button it's filled with white color.

attaching screenshot for the reference :

Testing completed and issue is fixed. White background is removed. As discussed moving this issue to done.


PP-9016 Validate webhooks form

This is directly copied from the Worldpay credentials from utility.
The change was delayed to allow form utilities to be moved to a
re-usable, well tested form library. As this hasn't happened yet this
directly copies an existing from and repurposes it for webhooks.
Responsibility of the frontend:

required data to act on resource exists
required data meets simple rules for create/ update request

Responsibility of the backend:

data meets business rule constraints (valid URLs)

Fix the .com test domains in a follow-up.

https://github.com/alphagov/pay-selfservice/pull/3466


Compatable Sorting Library

Are there any recommended sorting library's that are compatible? I have always used sorttable and it doesn't work well floatThead.

Sorry, I dont know - hopefully some user might chime in. If you provide a jsfiddle with sorttable giving you crap, I can take a look and see if its fixable on this end.

check here:
https://github.com/mkoryak/floatThead/issues/37
the jsfiddle has outdated script refs, but you might have luck with that sort plugin

cleaning up open issues


Branded types support

Feature Request
Nestia throws the following error on branded properties:
- number & Brand<"ProductPrice">:
- nonsensible intersection

With the ProductPrice being of the following type (with a standard Branded implementation):
type ProductPrice = Branded<number, 'ProductPrice'>;

I wonder if there is a way for Nestia to reduce the above type to just number?
Maybe we could somehow define the Brand wrapper to make Nestia ignore intersections with that type? Or to define the internal brand property key (in my case __brand) to ignore?

Branded type is not supported, because it needs hard type casting, not type safe strategy.

Branded type is not supported, because it needs re-interpret type casting, the type unsafe strategy.

I'm aware it requires type casting. Hence it shouldn't be enabled by default.
But branded types are widely used. So an escape hatch is useful because they're gonna be used anyway. And having a built in way to do that increases Nestia's appeal.
I dont see what would be the harm in defining an object key in the config, which if an object has, and the object is a part of an intersection, makes the object get discarded from the intersection by Nestia.
It's a completely opt in behavior and the user can be made aware of the risks if the key is mistyped or not unique.

Close by same reason with https://github.com/samchon/typia/issues/933.
I am not affordable to develop the feature, so give up this spec or do contribute please.

If you stumbled across this issue, I have patched typia to support brands. See https://github.com/samchon/typia/issues/911#issuecomment-2515870176

If you stumbled across this issue, I have patched typia to support brands. See samchon/typia#911 (comment)

This problem must be solved by defining priority relationship when insensible intersection type case.


Optimize eth_getBalance queries

Description:
eth_getBalance logic around queries is outdated and in some cases we're making calls that don't need to be called
New logic should be

check for a cache balance entry. Return if exists but do not cache as this is for high load
consider blockNumberOrTag

if valid blockNumberOrTag get the account balance from api/v1/balances which is now real time. Note, this endpoint only takes a Hedera AccountId so a conversion from address is needed. For long zero we can convert, for evmAddress we must consult Mirror Node for mapping
if no blockNumberOrTag call the api/v1/accounts endpoint for most recent balance. Not 404 may occur for recent creations so retry should be covered in client

cache balance and return

To achieve the above

Add a getAccountIdFromAddress() to the eth.ts to isolate address to HederaAccountId logic.
Update getBalance() to utilize above flow and method
Add a convertLongZeroAddressToHederaAccountId() to the formatter.ts

Related issue(s):
Fixes #1085
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Codecov Report
Patch coverage: 75.00% and project coverage change: -0.15 :warning:

Comparison is base (7787e35) 74.82% compared to head (985b79d) 74.67%.

:exclamation: Current head 985b79d differs from pull request most recent head 9f36e5c. Consider uploading reports for the commit 9f36e5c to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1086      +/-   ##
==========================================
- Coverage   74.82%   74.67%   -0.15%
==========================================
  Files          31       18      -13
  Lines        2089     1540     -549
  Branches      406      306     -100
==========================================
- Hits         1563     1150     -413
+ Misses        417      316     -101
+ Partials      109       74      -35

Impacted Files
Coverage Δ

packages/relay/src/lib/eth.ts
82.84% <75.00%> (-0.95%)
:arrow_down:

... and 14 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

further options will be opened with https://github.com/hashgraph/hedera-mirror-node/issues/5863


[BUG] Events no more show the speaker status and topic

Description
The user status and topic are not being displayed on the event tile on the events page (https://linkfree.io/events). They used to appear when the user added the following properties:
  "userStatus": "speaking",
  "speakingTopic": "Open Source"

Screenshots

Additional information
We need to be careful while fixing this bug because now we group events, and what if two users are speaking at the same conference?

if we are grouping events now, does it make sense to only show these fields on the person profile page and not the main events page?

if we are grouping events now, does it make sense to only show these fields on the person profile page and not the main events page?

This is a great point, Amanda.

Thanks @Pradumnasaraf for noticing the bug 👍
Great solution @amandamartin-dev 💯
Also we would need to update the json docs to include these, as I think they got missed, plus we would need the event form updating as part of this issue also
TODO/NOTES

json event docs
reload script to include this data
event form to give these options
only show this information on the profile events section

I want to work on this issue.

I want to work on this issue.

Thank you, I have assigned you.


backport #859 - logrotate-compress

Backport of #859.

The playbook has been tested locally as working for me. It is a bit "larger" than the original impact because this depends on the common role and not the new apt_repos role. However, impact to operations during usage should be minimal.

Looks fine to me, lets see what tests say.