Never might be reasonably inferred to have properties also of type never.

Search Terms
type refinement properties, switch property, never properties
Suggestion
Right now never has no properties. This is somewhat at odds with mathematics where an empty set of elements is taken to have elements which trivially satisfy all predicates. There is probably a middle ground where there is a slightly richer type system for never, say, a never { type: never {}} type of values which should never happen which if they did happen would have a property named type. But I would find it easier if never was merely a sort of any which kept insidiously polluting its results with never: so a never function can take any sorts of arguments and returns a result also of type never , it is also an object whose properties have type never, and so forth.
Use Cases
So what's really at stake here is the fact that we know TypeScript code is type-insecure; we know this because it is ultimately at the end of the day JavaScript and that JavaScript is going to interact with other JavaScript which is type-insecure. I don't think it's too much of a stretch to say that manipulation of never values has only the one principal use-case: JavaScript gave us something which violated our TypeScript assumptions and we are trying to log it and clean up after it. (Maybe I'm missing something.)
Examples
Here's the example where I ran into this strange behavior; it is a switch that consumes a well-typed union:
type Report = {type: 'a', structure: StructureA} | {type: 'b', structure: StructureB}
switch (report.type) {
  case 'a':
    // do something with report.structure: StructureA
    break;
  case 'b':
    // do something with report.structure: StructureB
    break;
  default:
    assertImpossible(report.type);
}

Here assertImpossible does more or less what you expect: it takes an argument of type never, casts it to a string, and throws a TypeError stating that the call-site cannot handle an argument with the given value. One expects the above to type-check as-is: "either report.type is 'type1' or it's 'type2' or JS gave us something which TS would have disallowed and we need to be cranky about this mismatch."
But this does not type-check as-is because TypeScript correctly infers report to have type never but then reports two errors on the reference to report.type: (a) TS cannot extract properties from an object of type never, (b) TS does not have a specification for the type of report.type so it infers the type any which is inconsistent with the caller, which expects an argument of type never. Instead one has to write assertImpossible(report) to satisfy TypeScript. Note that a type override in the above code would actually break the guarantee that assertImpossible is trying to provide.
Instead one needs to do some gymnastics to handle this case, function assertImpossible(value: never, hint?: string): never called as assertImpossible(report, 'type'), internally performing (report as any)[type] to get the actual value that failed, or perhaps just trying to JSON.stringify the report. The above code looks cleaner, though, and it just relies on the fact that the .type property is known to be there already -- if the report were null or so, then the error would have happened at switch (report.type) and/or at the call site assertImpossible(report.type) before the fetch of that property occurred.
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

But I would find it easier if never was merely a sort of any which kept insidiously polluting its results with never: so a never function can take any sorts of arguments and returns a result also of type never , it is also an object whose properties have type never, and so forth.

Just to be clear - what would be an error in this world? It seems like 90% of the value of never is that you get an error when you try to use a never value, yet this proposal would seem to make it impossible for an error to appear. If you replace assertImpossible in your example with deliverCustomerReports it sure seems like the code as written has an error, but we can't tell which you meant.
The proposed behavior is effectively the same as Flow's, which people seem to not really like:
https://github.com/facebook/flow/issues/4134
https://github.com/facebook/flow/issues/2723
https://github.com/facebook/flow/issues/3062
https://github.com/facebook/flow/issues/2774

@RyanCavanaugh I am sorry but I think you may be confused about what I am proposing, or possibly about what never is.
I think this because you said " It seems like 90% of the value of never is that you get an error when you try to use a never value," and that is just not true:
let q: never;
function deliverCustomerReports(report: string):string {
  return report + '!';
}
const value = deliverCustomerReports(q); // typechecks just fine, because `never` is a subtype of all types.

It is therefore trivially true that under current TypeScript, yes, if you replace assertImpossible with deliverCustomReports it type-checks, and I am not proposing to change this behavior, so it would still remain the same afterwards, yes.
But if that's undesired behavior you should really raise that as a separate issue rather than commenting here about it? I think?
To be clear I am just saying that if assertImpossible takes a value of type never and I have a value x of type never, I should be able to assertImpossible(x.y).

Sorry, you're right that never is a valid input in that case.
Going back to the original question - what is an observable difference between never and any in your proposal?

@RyanCavanaugh reading the linked duplicate I almost wonder if the goal shouldn't be to make things work the way you thought they should -- that is, to disallow all manipulation of a never value. But I understand the reasoning given in that section -- that you want dead code to be discouraged but writable.
I wonder whether you would accept a feature request for a different sort of block supporting this use-case, something like
default:
  impossible {
     // only typechecks when this code is unreachable, and within it all values of type `never` are treated
     // as values of type `any`.
     throw switchFails(report.status)
  }

One could then strengthen never so that it is not a subtype of any other type, and can only be manipulated in explicit impossible {} blocks. It would then be released as part of TypeScript 3, say, being a breaking change to the language.


Convert readthedocs links for their .org -> .io migration for hosted projects

As per their blog post of the 27th April ‘Securing subdomains’:

Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.

Test Plan: Manually visited all the links I’ve modified.

This change is

Coverage decreased (-0.4%) to 90.566% when pulling 5d6c06b0d57e72aa7910e443d18995a46ab4a92d on adamchainz:readthedocs.io into 43a728838d90b5fe8796a11e4da9a8c58f46d315 on pytest-dev:master.

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Gnome terminal

Is there a way to get a profile for tokyo night (specifically moon) for the gnome terminal?

I'm not planning to add a theme for gnome-terminal


8 Puzzles game solution with DFS, BFS and Astar

Solution engine for 8 puzzles with DFS, BFS and AStar (incomplete)

Awesome work, welcome!


[QUESTION] Page specific fields

Hi,
Sorry for opening an issue again, but I have a question. In my current setup I have page specific fields. These are defined in my theme.yml file. It looks like the plugin doesn't do anything with it.
Does the plugin do anything with theme.yml?

Hey again @RickvanB!
To translate template specific fields set the templateselect field in your contenttypes.yml as translateable and then it should work. Lemme know if it doesn't work for you!

Thanks! It works now.

Question again, is it possible to translate blocks?

If you mean blocks as in the contenttype, sure it's translated just like any other contenttype. If you don't mean that I'm not sure what you mean?

@SahAssar Yes, blocks as in a contenttype.
This is the contenttype:
blocks:     name: Blocks     singular_name: Block     fields:         title:             type: text             class: large             group: "Block"         slug:             type: slug             uses: [ title ]         text-one:             type: text             label: Tekst 1             group: content             is_translateable: true         text-two:             type: text             label: Tekst 2             group: content             is_translateable: true         text-three:             type: text             label: Tekst 3             group: content             is_translateable: true         text-four:             type: text             label: Tekst 4             group: content             is_translateable: true         text-five:             type: text             label: Tekst 5             group: content             is_translateable: true         text-six:             type: text             label: Tekst 6             group: content             is_translateable: true

Yeah, just add the locale fields ans so on just like any other content type and it should work.


#167 - Updated Podfile

#167 Updated the following dependencies to their new @cuappdev forks.

[x] Fuzzywuzzy_swift
[x] Presentation
[x] NotificationBanner
[x] DZNEmptyDataSet

@ywsang Once your transfer the forked repo, you just need to clone this branch and change "ywsang" to "cuappdev" in the :git entry in the Podfile. You can do this by going to your fork for DZNEmptyDataSet, clicking on Settings, scrolling down and Transfer Ownership of the repo to cuappdev.

This is ready to merge, will do so after #150


SpiceSharp.CircuitException: Non-convergence error message

Hi,
Im learning SpiceSharp + SpiceSharpBehavioral, I created simple parallel circuit without using behavioral elements and it is working fine, when I use some of the elements from SpiceSharpBehavioral like BehavioralCurrentSource I get error "SpiceSharp.CircuitException: 'Non-convergence, node Node m_in (Voltage) is not a number.'", any ideas how to solve this?

Hi!
The exception you're getting is typical for a circuit that is unsolvable. The simulator will throw this exception if one of the voltages or currents is double.NaN.
If you can give an example I might be able to help.

hi, i found out that i have problem with behaviour expression, i need to use pwr(x,y) function in expression and spice does not recognize it when parsing expression, i can see that in spiceSharpBehaviour code there are defined math functions like pwr with name pow, but neither pow or pwr works, so i tried to implement that pow funciotn using FunctionFound mechanism, i could get rid of expression parsing error but I end with non convergence/voiltage in NAN error.
in conclusion i need to use pwr function in expression

You can specify a power in SpiceSharp.Behavioral using Pow(), it is case sensitive.
Specifying your own custom functions requires more work. I suggest looking at or using the helper classes in the SpiceSharpBehavioral.Parsers.Helpers namespace to see how you are supposed to implement your own custom methods.
An example that works right of the box:
using System;
using SpiceSharp;
using SpiceSharp.Components;
using SpiceSharp.Simulations;

namespace Benchmark
{
    class Program
    {
        static void Main(string[] args)
        {
            var ckt = new Circuit(
                new VoltageSource("V1", "in", "0", 1),
                new Resistor("R1", "in", "0", 1),
                new BehavioralVoltageSource("E1", "out", "0", "Pow(V(in),3)"));

            var op = new DC("dc", "V1", -1, 1, 0.1);
            var export = new RealCurrentExport(op, "V1");
            op.ExportSimulationData += (sender, e) =>
            {
                Console.Write(export.Value);
                Console.Write(" -> ");
                Console.WriteLine(e.GetVoltage("out"));
            };
            op.Run(ckt);
            Console.ReadKey();
        }
    }
}

I will close this issue because it doesn't relate to Spice#, but Spice#.Behavioral. Please open an issue here instead if you have any questions left about Spice#.Behavioral.


merge_fixtures is having some problem parsing parameters with Python 3

Using the following Python and Django
Python 3.4.6
Django 1.10.7
When I run the merge_fixtures command
python manage.py merge_fixtures foo.json bar.json baz.json > all_fixtures.json

It shows the following error message:
usage: manage.py merge_fixtures [-h] [--version] [-v {0,1,2,3}]
                                [--settings SETTINGS]
                                [--pythonpath PYTHONPATH] [--traceback]
                                [--no-color]
manage.py merge_fixtures: error: unrecognized arguments: foo.json bar.json baz.json

I looked into it a little bit and it seems to be unhappy in parsing the command line parameters. I think it is unhappy here:
        parser = self.create_parser(argv[0], argv[1])
        options = parser.parse_args(argv[2:])

But I am a bit unfamiliar with what is expected here and didn't have time to fully investigate the issue.  Do you have a hint where I should be looking?

You need to add the following line in the merge_fixtures.py file:
def add_arguments(self, parser):         parser.add_argument('args', metavar='files', nargs='+', help='One or more fixture.')
You can see it in the latest commit on master, but it doesn't seem to have been updated on PyPi, unfortunately.

I experienced a similar issue as @fuzzydolphin while running reorder_fixtures and incorporating @MaxBo's suggestion solved it for me.

A year later and this is still an issue I wonder why this is even closed

I misread that it was fixed by #61. Reopening but it won’t be fixed unless someone’s got a PR for this.

@davedash it's all about releasing what you have in master to pypi :)

PyPI deploy steps have changed slightly - https://stackoverflow.com/questions/45207128/failed-to-upload-packages-to-pypi-410-gone

The weird steps I remembered from the last time I did this worked :)
https://pypi.org/project/django-fixture-magic/
I really outta put this in Travis
Dave Dash
On Fri, Oct 19, 2018 at 11:01 AM Sean Chon<EMAIL_ADDRESS>wrote:

PyPI deploy steps have changed slightly -
https://stackoverflow.com/questions/45207128/failed-to-upload-packages-to-pypi-410-gone
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/davedash/django-fixture-magic/issues/59#issuecomment-431446965,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADoaTCf02Tp9a2vhRC9iSxA58_sdOTdks5umhKggaJpZM4Ph8HN
.

Just ran into this error, confirmed it's fixed by using master:
pip install -e git+https://github.com/davedash/django-fixture-magic.git@master#egg=django_fixture_magic

 pip freeze | grep fixture
-e git+https://github.com/davedash/django-fixture-magic.git@466fa35c075009e4a1974f6e588471dd9e720e53#egg=django_fixture_magic

I also confirmed that the source files from PyPi do not match the ones on github master. PyPi still contains the old buggy copy of merge_fixtures.py.
I did a diff of the PyPi package's merge_fixtures.py file vs the github master's merge_fixtures.py.
<     args = '[file ...]'
---
>
>     def add_arguments(self, parser):
>         parser.add_argument('args', metavar='files', nargs='+', help='One or more fixture.')

As a workaround, I would need to package the correct copy on an internal devpi server myself, because unfortunately I cannot use github in the environment I am working on.

@mghantous Can you let me know if https://pypi.org/project/django-fixture-magic/0.1.5/ fixes things?  This is from master.

Hi @davedash you made me realize that I was actually on 0.1.3. I am unable to install 0.1.4 or 0.1.5. Maybe this is because I don't match requirements? But I thought it would be a different error message.
$ pip install django-fixture-magic==0.1.4
ERROR: Could not find a version that satisfies the requirement django-fixture-magic==0.1.4 (from versions: 0.0.2.macosx-10.6-i386, 0.1.4.macosx-10.13-x86_64, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.7, 0.0.8, 0.1.0, 0.1.1, 0.1.2, 0.1.3)
ERROR: No matching distribution found for django-fixture-magic==0.1.4

$ pip install django-fixture-magic==0.1.5
ERROR: Could not find a version that satisfies the requirement django-fixture-magic==0.1.5 (from versions: 0.0.2.macosx-10.6-i386, 0.1.4.macosx-10.13-x86_64, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.7, 0.0.8, 0.1.0, 0.1.1, 0.1.2, 0.1.3)
ERROR: No matching distribution found for django-fixture-magic==0.1.5

I'm using python 3.6 and django 2.2. Thanks.

@davedash I think I may have identified the problem. If you navigate here you will see there is no 0.1.4 or 0.1.5 (but there is a version called 0.1.4.macosx-10.13-x86_64).
https://pypi.org/simple/django-fixture-magic/
I read in one article that you may need to do python setup.py bdist_wheel upload to get it to show up there.

I uploaded a wheel version and tried locally to verify that it now works.
DOes this work for you?
Dave Dash
On Wed, Jul 15, 2020 at 12:14 PM Matthew Ghantous<EMAIL_ADDRESS>wrote:

@davedash https://github.com/davedash I think I may have identified the
problem. If you navigate here you will see there is no 0.1.4 or 0.1.5
(but there is a version called 0.1.4.macosx-10.13-x86_64).
https://pypi.org/simple/django-fixture-magic/
I read in one article that you may need to do python setup.py bdist_wheel
upload to get it to show up there.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/davedash/django-fixture-magic/issues/59#issuecomment-658954164,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAOQ2O4SKAQAI76YBHMKEDR3X5X3ANCNFSM4D4HYHGQ
.

Yes. And it appears merge_fixtures.py is correct version off of master now. Thank you very much!


Emoji split bug

When trying to textillate string containing emoji emoji are destroyed.
Is due to split method
Solution:  http://stackoverflow.com/questions/34421887/splitting-emoji-safely
Use spliddit to replace .split() method;

Hey I know this is a very old issue to reopen but when I try textillate both from the release and the latest this is still not working.
Did it get overwritten?


Windows 10 Running as admin / non admin yeild different values

Upgraded to 0.9.3 from 0.9.2 (dirty update - no uninstall). Installer installed in C:\Program Files (x86)\Joulescope and required admin rights on my work computer to install.
When using, my values were around 300-700uA when they should be < 200uA.
Downgraded to 0.9.2 (dirty downgrade). Same behavior.
Rebooted machine. Same behaviour.
Uninstalled 0.9.2 and installed 0.9.3. Same behaviour.
Ran 0.9.3 as admin, and the values are < 200uA.
No admin

Admin rights

HI @efox29 - This issue is certainly strange.  Judging by the noise levels, I am guessing that the current range (or something else) is different between the two collections.  Could you check that the current ranging is set the same in both cases?  I normally recommend "auto", but just make sure that they are the same.
Your Joulescope stores config in %LOCALAPPDATA%, so perhaps this is different between the two runs.  I just tried running as admin on my machine, and it seems to pull the same configuration settings.  What do you see?

@mliberty1 There are 2 configs one for my domain user account and one for the elevated local user (in their respective %localappdata% directories.
I thought they were both set to auto...

Made it auto, and now I am able to get the correct values.

Great!  I'm glad that this was something easy...


Keeps hanging,

1 wallet loaded, about 30 UTXO, Wallet not doing any mixing, (No fund eligible for CJ)
Had the UTXO window opened.
It did that twice in 48h.

Logs don't look very useful, shared anyway.
2024-06-28 12:48:28.614 [33] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 10 sat/vByte to target 144 blocks at 8 sat/vByte.
2024-06-28 12:50:02.029 [14] WARNING	PeriodicRunner.ExecuteAsync (110)	System.Net.Http.HttpRequestException: Failed to get/read an HTTP response from Tor.
 ---> WalletWasabi.Tor.Socks5.Exceptions.TorConnectionReadException: Could not read HTTP response.
 ---> WalletWasabi.Tor.Socks5.Exceptions.TorConnectionReadException: HTTP start-line is incomplete. Tor circuit probably died.
   at WalletWasabi.Tor.Http.Helpers.HttpMessageHelper.ReadStartLineAsync(Stream stream, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Http.Extensions.HttpResponseMessageExtensions.CreateNewAsync(Stream responseStream, HttpMethod requestMethod, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendCoreAsync(TorTcpConnection connection, HttpRequestMessage request, Uri requestUriOverride, CancellationToken token)
   --- End of inner exception stack trace ---
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendCoreAsync(TorTcpConnection connection, HttpRequestMessage request, Uri requestUriOverride, CancellationToken token)
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendAsync(HttpRequestMessage request, ICircuit circuit, Int32 maximumRedirects, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendAsync(HttpRequestMessage request, ICircuit circuit, Int32 maximumRedirects, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Http.TorHttpClient.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Http.TorHttpClient.SendAsync(HttpMethod method, String relativeUri, HttpContent content, CancellationToken cancellationToken)
   at WalletWasabi.WebClients.Wasabi.WasabiClient.GetSynchronizeAsync(uint256 bestKnownBlockHash, Int32 count, Nullable`1 estimateMode, CancellationToken cancel)
   at WalletWasabi.Services.WasabiSynchronizer.ActionAsync(CancellationToken cancel)
   at WalletWasabi.Services.WasabiSynchronizer.ActionAsync(CancellationToken cancel)
   at WalletWasabi.Bases.PeriodicRunner.ExecuteAsync(CancellationToken stoppingToken)
2024-06-28 12:50:02.916 [14] INFO	PeriodicRunner.ExecuteAsync (92)	Exception stopped coming. It came for 0.890504 seconds, 1 times: HttpRequestException: Failed to get/read an HTTP response from Tor.
2024-06-28 12:52:09.172 [24] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 12 sat/vByte to target 144 blocks at 8 sat/vByte.
2024-06-28 12:58:25.422 [27] INFO	FilterProcessor.ProcessAsync (50)	Downloaded filter for block 849844.
2024-06-28 12:58:25.441 [27] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 8 sat/vByte to target 2 blocks at 8 sat/vByte.
2024-06-28 12:58:25.600 [76] INFO	MempoolService.TryPerformMempoolCleanupAsync (101)	Start cleaning out mempool...
2024-06-28 12:58:31.480 [61] INFO	MempoolService.TryPerformMempoolCleanupAsync (113)	3958 transactions were removed from mempool.
2024-06-28 12:59:48.624 [11] WARNING	TorTcpConnectionFactory.ConnectToDestinationAsync (237)	Connection response indicates a failure. Actual response is: 'GeneralSocksServerFailure'. Request: 'shopinbit.com:443'.
2024-06-28 12:59:50.655 [30] WARNING	TorTcpConnectionFactory.ConnectToDestinationAsync (237)	Connection response indicates a failure. Actual response is: 'GeneralSocksServerFailure'. Request: 'btcpay.kruw.io:443'.
2024-06-28 12:59:50.658 [61] WARNING	TorTcpConnectionFactory.ConnectToDestinationAsync (237)	Connection response indicates a failure. Actual response is: 'GeneralSocksServerFailure'. Request: 'api.wasabiwallet.io:443'.
2024-06-28 12:59:50.656 [72] WARNING	TorTcpConnectionFactory.ConnectToDestinationAsync (237)	Connection response indicates a failure. Actual response is: 'GeneralSocksServerFailure'. Request: 'shopinbit.com:443'.
2024-06-28 13:00:24.596 [71] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 10 sat/vByte to target 144 blocks at 8 sat/vByte.
2024-06-28 13:06:42.181 [52] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 12 sat/vByte to target 144 blocks at 8 sat/vByte.
2024-06-28 13:15:51.871 [76] INFO	FilterProcessor.ProcessAsync (50)	Downloaded filter for block 849845.
2024-06-28 13:15:52.051 [46] INFO	MempoolService.TryPerformMempoolCleanupAsync (101)	Start cleaning out mempool...
2024-06-28 13:16:01.392 [42] INFO	MempoolService.TryPerformMempoolCleanupAsync (113)	3539 transactions were removed from mempool.
2024-06-28 13:16:23.538 [52] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 8 sat/vByte to target 2 blocks at 8 sat/vByte.
2024-06-28 13:16:56.888 [40] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 10 sat/vByte to target 144 blocks at 8 sat/vByte.
2024-06-28 13:20:05.839 [65] WARNING	PeriodicRunner.ExecuteAsync (110)	System.Net.Http.HttpRequestException: Failed to handle the HTTP request via Tor.
 ---> WalletWasabi.Tor.Socks5.Exceptions.TorConnectionException: Failed to read/write HTTP(s) request.
 ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer.
 ---> System.Net.Sockets.SocketException (54): Connection reset by peer
   at System.Net.Sockets.NetworkStream.ReadAsync(Memory`1 buffer, CancellationToken cancellationToken)
   at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at System.Net.Security.SslStream.ReceiveHandshakeFrameAsync[TIOAdapter](CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](Boolean receiveFirst, Byte[] reAuthenticationData, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.UpgradeToSslAsync(TcpClient tcpClient, String host, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.UpgradeToSslAsync(TcpClient tcpClient, String host, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.ConnectAsync(String host, Int32 port, Boolean useSsl, INamedCircuit circuit, CancellationToken cancellationToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.ConnectToDestinationAsync(TcpClient tcpClient, String host, Int32 port, CancellationToken cancellationToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Threading.Tasks.Task`1.TrySetResult(TResult result)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.SendRequestAsync(TcpClient tcpClient, ByteArraySerializableBase request, CancellationToken cancellationToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Threading.Tasks.Task`1.TrySetResult(TResult result)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.ReadRequestResponseAsync(NetworkStream stream, CancellationToken cancellationToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(IAsyncStateMachineBox box, Boolean allowInlining)
   at System.Threading.Tasks.Task.RunContinuations(Object continuationObject)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetExistingTaskResult(Task`1 task, TResult result)
   at WalletWasabi.Extensions.StreamExtensions.ReadByteAsync(Stream stream, CancellationToken cancellationToken)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Net.Sockets.SocketAsyncEventArgs.TransferCompletionCallbackCore(Int32 bytesTransferred, Memory`1 socketAddress, SocketFlags receivedFlags, SocketError socketError)
   at System.Net.Sockets.SocketAsyncEngine.System.Threading.IThreadPoolWorkItem.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()
--- End of stack trace from previous location ---

   --- End of inner exception stack trace ---
   at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
   at System.Net.Security.SslStream.ReceiveHandshakeFrameAsync[TIOAdapter](CancellationToken cancellationToken)
   at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](Boolean receiveFirst, Byte[] reAuthenticationData, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.UpgradeToSslAsync(TcpClient tcpClient, String host, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.ConnectAsync(String host, Int32 port, Boolean useSsl, INamedCircuit circuit, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.TorTcpConnectionFactory.ConnectAsync(Uri requestUri, INamedCircuit circuit, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.CreateNewConnectionAsync(Uri requestUri, INamedCircuit circuit, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.ObtainFreeConnectionAsync(Uri requestUri, ICircuit circuit, CancellationToken token)
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendAsync(HttpRequestMessage request, ICircuit circuit, Int32 maximumRedirects, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at WalletWasabi.Tor.Socks5.Pool.TorHttpPool.SendAsync(HttpRequestMessage request, ICircuit circuit, Int32 maximumRedirects, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Http.TorHttpClient.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at WalletWasabi.Tor.Http.TorHttpClient.SendAsync(HttpMethod method, String relativeUri, HttpContent content, CancellationToken cancellationToken)
   at WalletWasabi.WebClients.Wasabi.WasabiClient.GetSynchronizeAsync(uint256 bestKnownBlockHash, Int32 count, Nullable`1 estimateMode, CancellationToken cancel)
   at WalletWasabi.Services.WasabiSynchronizer.ActionAsync(CancellationToken cancel)
   at WalletWasabi.Services.WasabiSynchronizer.ActionAsync(CancellationToken cancel)
   at WalletWasabi.Bases.PeriodicRunner.ExecuteAsync(CancellationToken stoppingToken)
2024-06-28 13:20:07.648 [52] INFO	PeriodicRunner.ExecuteAsync (92)	Exception stopped coming. It came for 1.81317 seconds, 1 times: HttpRequestException: Failed to handle the HTTP request via Tor.
2024-06-28 13:21:10.530 [9] INFO	HybridFeeProvider.OnAllFeeEstimateArrived (105)	Fee rates are acquired from WasabiSynchronizer ranging from target 2 blocks at 12 sat/vByte to target 144 blocks at 8 sat/vByte.

@soosr Is it known that there is a memory leak in this window?
@nostitos What is your OS please?

I can't see a memory leak. You would see that when the green part continuously increases, but you can see the spikes when GC collects the unused resources. I tried reopening that dialog several times and kept it open and simulating new filter downloading which is an update trigger for the list. It worked as expected.
Windows 11.

@nostitos What is your OS please?
OSX Sonoma, it never happened again so I rather just close this.


Question about Discriminative Reranker for NMT

❓ Questions and Help
Before asking:

search the issues.
search the docs.

What is your question?
How to use monolingual data ? Do I understand this correctly ?

given parallel data P and monolingual data in target side M.
train a translation model T1 in P from target to source
translate M to source side with T1
train a translation model T2 in P from source to target
using T2 to generate n-best list from source side of P and M.
using generated n-best list to train a reranker

@an918tw Hi, Could you please help me out ? Many thanks

@Hannibal046 yes this looks correct to me.

@an918tw  Thanks for your help !


Jitter between RC override active and computer control

The status message is constantly switching back and forth between RC override active and computer control while the computer control switch is in the active position. We increased the override deviation and saw the same result. We echoed rc_raw, and the channels are outputting constant values while the switching takes place. We are publishing off-board commands at 100 Hz.

We just set the rc transmitter trims to neutral (1500) and the problem seemed to disappear.

That makes sense.  We enforce that the RC transmitter does not have trims while flying with offboard commands.  This is because otherwise the offboard commands don't know where the trim point is.


DateTime type extension methods

It would be great to have some extension methods on the DateTime object to assist with the regular date calculations performed in this application

As an example, it might be useful to have a couple of extension methods which compare a certain DateTime against a Date (range), e.g. does "Wed July 17th, 8:09pm" fall on "Wed Jul 17th"?
var dateTime = new DateTime(2019, 07, 17, 20, 09, 00);
var date = new DateTime(2019, 07, 17);

bool check = dateTime.IsOn(date);

Internally, the IsOn extension method would be coded as (pseudo code):
return dateTime >= date and dateTime < date + 1 day;

Similarly, additional extension methods can be defined:

IsOnOrAfter (pseudo: dateTime >= date)
IsAfter (pseudo: dateTime >= date + 1 day)
IsBeforeOrOn (pseudo: dateTime < date + 1 day)
IsBefore (pseudo: dateTime < date)
IsBetween (pseudo: dateTime >= date1 and dateTime < date2 + 1 day)

The benefit of using these extension methods is that it makes it very clear what the developer's intention was (and hopefully prevent fence post errors).

Hi I have added the extension methods for comparing a DateTime object's date with another DateTime object's date (these are the methods above except each method has been appended with 'Date' - IsOnDate, IsBeforeDate etc), aswell as extension methods for comparing entire DateTime objects with other DateTime objects (these are named like IsSameOrBefore, IsSameOrAfter and will take into account the time property of the objects). Should I implement the extension methods in the ScheduleManager? For example:
if (!(ts1.StartDateTime <= ts2.EndDateTime && ts2.StartDateTime <= ts1.EndDateTime)) {
	logger.LogTrace("Did not find an intersection");
	return null;
}

will become:
 if (!(ts1.StartDateTime.IsSameOrBefore(ts2.EndDateTime)
	&& ts2.StartDateTime.IsSameOrBefore(ts1.EndDateTime))) {
	logger.LogTrace("Did not find an intersection");
	return  null;
 }

@marblekirby Amazingly quick turn-around 👍
The reason for me not including extension methods for comparing DateTime against DateTime is that they don't add value to just using var earlier = dateTime1 < dateTime2. In my mind this is clearer for the next developer reading the code.
So I think your initial commit 6be1a6bed4e1362b26b1e312105bc43bb3509501 was the right way to go, but it is up to @csharpfritz what he prefers.

Sure, I agree with you @ultramark, I think you are right and we should maybe go back to that commit.

I'm ok adding the extension methods, but I think the more valuable feedback here is that we should create some methods for comparing schedule or timeslot objects


How does decoding unordered maps work?

It seems that current code generator is still outputting code that expects map keys in the exact order that they are defined in cddl.
Type = {
   key_a: int,
   key_b: int
}

The code generated from this will be a long if statement where the fields are in exact order with && between. So decoding in any order does not work.
Is there a workaround for this?

No, the code generator does not yet use the unordered maps API, but this is planned to be implemented soon-ish.

I think it's really important because the following passage of the specification does not hold true for the current decoder:

In the current implementation the map behaves like a list where all fields must come in exact order.


minimal configuration to sync ldap group member to postgres

Can you give a minimal configuration example for sync of ldap Group members to postgres.
I have created a ldap Group with two members.
And create some user in postgres database.
i want to get ldap Group members and only members of this Group should be add or remove from postgres database.
sync_map:
__all__:
- ldap:
   base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=xxxx,DC=cnb
   filter: "(objectClass=groupOfNames)"
   attribute: member

  roles:
  - name_attribute: cn
    members_attribute: member.cn
    options: LOGIN

-bash-4.2$ DEBUG=Y ldap2pg -c ldap2pg.minimal.yml
[ldap2pg.script      DEBUG] Debug mode enabled.
[ldap2pg.config      DEBUG] Processing CLI arguments.
[ldap2pg.config       INFO] Starting ldap2pg 3.3.
[ldap2pg.config      DEBUG] Trying ldap2pg.minimal.yml.
[ldap2pg.config       INFO] Using /var/lib/pgsql/ldap2pg.minimal.yml.
[ldap2pg.config      DEBUG] Read color from YAML.
[ldap2pg.config      DEBUG] Read dry from YAML.
[ldap2pg.config      DEBUG] Read verbose from DEBUG.
[ldap2pg.config      DEBUG] Read ldap:uri from YAML.
[ldap2pg.config      DEBUG] Read ldap:binddn from YAML.
[ldap2pg.config      DEBUG] Read ldap:password from YAML.
[ldap2pg.config      DEBUG] Read postgres:dsn from YAML.
[ldap2pg.config      DEBUG] Read postgres:blacklist from YAML.
[ldap2pg.config      DEBUG] Read sync_map from YAML.
[ldap2pg.config      DEBUG] Configuration loaded.
[ldap2pg.config    WARNING] Empty synchronization map!
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/etc/ldap/ldap.conf'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/.ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'ldaprc'
[ldap2pg.ldap        DEBUG] Connecting to LDAP server ldap://de.company.cnb:389.
[ldap2pg.ldap        DEBUG] Trying simple bind.
[ldap2pg.script    WARNING] Running in dry mode. Postgres will be untouched.
[ldap2pg.manager      INFO] Inspecting Postgres...
[ldap2pg.psql        DEBUG] Connecting to Postgres postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.psql        DEBUG] Doing: SELECT datname FROM pg_catalog.pg_database
[ldap2pg.psql        DEBUG] WHERE datallowconn IS TRUE ORDER BY 1;
[ldap2pg.psql        DEBUG] Doing: SELECT
[ldap2pg.psql        DEBUG]     role.rolname, array_agg(members.rolname) AS members,
[ldap2pg.psql        DEBUG]     role.rolbypassrls, role.rolcanlogin, role.rolcreatedb, role.rolcreaterole, role.rolinherit, role.rolreplication, role.rolsuper
[ldap2pg.psql        DEBUG] FROM
[ldap2pg.psql        DEBUG]     pg_catalog.pg_roles AS role
[ldap2pg.psql        DEBUG] LEFT JOIN pg_catalog.pg_auth_members ON roleid = role.oid
[ldap2pg.psql        DEBUG] LEFT JOIN pg_catalog.pg_roles AS members ON members.oid = member
[ldap2pg.psql        DEBUG] GROUP BY role.rolname, role.rolbypassrls, role.rolcanlogin, role.rolcreatedb, role.rolcreaterole, role.rolinherit, role.rolreplication, role.rolsuper
[ldap2pg.psql        DEBUG] ORDER BY 1;
[ldap2pg.manager     DEBUG] Found role u'demo_sst' SUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Role demo_sst has members userabc.
[ldap2pg.manager     DEBUG] Found role u'userabc' SUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Ignoring role userldap. Matches u'userldap'.
[ldap2pg.manager     DEBUG] Ignoring role pg_signal_backend. Matches u'pg_*'.
[ldap2pg.manager     DEBUG] Ignoring role postgres. Matches u'postgres'.
[ldap2pg.manager     DEBUG] Found role u'test2' NOSUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Postgres inspection done.
[ldap2pg.manager     DEBUG] LDAP inspection completed. Post processing.
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would reassign test2 objects and purge ACL on postgres.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY test2 TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY test2;
[ldap2pg.psql        DEBUG] Connecting to Postgres postgres://userldap:password@hostname.de.company.cnb:5432/template1.
[ldap2pg.manager      INFO] Would reassign test2 objects and purge ACL on template1.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY test2 TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY test2;
[ldap2pg.psql        DEBUG] Connecting to Postgres postgres://userldap:password@hostname.de.company.cnb:5432/testdb.
[ldap2pg.manager      INFO] Would reassign test2 objects and purge ACL on testdb.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY test2 TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY test2;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would drop test2.
[ldap2pg.manager     DEBUG] Would execute: DROP ROLE test2;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would reassign demo_sst objects and purge ACL on postgres.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY demo_sst TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY demo_sst;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/template1.
[ldap2pg.manager      INFO] Would reassign demo_sst objects and purge ACL on template1.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY demo_sst TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY demo_sst;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/testdb.
[ldap2pg.manager      INFO] Would reassign demo_sst objects and purge ACL on testdb.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY demo_sst TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY demo_sst;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would drop demo_sst.
[ldap2pg.manager     DEBUG] Would execute: DROP ROLE demo_sst;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would reassign userabc objects and purge ACL on postgres.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY userabc TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY userabc;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/template1.
[ldap2pg.manager      INFO] Would reassign userabc objects and purge ACL on template1.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY userabc TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY userabc;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/testdb.
[ldap2pg.manager      INFO] Would reassign userabc objects and purge ACL on testdb.
[ldap2pg.manager     DEBUG] Would execute: DO $$BEGIN EXECUTE 'REASSIGN OWNED BY userabc TO ' || session_user; END$$;
[ldap2pg.manager     DEBUG] DROP OWNED BY userabc;
[ldap2pg.psql        DEBUG] Using Postgres connection to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.manager      INFO] Would drop userabc.
[ldap2pg.manager     DEBUG] Would execute: DROP ROLE userabc;
[ldap2pg.manager     DEBUG] Generated 12 querie(s).
[ldap2pg.script       INFO] Comparison complete.
[ldap2pg.psql        DEBUG] Closing Postgres cursor to postgres://userldap:password@hostname.de.company.cnb:5432/template1.
[ldap2pg.psql        DEBUG] Closing Postgres connexion to postgres://userldap:password@hostname.de.company.cnb:5432/template1.
[ldap2pg.psql        DEBUG] Closing Postgres cursor to postgres://userldap:password@hostname.de.company.cnb:5432/testdb.
[ldap2pg.psql        DEBUG] Closing Postgres connexion to postgres://userldap:password@hostname.de.company.cnb:5432/testdb.
[ldap2pg.psql        DEBUG] Closing Postgres cursor to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.
[ldap2pg.psql        DEBUG] Closing Postgres connexion to postgres://userldap:password@hostname.de.company.cnb:5432/postgres.

But i expect that user in ldap to be add to postgres.

First Problem is: script get no member from ldap.
ldap connect is wrong or not working
[ldap2pg.manager      INFO] Querying LDAP cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=groupOfNames)' member**
[ldap2pg.manager     DEBUG] Got 0 entries from LDAP.
[ldap2pg.manager     DEBUG] LDAP inspection completed. Post processing.
Not working: get no member list
ldap2pg entry:
ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=groupOfNames)' **member
I can only member with ldapsearch from AD with this command with -D option
use<EMAIL_ADDRESS>or ad-company-cnb\username
-bash-4.2$ ldapsearch -x -H ldap://bayer.cnb:3268 -L -D 'ad-company-cnb\username' -W -b 'CN=manager,OU=Groups,OU=IAM,OU=_DomainOperations,DC=company,DC=cnb' member

Hi @canlar. ldap2pg don't create roles implicitly. Here is how to create groups and user roles:
sync_map:
- ldap:
   base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=xxxx,DC=cnb
   filter: "(objectClass=groupOfNames)"
   attribute: member
  roles:
  # create the group
  - name_attribute: cn
    members_attribute: member.cn
    options: NOLOGIN
  # create the roles
  - name_attribute: member.cn
    options: LOGIN

@canlar you have a meaningful warning :
[ldap2pg.config    WARNING] Empty synchronization map!

This is because __all__: is at the same level of sync_map. I my example, i drop __all__.
FYI, use a YAML list for sync_map, don't bother with database (__all__) or schema. It's actually pretty useless.

I need to update documentation about this topic. Please keep this issue open :-)

ldapsearch give empty memberlist.
I cant get memberlist with this execited command in ldap2pg
ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=groupOfNames
For AD i think it must be implemented with this option ldapsearch command..
-D 'ad-company-cnb\username'
-bash-4.2$ ldapsearch -x -H ldap://company.cnb:389 -L -D 'ad-company-cnb\username' -W -b 'CN=manager,OU=Groups,OU=IAM,OU=_DomainOperations,DC=company,DC=cnb' member

@canlar , what if you remove filter: "(objectClass=groupOfNames)" from YAML ?

sucessfull ldapsearch command to get m,ember of ldap group is this.
ldapsearch -x -H ldap://de.company.cnb:389 -L -D 'username' -W -b 'CN=manager,OU=Groups,OU=IAM,OU=_DomainOperations,DC=bayer,DC=cnb' member
ldap:
uri: ldap://de.compnay.cnb:389
binddn: 'username'
password: "password"
postgres:
dsn: postgres://usernamepg:password@hostname.de.company.cnb:5432/
List of glob patterns to exclude external roles.
blacklist: [username,postgres, pg_*]
sync_map:

ldap:
base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb
role:
name_attribute: cn.member
options: LOGIN

bash-4.2$ DEBUG=Y ldap2pg -c ldap2pg.minimal.yml
[ldap2pg.script      DEBUG] Debug mode enabled.
[ldap2pg.config      DEBUG] Processing CLI arguments.
[ldap2pg.config       INFO] Starting ldap2pg 3.3.
[ldap2pg.config      DEBUG] Trying ldap2pg.minimal.yml.
[ldap2pg.config       INFO] Using /var/lib/pgsql/ldap2pg.minimal.yml.
[ldap2pg.config      DEBUG] Read color from YAML.
[ldap2pg.config      DEBUG] Read dry from YAML.
[ldap2pg.config      DEBUG] Read verbose from DEBUG.
[ldap2pg.config      DEBUG] Read ldap:uri from YAML.
[ldap2pg.config      DEBUG] Read ldap:binddn from YAML.
[ldap2pg.config      DEBUG] Read ldap:password from YAML.
[ldap2pg.config      DEBUG] Read postgres:dsn from YAML.
[ldap2pg.config      DEBUG] Read postgres:blacklist from YAML.
[ldap2pg.config      DEBUG] Read sync_map from YAML.
[ldap2pg.script      ERROR] Unhandled error:
[ldap2pg.script      ERROR] Traceback (most recent call last):
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/script.py", line 75, in main
[ldap2pg.script      ERROR]     exit(wrapped_main(config))
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/script.py", line 23, in wrapped_main
[ldap2pg.script      ERROR]     config.load()
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/config.py", line 599, in load
[ldap2pg.script      ERROR]     self.merge(file_config=file_config, environ=os.environ, args=args)
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/config.py", line 619, in merge
[ldap2pg.script      ERROR]     args=args,
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/config.py", line 414, in process
[ldap2pg.script      ERROR]     return self.processor(value)
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/config.py", line 269, in syncmap
[ldap2pg.script      ERROR]     maplist[:] = [mapping(m) for m in maplist]
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/config.py", line 187, in mapping
[ldap2pg.script      ERROR]     value['roles'] = [rolerule(r) for r in value['roles']]
[ldap2pg.script      ERROR] TypeError: 'NoneType' object is not iterable
[ldap2pg.script      DEBUG] Dropping in debugger.

/usr/lib/python2.7/site-packages/ldap2pg/config.py(187)mapping()

@canlar, thanks for the report !
You have an identation typo:
sync_map:
  - ldap:
      base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb
    role:
  - name_attribute: cn.member
^^^^^^^ this is not *in* role:
    options: LOGIN

I'm updating ldap2pg to have meaningful error in such case

@canlar if you are not à l'aise with YAML, you can just write plain JSON.
sync_map:
  - ldap:
      base: dc=ldap,dc=ldap2pg,dc=docker
    role: [{
    name_attribute: cn.member,
    options: LOGIN
    }]

YMMV

-bash-4.2$ DEBUG=Y ldap2pg -c ldap2pg.minimal.yml
[ldap2pg.script      DEBUG] Debug mode enabled.
[ldap2pg.config      DEBUG] Processing CLI arguments.
[ldap2pg.config       INFO] Starting ldap2pg 3.3.
[ldap2pg.config      DEBUG] Trying ldap2pg.minimal.yml.
[ldap2pg.config       INFO] Using /var/lib/pgsql/ldap2pg.minimal.yml.
[ldap2pg.config      DEBUG] Read color from YAML.
[ldap2pg.config      DEBUG] Read dry from YAML.
[ldap2pg.config      DEBUG] Read verbose from DEBUG.
[ldap2pg.config      DEBUG] Read ldap:uri from YAML.
[ldap2pg.config      DEBUG] Read ldap:binddn from YAML.
[ldap2pg.config      DEBUG] Read ldap:password from YAML.
[ldap2pg.config      DEBUG] Read postgres:dsn from YAML.
[ldap2pg.config      DEBUG] Read postgres:blacklist from YAML.
[ldap2pg.config      DEBUG] Read sync_map from YAML.
[ldap2pg.config      DEBUG] Configuration loaded.
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/etc/ldap/ldap.conf'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/.ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'ldaprc'
[ldap2pg.ldap        DEBUG] Connecting to LDAP server ldap://de.company.cnb:389.
[ldap2pg.ldap        DEBUG] Trying simple bind.
[ldap2pg.script    WARNING] Running in dry mode. Postgres will be untouched.
[ldap2pg.manager      INFO] Inspecting Postgres...
[ldap2pg.psql        DEBUG] Connecting to Postgres postgres://username:passwordS@by-pgtest2.de.company.cnb:5432/postgres.
[ldap2pg.psql        DEBUG] Doing: SELECT datname FROM pg_catalog.pg_database
[ldap2pg.psql        DEBUG] WHERE datallowconn IS TRUE ORDER BY 1;
[ldap2pg.psql        DEBUG] Doing: SELECT
[ldap2pg.psql        DEBUG]     role.rolname, array_agg(members.rolname) AS members,
[ldap2pg.psql        DEBUG]     role.rolbypassrls, role.rolcanlogin, role.rolcreatedb, role.rolcreaterole, role.rolinherit, role.rolreplication, role.rolsuper
[ldap2pg.psql        DEBUG] FROM
[ldap2pg.psql        DEBUG]     pg_catalog.pg_roles AS role
[ldap2pg.psql        DEBUG] LEFT JOIN pg_catalog.pg_auth_members ON roleid = role.oid
[ldap2pg.psql        DEBUG] LEFT JOIN pg_catalog.pg_roles AS members ON members.oid = member
[ldap2pg.psql        DEBUG] GROUP BY role.rolname, role.rolbypassrls, role.rolcanlogin, role.rolcreatedb, role.rolcreaterole, role.rolinherit, role.rolreplication, role.rolsuper
[ldap2pg.psql        DEBUG] ORDER BY 1;
[ldap2pg.manager     DEBUG] Found role u'demo_sst' SUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Role demo_sst has members user123.
[ldap2pg.manager     DEBUG] Found role u'user123' SUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Ignoring role username. Matches u'username'.
[ldap2pg.manager     DEBUG] Ignoring role pg_signal_backend. Matches u'pg_'.
[ldap2pg.manager     DEBUG] Ignoring role postgres. Matches u'postgres'.
[ldap2pg.manager     DEBUG] Found role u'test2' NOSUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Postgres inspection done.
[ldap2pg.manager     DEBUG] Working on schema all.any.
[ldap2pg.manager      INFO] Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=)' cn
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script      ERROR] Unhandled error:
[ldap2pg.script      ERROR] Traceback (most recent call last):
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/script.py", line 75, in main
[ldap2pg.script      ERROR]     exit(wrapped_main(config))
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/script.py", line 50, in wrapped_main
[ldap2pg.script      ERROR]     syncmap=config['sync_map'])
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/manager.py", line 256, in inspect
[ldap2pg.script      ERROR]     for role in self.apply_role_rules(mapping['roles'], entries):
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/manager.py", line 169, in apply_role_rules
[ldap2pg.script      ERROR]     for role in self.process_ldap_entry(entry=entry, **rule):
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/manager.py", line 143, in process_ldap_entry
[ldap2pg.script      ERROR]     for name in names:
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/manager.py", line 32, in get_ldap_attribute
[ldap2pg.script      ERROR]     dn = str2dn(value)
[ldap2pg.script      ERROR]   File "/usr/lib/python2.7/site-packages/ldap2pg/ldap.py", line 58, in str2dn
[ldap2pg.script      ERROR]     return decode_value(native_str2dn(value.encode('utf-8')))
[ldap2pg.script      ERROR]   File "/usr/lib64/python2.7/site-packages/ldap/dn.py", line 53, in str2dn
[ldap2pg.script      ERROR]     return ldap.functions._ldap_function_call(None,_ldap.str2dn,dn,flags)
[ldap2pg.script      ERROR]   File "/usr/lib64/python2.7/site-packages/ldap/functions.py", line 63, in _ldap_function_call
[ldap2pg.script      ERROR]     result = func(*args,**kwargs)
[ldap2pg.script      ERROR] DECODING_ERROR
[ldap2pg.script      DEBUG] Dropping in debugger.

/usr/lib64/python2.7/site-packages/ldap/functions.py(63)_ldap_function_call()
-> result = func(*args,**kwargs)
(Pdb)

@canlar hmm, can you send me the full DN ?

@canlar i reproduced it. You should use member.cn not cn.member ;-)

Updating ldap2pg to provide meaningful error

color: yes
dry: yes
ldap:
uri: ldap://de.company.cnb:389
binddn: 'username'
password: "xxxxxxx"
postgres:
dsn: postgres://username:xxxxx@hostxyz.de.company.cnb:5432/
List of glob patterns to exclude external roles.
blacklist: [username,postgres, pg_*]
sync_map:

ldap:
base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=compnay,DC=cnb
role: [{
name_attribute: member.cn,
options: LOGIN
}]

The ldapsearch is the problem:
I can't get the member list from ldap. It gives no members.
if i use this command i get memeberlist:
ldapsearch -x -H ldap://de.company.cnb:389 -L -D 'username' -W -b 'CN=manager,OU=Groups,OU=IAM,OU=_DomainOperations,DC=bayer,DC=cnb' member
[ldap2pg.manager      INFO] Querying LDAP cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=*)' cn
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script   CRITICAL] Failed to process (u'CN=manager,OU=Group: Unknown attribute u'member'

@canlar You must ask ldap2pg to fetch member in ldap query.

How can I ask ldap2pg to fetch the ldap members?
Can you please write the minimal configuration ldap ldap2pg.minimal.yml
Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb -s sub '(objectClass=groupOfNames)' member
[ldap2pg.manager     DEBUG] Got 0 entries from LDAP.
In case of 0 entries in ldap you should implement an exception otherwise it will delete user from postgres db.
Freundliche Grüße / Best regards,
Murat Arslan

Bayer: Science For A Better Life
Bayer Business Services GmbH
Application Platform Management
Data Management Platform Services
Building C152, 414
51368 Leverkusen, Germany
Tel:       +49 214 30-23103
Fax:     +49 214 30-52177
E-mail:  murat.arslan<EMAIL_ADDRESS>Web:    http://www.business-services.bayer.comhttp://www.business-services.bayer.com/
Geschäftsführung: Daniel Hartert, Geschäftsführer | Wilhelm Oehlschläger
Vorsitzender des Aufsichtsrats: Johannes Dietsch
Sitz der Gesellschaft: Leverkusen | Amtsgericht Köln, HRB 49895
Von: Étienne BERSAC<EMAIL_ADDRESS>Gesendet: Freitag, 1. Dezember 2017 11:11
An: dalibo/ldap2pg
Cc: Murat Arslan; Mention
Betreff: Re: [dalibo/ldap2pg] minimal configuration to sysnc ldap group member to postgres (#125)
@canlarhttps://github.com/canlar You must ask ldap2pg to fetch member in ldap query.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dalibo/ldap2pg/issues/125#issuecomment-348455544, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ARTd9_5WZ3NvQkrVm99_jJrayX0qZo94ks5s79CpgaJpZM4Qr6c2.

@canlar member ist ein attribute. Sie müssen definieren attributes: [cn, member].
- ldap:
    base: CN=manager,OU=Groups,OU=IAM,OU=_DomainOperations,DC=bayer,DC=cnb
    scope: sub
    attributes: member
  role:
  - name_attribute: member
    options: LOGIN

With Parameter scope:sub  i get the member list. Thanky you very much.
But i have new question.
Thank you now I can get memebers from ldap
Before I execute the script for testing.
I have added testuser and test123 in AD as member of ldap group manager
Postgres DB: manualy create test2,testuser and DEMO_SST (superusers admins belongs to this group) in postgres database. (NOT CREATE test123)
I will only member of ldapgroup manager and postgres Group DEMO_SST should be deleted
other user in postgres dont be touched.
But both users will be deleted (test2 no memeber of DEMO_SST and testuser is member of ldap_group)
-bash-4.2$ ldap2pg -c ldap2pg.minimal.yml
Starting ldap2pg 3.3.
Using /var/lib/pgsql/ldap2pg.minimal.yml.
Running in dry mode. Postgres will be untouched.
Inspecting Postgres...
Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
Would create cn=test123,ou=users,ou=de,ou=countries,dc=bayer,dc=cnb.
Would create cn=testuser,ou=users,ou=de,ou=countries,dc=bayer,dc=cnb.
Would update options of demo_sst.
Would add missing demo_sst members.
Would delete spurious demo_sst members.
Would reassign test2 objects and purge ACL on postgres.
Would reassign test2 objects and purge ACL on template1.
Would reassign test2 objects and purge ACL on testdb.
Would drop test2.
Would reassign testuser objects and purge ACL on postgres.
Would reassign testuser objects and purge ACL on template1.
Would reassign testuser objects and purge ACL on testdb.
Would drop testuser.
Comparison complete.

@canlar, there is a recipe in documentation for partial synchronization : http://ldap2pg.readthedocs.io/en/latest/cookbook/#dont-synchronize-superusers
The idea is to customize the role inspection query to returns only roles that ldap2pg is allowed to drop.

I have change the SQL Statement to sync only superusers.
I would like only memername bute get full entry from ldap an can't create in postgres the member Name.
roles_query: |
SELECT
role.rolname, array_agg(members.rolname) AS members,
{options}
FROM
pg_catalog.pg_roles AS role
LEFT JOIN pg_catalog.pg_auth_members ON roleid = role.oid
LEFT JOIN pg_catalog.pg_roles AS members ON members.oid = member
WHERE role.rolsuper IS TRUE
GROUP BY role.rolname, {options}
ORDER BY 1;
sync_map:

role:
name: DEMO_SST
options: NOLOGIN SUPERUSER

ldap:
base: cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb
scope: sub
#filter: "(objectClass=*)"
attributes: member
role:

name_attribute: member
options: LOGIN
parent: DEMO_SST

[ldap2pg.manager      INFO] Would create cn=imgeg,ou=users,ou=de,ou=countries,dc=bayer,dc=cnb.
[ldap2pg.manager     DEBUG] Would execute: CREATE ROLE cn=userxxx,ou=users,ou=de,ou=countries,dc=company,dc=cnb WITH NOSUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN;
I wold get only member Name: userxxx

@canlar see http://ldap2pg.readthedocs.io/en/latest/config/#role-parameters
You can specify member.cn to get userxxx from cn=userxxx,ou=users,...

I tried for attribute: member.cn

ldap:
base: cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb
scope: sub
attributes: member.cn

[ldap2pg.manager     DEBUG] Postgres inspection done.
[ldap2pg.manager     DEBUG] Working on schema all.any.
[ldap2pg.manager     DEBUG] Found role demo_sst from YAML.
[ldap2pg.manager     DEBUG] Working on schema all.any.
[ldap2pg.manager      INFO] Querying LDAP cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=*)' member.cn
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script   CRITICAL] Failed to process (u'CN=manager,OU=Group: Unknown attribute u'member'
Freundliche Grüße / Best regards,
Murat Arslan
Solution Engineering
////////////////////
Bayer Business Services GmbH
IT Operations
Data Management Platform Services
Building C152, 4.15
51368 Leverkusen, Germany
Tel:       +49 214 30-23103
Fax:     +49 214 30-52177
Mobile: +49<PHONE_NUMBER>
E-mail:  murat.arslan<EMAIL_ADDRESS>Web:    http://www.business-services.bayer.com
/// Geschäftsführung: Daniel Hartert, Geschäftsführer | Wilhelm Oehlschläger
/// Vorsitzender des Aufsichtsrats: Johannes Dietsch
/// Sitz der Gesellschaft: Leverkusen | Amtsgericht Köln, HRB 49895
Von: Étienne BERSAC<EMAIL_ADDRESS>Gesendet: Dienstag, 5. Dezember 2017 14:37
An: dalibo/ldap2pg
Cc: Murat Arslan; Mention
Betreff: Re: [dalibo/ldap2pg] minimal configuration to sync ldap group member to postgres (#125)
@canlarhttps://github.com/canlar see http://ldap2pg.readthedocs.io/en/latest/config/#role-parameters
You can specify member.cn to get userxxx from cn=userxxx,ou=users,...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dalibo/ldap2pg/issues/125#issuecomment-349305906, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ARTd91qHjePb_G6ytBP77xg-AIfBOdE7ks5s9UcJgaJpZM4Qr6c2.

@canlar :  member.cn is a ldap2pg shortcut to access CN from a DN. You have to fetch full LDAP attribute member and then extract cn.
- ldap:
    attributes: member
  role:
    name_attribute: member.cn

This is my file and get still same error.
sync_map:

role:
name: DEMO_SST
options: NOLOGIN SUPERUSER
ldap:
base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb
scope: sub
attribute: member
role:
name_attribute: member.cn
options: LOGIN
parent: DEMO_SST

[ldap2pg.manager      INFO] Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb -s sub '(objectClass=*)' member
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script   CRITICAL] Failed to process (u'CN=manager,OU=Group: Unknown attribute cn

Hallo @canlar
What is the output of ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb -s sub '(objectClass=*)' member ?

[ldap2pg.manager      INFO] Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=*)' member
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.

@canlar i need member: ... entries from ldapsearch, not ldap2pg log.

ldap:
uri: ldap://de.company.cnb:389
binddn: 'ldapuser'
password: "ldappass"

This my whole file:
color: yes
dry: yes
ldap:
uri: ldap://de.company.cnb:389
binddn: 'ldapuser'
password: "ldappass"
postgres:
dsn: postgres://user:pass@host:5432/
List of glob patterns to exclude external roles.
blacklist: [postgres, pg_*,demo_sst]
roles_query: |
SELECT
role.rolname, array_agg(members.rolname) AS members,
{options}
FROM
pg_catalog.pg_roles AS role
LEFT JOIN pg_catalog.pg_auth_members ON roleid = role.oid
LEFT JOIN pg_catalog.pg_roles AS members ON members.oid = member
WHERE role.rolsuper IS TRUE
GROUP BY role.rolname, {options}
ORDER BY 1;
sync_map:

role:
name: DEMO_SST
options: NOLOGIN SUPERUSER
ldap:
base: cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=bayer,DC=cnb
scope: sub
attribute: member
role:
name_attribute: member.cn
options: LOGIN
parent: DEMO_SST

Do you have an idea what is wrong in my sync_map file or how to get ldapsearch query result

Hallo @canlar the sync_map looks good. Can you show me the full log output ?

-bash-4.2$ DEBUG=1 ldap2pg -c ldap2pg.minimal.yml
[ldap2pg.script      DEBUG] Debug mode enabled.
[ldap2pg.config      DEBUG] Processing CLI arguments.
[ldap2pg.config       INFO] Starting ldap2pg 3.3.
[ldap2pg.config      DEBUG] Trying ldap2pg.minimal.yml.
[ldap2pg.config       INFO] Using /var/lib/pgsql/ldap2pg.minimal.yml.
[ldap2pg.config      DEBUG] Read color from YAML.
[ldap2pg.config      DEBUG] Read dry from YAML.
[ldap2pg.config      DEBUG] Read verbose from DEBUG.
[ldap2pg.config      DEBUG] Read ldap:uri from YAML.
[ldap2pg.config      DEBUG] Read ldap:binddn from YAML.
[ldap2pg.config      DEBUG] Read ldap:password from YAML.
[ldap2pg.config      DEBUG] Read postgres:dsn from YAML.
[ldap2pg.config      DEBUG] Read postgres:blacklist from YAML.
[ldap2pg.config      DEBUG] Read postgres:roles_query from YAML.
[ldap2pg.config      DEBUG] Read sync_map from YAML.
[ldap2pg.config      DEBUG] Configuration loaded.
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/etc/ldap/ldap.conf'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'/var/lib/pgsql/.ldaprc'
[ldap2pg.ldap        DEBUG] Ignoring: [Errno 2] No such file or directory: u'ldaprc'
[ldap2pg.ldap        DEBUG] Connecting to LDAP server ldap://de.company.cnb:389
[ldap2pg.ldap        DEBUG] Trying simple bind.
[ldap2pg.script    WARNING] Running in dry mode.  Matches u'demo_sst'.
[ldap2pg.manager     DEBUG] Found role u'imyay' SUPERUSER NOBYPASSRLS NOCREATEDB INHERIT NOREPLICATION NOCREATEROLE LOGIN.
[ldap2pg.manager     DEBUG] Ignoring role postgres. Matches u'postgres'.
[ldap2pg.manager     DEBUG] Postgres inspection done.
[ldap2pg.manager     DEBUG] Working on schema all.any.
[ldap2pg.manager      INFO] Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=bs.u.appm_manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb -s sub '(objectClass=*)' member
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script   CRITICAL] Failed to process (u'CN=manager,OU=Group: Unknown attribute cn
[ldap2pg.psql        DEBUG] Closing Postgres cursor to postgres://user:password@host2.de.company.cnb:5432/postgres.
[ldap2pg.psql        DEBUG] Closing Postgres connexion to postgres://user:password@host2.de.company.cnb:5432/postgres.

@canlar hmm, it's a case bug. Try member.CN as workaround.

i have set
sync_map:

ldap:
base: "cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=compnay,DC=cnb"
scope: sub
attribute: member.cn
role:
name_attribute: member.cn
options: LOGIN SUPERUSER

Output came sam error
[ldap2pg.manager      INFO] Querying LDAP cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=company,DC=cnb...
[ldap2pg.ldap        DEBUG] Doing: ldapsearch -x -W -b cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=compnay,DC=cnb -s sub '(objectClass=*)' member.cn
[ldap2pg.manager     DEBUG] Got 1 entries from LDAP.
[ldap2pg.script   CRITICAL] Failed to process (u'CN=manager,OU=Group: Unknown attribute u'member'

@canlar By member.CN i mean upper case CN. It's not an emphasis of mine.

sync_map:
- ldap:
    base: "cn=manager,ou=Groups,ou=IAM,ou=_DomainOperations,DC=compnay,DC=cnb"
    scope: sub
    attribute: member
  role:
    name_attribute: member.CN
    options: LOGIN SUPERUSER

Ok now ist working fine.
Thank you very much.
Should i Close the issue

@canlar wunderbar :-) Let's close !


Storer component

Implemented new module, which writes data such as trades, order books snapshots from kafka topics

When you will ready, just ping ;)


Can i use this to build desktop and mobile in parallel?

Hi,
I want to build parallel builds for mobile and desktop react application.
Can i use this to create build parallely and would it be standard way of doing it?

Yup.  I use it for that.  As long as your build tool doesn't have any problems with it you're good to go


Add error tracking tutorial

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[x] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Adding a new tutorial page for the SRM module.

Preview environment: https://ci.pr.harness.io/pr-111

Preview environment: https://ci.pr.harness.io/pr-111

I added Ravi as a content reviewer since he is responsible for the tutorials and Sudhi as a reviewer from the docs team to check for style, punctuation, grammar, etc.

Woops, didn't realize @hirsch-harness  re-committed after we spoke Monday. Looks good on my side with the suggestions were implemented.

@SudheendraKatte does this look good?


chore: tracing the query path

Codecov Report
Attention: Patch coverage is 45.45455% with 6 lines in your changes missing coverage. Please review.

Project coverage is 79.99%. Comparing base (4cdcb22) to head (0949739).

Files
Patch %
Lines

rust/lance-index/src/vector/hnsw/builder.rs
25.00%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2588      +/-   ##
==========================================
+ Coverage   79.93%   79.99%   +0.06%
==========================================
  Files         212      212
  Lines       61639    61533     -106
  Branches    61639    61533     -106
==========================================
- Hits        49269    49223      -46
+ Misses       9428     9391      -37
+ Partials     2942     2919      -23

Flag
Coverage Δ

unittests
79.99% <45.45%> (+0.06%)
:arrow_up:

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

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


Numba jit-compilation for intersect1d loop in calculate etd

Based on @atmorling's observations in https://github.com/wildlife-dynamics/ecoscope-workflows/pull/45#issuecomment-2197203917, made an attempt to optimize this loop. This code doesn't work yet, but just throwing it up as draft so others can see, and perhaps offer some insights!
Not our highest priority right now, but I was too curious to not try. 😄

I wonder if JAX would help at all (when we go down the rabbit hole)  :)

Via offline review from @alxmrs:

"If you have a slow Set intersection operation, consider using a bloom filter. JIT on an O(N) algorithm won’t help much; you need a better data structure. A skip list might be a good fit, but I think you’ll really enjoy reading up on and implementing a bloom filter."

Alex, hope it's okay to post that review here, wanted to make sure others on this thread benefitted from your insights!

Closing this in order to clean up the PR queue, I've raised #373 to track any ongoing efforts here but this is firmly a story for another day.


ChromeDriverManager doesn't work as expected on WSL2

WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu 20.04
Other Software
Selenium
Repro Steps
vim requirements.txt

enter the following dependencies:
webdriver-manager   3.5.2
selenium            4.1.0
pytest              6.2.5
Django              3.2.9

install the dependencies
pip install requirements.txt

create a sample test:
from django.test import TestCase
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

class TestFoo(TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome(ChromeDriverManager().install())

Expected Behavior
I will be able to use webdriver-manager instead of pointing out the chromedriver directly.
Actual Behavior
Selenium failed with the following error:
$ python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
............

====== WebDriver manager ======
Could not get version for google-chrome with the any command: google-chrome --version || google-chrome-stable --version
Current google-chrome version is UNKNOWN
Get LATEST chromedriver version for UNKNOWN google-chrome
There is no [linux64] chromedriver for browser  in cache
Trying to download new driver from https://chromedriver.storage.googleapis.com/96.0.4664.45/chromedriver_linux64.zip
Driver has been saved in cache [/home/irvifa/.wdm/drivers/chromedriver/linux64/96.0.4664.45]
E...........
======================================================================
ERROR: test_signup_fire (tests.clubs.test_views.TestSignup)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/gamecollection_website/tests/clubs/test_views.py", line 8, in setUp
    self.driver = webdriver.Chrome(ChromeDriverManager().install())
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 93, in __init__
    RemoteWebDriver.__init__(
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 268, in __init__
    self.start_session(capabilities, browser_profile)
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 359, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
    self.error_handler.check_response(response)
  File "/mnt/c/Users/irvif/dev/edinburgh/group_6/frontend/.env/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary

Diagnostic Logs
No response

Thanks for reporting this @irvifa.
Looking at the output, this doesn't look at a WSL issue, so closing this.
You might want to look at this thread

Did you happen to find a fix for this issue @irvifa? I'm experiencing the same issue the thread posted above did not help.

No I still haven't find a fix for this issue

I'm having the same issue when using WebDriverManager with Selenium in Java


WIP: Provides mechanism to report status codes from backend to Prometheus

Codecov Report

Merging #27 into master will decrease coverage by 4.01%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master      #27      +/-   ##
==========================================
- Coverage    84.1%   80.09%   -4.02%
==========================================
  Files           3        3
  Lines         365      417      +52
==========================================
+ Hits          307      334      +27
- Misses         34       58      +24
- Partials       24       25       +1

Impacted Files
Coverage Δ

3scaleAdapter/pkg/threescale/proxy_conf.go
97.01% <100%> (+0.09%)
:arrow_up:

3scaleAdapter/pkg/threescale/metrics/prometheus.go
95.12% <100%> (+3.45%)
:arrow_up:

3scaleAdapter/pkg/threescale/threescale.go
68.18% <22.85%> (-7.18%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 82b5d10...0c93529. Read the comment docs.

btw, can you see the codeclimate issues, @PhilipGough?

one last thing to consider before merging: do the latency and status reporting generate fundamentally different prometheus observer objects?

Yes, they do. I noticed there might be some room for improvement here and I'll look into that when I tag and pull in the updated client and look at system status codes. A similar approach to here seems reasonable at that point.
Will also address the lint issues.


Massive models and upper LOD levels implementation

Have you considered using impostors, or something not geometry-based, for the far away 3d tiles?
I'm thinking something like the Visualization of Large-Scale Urban Models through Multi-Level Relief Impostors paper, published on the Computer Graphics Forum in 2010 or this one Interactive inspection of complex multi-object industrial assemblies published  on Computer Aided Design on 2016.
Disclaimer: I'm one of the authors of the second paper and I was working with the group that published the first. The first one it's something I've seen implemented with great results on cities and the second one works great for what you want to do with massive models.

Thanks for sharing @ibesora!  Those papers look like good resources for us to check out.
This topic is probably better suited for discussion in the forum.  You can share this in the 3D Tiles thread: https://groups.google.com/d/msg/cesium-dev/tCCooBxpZFU/O4VZ2dFdBAAJ
@pjcozzi and other members of the team working on 3D Tiles check that thread regularly.
I'm going to close this issue for now since it's not directly related to Cesium.  Thanks again!

@ibesora thanks again for your note here and additional info on the forum.  I have actually been thinking about a similar approach for quite a while and am glad to see that you have everything figured out. :smile:
I've added this to the 3D Tiles roadmap, #3241.
Also, we are organizing examples of folks using 3D Tiles.  Can you share any info about your GeoJSON to 3D Tiles pipeline and perhaps a screenshot so we can list it here: https://github.com/AnalyticalGraphicsInc/3d-tiles#whos-using-3d-tiles
Reply here or email me<EMAIL_ADDRESS>


ESLint module Server error ~/.eslintrc.*' config files have been deprecated

I am getting this error after installation. I followed the steps here : https://nuxt.com/modules/eslint
[8:49:35 PM]  ERROR  (node:5400) [ESLINT_PERSONAL_CONFIG_LOAD] DeprecationWarning: '~/.eslintrc.*' config files have been deprecated. Please use a config file per project or the '--config' option. (found in "C:\Users\Pik.eslintrc")
(Use node --trace-deprecation ... to show where the warning was created)

Hi @PirouzNik
Could you provide a minimal reproduction?

See config files accept https://eslint.org/docs/latest/use/configure/


Nom 7 Compatibility?

Does this still work for Nom 7, which was recently released.

Check for compatibility.
Update Cargo.toml for use with Nom 7.0.

Closed with #7.


Get claimable rewards from transaction data

Summary
Changes

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

35 of 37 (94.59%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 90.785%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/routes/transactions/mappers/common/native-staking.mapper.ts
25
27
92.59%

Totals

Change from base Build<PHONE_NUMBER>6:
-0.2%

Covered Lines:
8271

Relevant Lines:
8737

💛  - Coveralls


Allow passing NWC parameters for NWC connectors

e.g. automatically enable budget permission

There is no standard yet. This should be done first. So far only Alby and Mutiny do this.


Installation failed with # cargo build --release

Installation failed with # cargo build --release
It looks like you're compiling on Linux and also targeting Linux. Currently this
requires the pkg-config utility to find OpenSSL but unfortunately pkg-config
could not be found. If you have OpenSSL installed you can likely fix this by
installing pkg-config.
', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.61/build/find_normal.rs:174:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

Thank you for your report. Please use sudo apt-get install pkg-config. We will update prerequisites.


okhttp-bom includes incorrect maven coordinate for logging-interceptor

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>okhttp-logging-interceptor</artifactId>
  <version>${project.version}</version>
</dependency>

The artifactId should be logging-interceptor not okhttp-logging-interceptor.

Please don’t use the BOM. We stopped publishing it for recent releases because it was problematic.


Pex Error

I made some changes/fixes to my pex permissions.yml and i restarted the server. When i loaded back in pex had been disabled and i received the following error in my console:
https://pastebin.com/grV6dg9G
https://pastebin.com/muGYmtJV
I'm not entirely sure how to find where the error is located so could somebody please help? All i need is for you to point me to the location of the error

why do you think creating a new issue is going to change anything, if you want to continue using pex 1.x you're on your own.


101-Direction DSI Sequence Preprocessing

Hi there,
Our lab is currently in the process of building a pipeline to process our DSI data. We have been exploring the possibility of using QSIprep to accomplish this and have a few of questions. Our DSI sequence includes 101 gradient directions with 4 b0 using an A -> P phase encoding direction along with 4 additional b0 collected P -> A.

What preprocessing steps would you recommend for our DSI sequence?

Should we be concerned about eddy current distortions in our data?

We have attempted to use the fsl topup/eddy workflow, which in the visual reports mention that the “q-space coordinates were forcefully assigned to shells.” Should we even do this with DSI data? Do you know of any other good options for DSI eddy current correction?

I've been playing with this myself (first time user).  This is what I've gathered so far, but anyone else please correct me if I'm wrong:

You'll have to use 3DShore instead of Eddy for motion correction (  --hmc_model 3dSHORE).
You should interleave B0s in your DSI scan for the motion correction (e.g. between every 10 b>0 volumes).
The scan should use bipolar diffusion scheme to reduce eddy currents (you set that at the scanner console).
I don't think you really need to collect the separate 4 b0s in A->P direction if you have those embedded in your DSI scan (just collect the separate 4 B0s in P->A direction).
From the DSI-Studio forums: At 3T with the 101 scheme, you can reduce the maximum b value to 3K. And if using the 258 scheme, you should use bmax=4K.   (Not exactly sure why the difference)
For reference, in case this helps: my 101dir scan is about 6 min with MB=3, 2.4mm, TE=120ms, while my 258dir scan is about 11 min with MB=4, TE=132ms.  This is at a 3T Skyra.

Wait, "--hmm-none" does hmc?

Haha yes, trying the GitHub phone app

It just uses the b=0s, so no model


Incorrect Help Description in Interfaces > Diagnostics > Packet Capture

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
There is an incorrect description in the help for the "Description" field in Interfaces > Diagnostics > Packet Capture
URL: https://opnsense.domain.tld/ui/diagnostics/packet_capture
The description when selecting the info icon or full help is:
"Select the protocol to capture, or Any. "
Instead, it should read something like:
"Enter a description for the packet capture here."
To Reproduce
Steps to reproduce the behavior:

Go to 'Interfaces'
Click on 'Diagnostics'
Click on 'Packet Capture'
Click on the "i" icon on the left or "Full Help" on the top right.
Observe the incorrect description: "Select the protocol to capture, or Any. "

Expected behavior
It should say something like" "Enter a description for the packet capture here."
Screenshots

Relevant log files
N/A
Additional context
N/A
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 22.7.10_2-amd64
FreeBSD 13.1-RELEASE-p5
OpenSSL 1.1.1s 1 Nov 2022

@put3r-r00t3r looks like a copy-paste issue, thanks. I’ll put it on my list to fix when I’m near a computer


Use tungstenite for websockets

Currently we depend on the websocket implementation of websocket before using tokio-tungstenite for forwarding the message.
However axum uses tokio-tungstenite under the hood, so it might be nicer/faster/cleaner to cut out the middle man.

Fixed by #24


Migrate the periodic trigger of ReminderDeadlineJob to using heroku's scheduler

Summary
Currently, the application uses a scheduler.yml to invoke ReminderDeadlineJob on every rails instance that is activated. Because we are moving to heroku, we should only be triggering this once periodically and not multiple times from workers & web dynos.
Ideally, we can move this to a rake task and perform the task periodically using https://devcenter.heroku.com/articles/scheduler
Things to Consider

This will invoke extra costs in our monthly bill -- so let's be wary not to spend too much time in these processes.
We will not be activating this until we've migrated fully to using heroku! If we activate this too early, we may run into situations were multiple of the same job is running.
Reach out if you have any questions about how to implement this.

Criteria for Completion

[ ] There should a rake task that can invoke ReminderDeadlineJob
[ ] All sidekiq scheduler related code is removed (https://github.com/moove-it/sidekiq-scheduler)

could you assign this to me please? can't promise i can look at this before this weekend though. thanks!

@stanleypliu assigned :)! Let me know how this goes.

@stanleypliu hey there any updates on this issue?


HecBioSim benchmarks

We met with Sarah Harris, James Gebbie
They are applying for an ExCALIBUR grant for benchmarking bioscience applications. They plan to use the hecbiosim benchmark suite and codes therein to develop exascale benchmarks. The hecbiosim software have spack packages in the public spack repo. They already build software with Spack, James has developed spack recipes for edge cases.
They were excited about our work and planned to add it to their proposal. Have not seen the final version. :crossed_fingers:

I don't see this mentioned in https://excalibur.ac.uk/theme-archive/emerging-requirements-for-high-performance/ so I'm assuming it didn't get funded :cry:


chore: bump alloy to 0.4.2

bumps alloy-provider and other a couple other alloy deps to 0.4.2

thanks!


Input type="radio" or "checkbox" group binding does not work

bind:group={...} does not work with Input.  For example:

  <Input type=radio bind:group={scoops} value={1} /> One scoop

  <Input type=radio bind:group={scoops} value={2} /> Two scoops

  <Input type=radio bind:group={scoops} value={3} /> Three scoops

https://svelte.dev/examples#group-inputs

Likewise, on:input="{...} does not work with <Input type= "number" but does with <input type="number"
Here is what I am using:
<Row>
    <Col> <FormGroup>
    Pounds
    <Input value={l} on:input="{e => setBothFromL(e.target.value)}" min="0"
      type="number"
      name="Pounds"
      id="Pounds"
      placeholder="lbs" />
  </FormGroup></Col>
    <Col> <FormGroup>
    Kilogram
    <Input value={k} on:input="{e => setBothFromK(e.target.value)}" min="0"
      type="number"
      name="Kilogram"
      id="Kilogram"
      placeholder="kgs" />
  </FormGroup></Col>
  </Row>

Thanks @macsupport , this is tracked in #36 and plan to support soon, especially for common ones like input, change, hover, etc.
However the "official" way to use Input is:
 <Input
      bind:value={k}
      min="0"
      type="number"
      name="Kilogram"
      id="Kilogram"
      placeholder="kgs"
/>

and you'd call setBothFromK when value changes.  Let me know if this works for you, and will also fix #36 hopefully soon.

Am addressing common Input events with: https://github.com/bestguy/sveltestrap/pull/72
Will publish soon after merge.

@macsupport Your Input use case should be fixed in<EMAIL_ADDRESS>

Hi @bestguy first, thanks for this library!
I don't think this is fixed though, certainly, I tested and it doesn't work and further to that, in Input.d.ts, there is not a group option in
IInputProps

Hi @bestguy first, thanks for this library!
I don't think this is fixed though, certainly, I tested and it doesn't work and further to that, in Input.d.ts, there is not a group option in
IInputProps

Hi @lovetoast ,
Sorry my comment about "fixed in 3.2.7" was related to macsupport's side comment about on:input.
The group issue is related to https://github.com/sveltejs/svelte/issues/2308 where Svelte does not support bind:group with nested components like Sveltestrap.
Would love to know a workaround or fix if you find one!

Hi @lovetoast ,
Sorry my comment about "fixed in 3.2.7" was related to macsupport's side comment about on:input.
The group issue is related to https://github.com/sveltejs/svelte/issues/2308 where Svelte does not support bind:group with nested components like Sveltestrap.
Would love to know a workaround or fix if you find one!

There is a workaround suggestion from community: https://github.com/sveltejs/svelte/issues/2308#issuecomment-548616383
I'll see if it's something we could add to sveltestrap.

There is a workaround suggestion from community: https://github.com/sveltejs/svelte/issues/2308#issuecomment-548616383
I'll see if it's something we could add to sveltestrap.

@bestguy thanks for the fast response, that was actually going to be my suggestion haha!

@bestguy thanks for the fast response, that was actually going to be my suggestion haha!

@bestguy
Sorry to bump what looks like a dead thread, but I see this is still open and wonder where it is at. My experience is I am able to bind:group for radio buttons, but not check boxes and digging lead me here.

I wonder if what @DenverEllis commented (and I also experienced) is related to missing bind:group here... I tried adding to my copy of the package, but no clue how to actually build that to get it into my project lol


Use labels with different colors to distinguish surfaces and topographies

Just an idea:
Currently, in the input fields for topography or surface selection, it is difficult
to distinguish what is a topography or a surface. Maybe we can use different colors
for the labels - and maybe use these colors everywhere in order to indicate whether
it is a surface or a topography.

Probably handled by #775.

This has been addressed in #775


Domain in JetStream Pub Ack

Overview
2 domains can host a stream with the same name, the PubAck only included the Stream name making it hard to know if the message went to the desired location.  It now also includes the domain.
Server PR https://github.com/nats-io/nats-server/pull/2432
new Struct is:
type PubAck struct {
	Stream    string `json:"stream"`
	Sequence  uint64 `json:"seq"`
	Domain    string `json:"domain,omitempty"`
	Duplicate bool   `json:"duplicate,omitempty"`
}

Clients and Tools

[x] Schemas @ripienaar
[x] Go @wallyqs
[x] Java @scottf
[x] JavaScript @aricart
[x] .Net @ColinSullivan1 @scottf
[x] C @kozlovic
[ ] Python @wallyqs
[x] Rust @Jarema

Other Tasks

[ ] docs.nats.io updated
[x] Update client features spreadsheet

Client authors please update with your progress. If you open issues in your own repositories as a result of this request, please link them to this one by pasting the issue URL in a comment or main issue description.

Python support as of https://github.com/nats-io/nats.py/pull/216

Regarding docs, this will generated as part of reference docs from the JSON schema definitions.


Update UIImage+Resize.m

Update  for ios 8

I changed the type of content mode in warning exception. Please check it again.


Analyzer least upper bound is incorrect for type parameters

This code should generate an error, as I read the spec, because the least upper bound of S and T is S.
class Foo<S, T extends S> {
  T t;
  S s;
  int foo(bool b) {
    return b ? t : s;
  }
}

Seems to be fixed.


add BspEvent and LockEvent

commit to hugegraph-common https://github.com/hugegraph/hugegraph-common/pull/60

commit to hugegraph-common https://github.com/hugegraph/hugegraph-common/pull/60


AUTOCLASS - The job locations on the results do not match the ones from scrapers-UI and from the company's website

ENVIRONMENT:
url: https://peviitor.ro/
browser: Chrome
device: laptop
OS: Windows
Version: 10
STEPS TO REPRODUCE:
Open url in browser
Type "autoclass" in the serach bar.
Analyze the jobs' locations.
EXPECTED RESULTS:
The jobs' locations match the locations from scrapers-UI  and from the company's website.
ACTUAL RESULTS:
Each job has another location - Arad, which is not displayed on scrapers-UI or on the company's website. The company is located only in Satu Mare.
Attachments:

fixed can you retest

Retested ✅