Exception when StoredCertificate used

Thank you for reporting an issue or suggesting an enhancement. We appreciate your feedback - to help the team to understand your needs, please complete the below template to ensure we have the necessary details to assist you. Thanks!
Category
[X] Bug
[ ] Enhancement
Problem Area
[ ] Page Transformation: Error during the setup/use of the Page Transformation UI solution (did you check our troubleshooting guide?)
[ ] Page Transformation: Error during the use of page transformation from PnP PowerShell
[ ] Page Transformation: Error during the use of page transformation from .Net
[ ] Page Transformation: Page is not looking correct after transformation
[X] Modernization Scanner: something went wrong...
Expected or Desired Behavior
Script should use certificate previously saved to CertStore (user or comp) when starting tool from cmd
Observed Behavior
Unhandled Exception: System.Exception: Clonflicting security parameters provided.
   at SharePoint.Modernization.Scanner.Core.Options.AuthenticationTypeProvided() in C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Scanner.Core\Options.cs:line 167
   at SharePoint.Modernization.Scanner.Core.ScanJob..ctor(Options options, String jobName, String jobVersion) in C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Scanner.Core\ScanJob.cs:line 67
   at SharePoint.Modernization.Scanner.Core.ModernizationScanJob..ctor(Options options) in C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Scanner.Core\ModernizationScanJob.cs:line 68
   at SharePoint.Modernization.Scanner.Program.Main(String[] args)

Steps to Reproduce
C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId <ClientId> --StoredCertificate "My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B81"

On top of my head: think you also need to specify the azure tenant via the --AzureTenant option. Will give this a try later tomorrow in case this is not the fix

Thanks for quick answer. Just tried addin  --AzureTenant option and got another error.BUT, here is some confusing definition: what does script required for  --AzureTenant option:

full tenant domain name taken from Azure AD? In my case, i have my custom primary domain mydomain.com
full host name used for SharePoint Online, e.g.: .sharepoint.com
just tenant name

I've tried all 3 options so my full command looked like this:
λ  C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId "<ClientId>" --StoredCertificate "My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B83" --AzureTenant "<tenantname>"

λ  C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId "<ClientId>" --StoredCertificate "My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B83" --AzureTenant "<tenantname>.sharepoint.com"

λ  C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId "<ClientId>" --StoredCertificate "My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B83" --AzureTenant "mycustomdomain.com"

and as result same error:
Unhandled Exception: System.Security.Cryptography.CryptographicException: Keyset does not exist

   at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
   at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
   at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
   at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
   at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
   at System.IdentityModel.Tokens.X509AsymmetricSecurityKey.get_PrivateKey()
   at System.IdentityModel.Tokens.X509AsymmetricSecurityKey.GetAsymmetricAlgorithm(String algorithm, Boolean privateKey)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Platform.CryptographyHelper.SignWithCertificate(String message, X509Certificate2 certificate)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.ClientCreds.JsonWebToken.Sign(IClientAssertionCertificate credential, Boolean sendX5C)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.ClientCreds.ClientKey.AddToParameters(IDictionary`2 parameters)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenHandlerBase.<SendTokenRequestAsync>d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenHandlerBase.<CheckAndAcquireTokenUsingBrokerAsync>d__59.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenHandlerBase.<RunAsync>d__57.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.<AcquireTokenForClientCommonAsync>d__33.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

Performed one more test, as I really think that here is issue related to case when we use --storedcertificate argument. So i decided to make a try with --certificatepfx and --certificatepfxpassword arguments instead. Final command looked like this:
λ  C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId "<ClientId>" --AzureTenant "<mycustomdomain.com>" --certificatepfx "<path to pfx file>" --certificatepfxpassword "<pfx certificate password as plaintext>"

And there were no error. Scanner run completed with success. So, we can see that issue is somehow related to --storedcertificate arg
By the way, self-answered my question what i should pass as value for --AzureTenant argument :) So I believe in doc you should clearly write that this is value should be taken from AzureAD. Because (as end-user opinion) at first try we (end-users) thinking in SharePoint context and trying to use tenantname.sharepoint.com value which is not correct :)
λ  C:\SharePoint.Modernization.Scanner.exe --Mode "Full" --Threads 10 --DateFormat "d/M/yyyy" --Urls "https://<tenantname>.sharepoint.com/sites/test*" --SkipReport --ClientId "<ClientId>" --StoredCertificate "My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B83" --AzureTenant "mycustomdomain.com"

Thanks for the feedback @Forket.
Good you got it work via the pfx file. This then implies that it should also work using a locally stored cert. You used My|LocalMachine|C88C0558330B6644B9B545FEC32296090EA25B81, so the cert is in the local machine cert store. This works but keep in mind that you either need to run the scanner as local admin or alternatively grant the account you run the scanner with permissions to read the private key of the cert. When storing in CurrentUser the current user always has access.
About the tenant id: I'll create a back log entry to update the docs to make that more clear.

Thanks for clarification. You are right. Tested under admin and works well.
Believe, such information should also be added to docs as some Notice. This would prevent further issues creation  like this one. :)

Work perfect with cert saved in CurrentUser cert store. Will close issue. Thanks for clarification


Strange error reported from our production site

Not completely sure what to do about this, but I thought you would be interested to know that I just got the following js exception reported though our bugnsag integration:
New error in Timbuktu
TypeError · trips.index
this.willResizeSatellites is not a function
STAGE
production
SEVERITY
warning
URL
https://www.timbuktutravel.com/trips?budget=all&countries=South Africa&length=any&month=any

I actually think that this might be an issue with bugsnag, not getting the correct JS line, because I just got a similar error from bugsnag:
undefined is not an object (evaluating 'this.controllerFor')
I just don't see how this can be undefined here
So i'll close unless I can prove that there is a real issue


upgraded gradlew from 3.0-20160715000024+0000 to 3.0

+1

Any suggestions for debugging Travis failure? It works locally.

Works locally for me too. I'd punt on a sporadic error on the CI server and commit. Hopefully not famous last words! :-)

Lol.  I was looking for a button to re-kick Travis, but couldn't find it anywhere.


Mechanism for sanitizing options

This PR adds an easy way to sanitize an options object that should be passed to scourString/scourXmlFile.
By generating a set of default options and "merging in" know attributes from the options passed to the function it is ensured that all attributes are correctly set (default values are used for unspecified attributes) while also removing unknown attributes.
Firstly this makes it easier to use Scour from another script (Instead of requiring explicit calling of generateDefaultOptions to get a copy of the latest options which have to be modified and fed back into Scour it's enough to generate an object that contains just the attributes that one wants to change).
Secondly it will avoid compatibility issues that may arise in case any options are added/removed/renamed in the future.

Looks good and makes sense! Thanks for explaining the motivation behind this PR too!

Thanks for merging!
Since it's related to this PR and I noticed you're also using it in Taschenmesser:
Do you see a reason for the complicated design of the function generateDefaultOptions() (the comment even states this is a "mess/hack" and should be fixed)? Wouldn't it suffice to simply return _options_parser.get_default_values()?

@Ede123 Yep, I agree https://github.com/oberstet/taschenmesser/issues/4
Essentially, I think generateDefaultOptions should be killed. I think sanitizeOptions() is much better. If we make that an official interface, a PEP8 compliant name like make_options(options) might be more intuitive. So the public, Python level API of Scour would be

scour.start(options, instream, outstream)
scour.make_options(options)

Maybe we could make it even more convenient / intutive:

scour.start(instream, outstream, options=None): use default options if none are given
scour.make_options(options=None): make default options if no override dict is provided

Medium term, we could think about moving to argparse or even click for command line parsing.
The nice thing with above new sanitizeOptions (or renamed to make_options): does not care if we use OptionsParse, argparse or click for CLI parsing .. that's properly encapsulated away.

sanitizeOptions()  already works with options=None so renaming might be all that's needed.
Do you think we should keep generateDefaultOptions as an alias for backwards compatibility? There's one other project on GitHub that uses this function, but I guess it's not very widespread otherwise.

Regarding argparse - I already had a look at it: It should be easy to switch so could be done at some point. On the other hand I doubt we'd gain much of it right know (at least not without putting some additional thought into argument handling), so I wouldn't assign it a high priority right now.

alias for backwards compatibility

Given that generateDefaultOptions probably isn't used a lot and that it was never announced as public API, IMO just killing it is ok. Plus:

ping above user
major version bump (eg to 0.4)

We might also take the chance and import all the public API of Scour (that is, the 2 functions above) to scour/__init__.py and it add it to __all__ within that file.
That would allow Python aware tools to automatically discover the public API.
User would then do:
from scour import start, make_options

and that's it.
No more from scour import scour; scour.start  ...
Above is considered "good practice" in many Python projects. So Scour is getting a better, and better Python citizen;) Which is nice and welcome I'd say.

Rgd argparse: I agree, it's not high prio, and has risks and chances for trouble, and no real added value (without doing even more work, and introduce user visible changes)

We might also take the chance and import all the public API of Scour (that is, the 2 functions above) to scour/init.py and it add it to all within that file.
If we do that I'd additionally consider scourString (and potentially scourXmlFile) as public API. It seems scourString is by far the most popular way to use Scour amongst other applications.

Agreed. We should aim for an official public API that we then promise to support.
Probably worth thinking about consistent naming then. There seem to be 3 types of things one might want to put through Scour:

strings (of strict type unicode)
files (file-like objects which are read/written binary and decoded/encoded UTF8)
objects of type xml.dom.minidom

There would be 2 ways of exposing such functions:

a single procedure convert() which dynamically checks it's argument types and operates accordingly.
3 functions named like convert_string, convert_file and convert_dom

Option 1 might overcomplicate things. Correctly handling a multitude of input formats might prove challenging while at the same time it makes it unclear for the user what data types the function is supposed (or even able) to work on.
I'd therefore prefer separate functions with clearly defined input parameters.
This also leads us to a potential problem: We'd also need clearly defined output parameters.
Should we presume that input and output types always match? In that case scourXmlFile already violates this assumption.
Should we even go a step further, instantiate a Scour class and define methods like
Scour.input_string() / Scour.input_file() / Scour.input_dom()
Scour.output_string() / Scour.output_file() / Scour.output_dom()
so the user can pick as required? This would require some effort to implement though and might also be an unnecessary overcomplication at this time, could however prove to be useful in the long run.
Last but not least I want to be picky :wink:
If we're going to create a fixed API in the way you suggested I want the functions to include the verb "scour". Where not converting any SVGs, where "scouring" them. A little bit of brand affinity doesn't hurt and it's definitely clearer if the source code contains a call to scour_string as compared to  convert_string (which could mean almost everything).

prefix the function with "scour",  where scour is interpreted as a verb, ok, cool;)
rgd variants: maybe the output should not be an argument to the function at all, but the return value.
with open('infile', 'rb') as input, open('outfile', 'wb') as output:
    output.write(scour.scour(input.read()))

just thinking loudly.
we should continue discussing variants a little before settling. cause in the end, whatever we decide, that should be sane and stable ..

Yes, that's basically what I meant. Here some pseudo-code of what I intended:
# setup an instance (with initial or default options)
my_scour = Scour(options)

# feed the class input by using any of the available input functions (we could easily add new ones for all types of input)
my_scour.input_file(infile)

# create the output (again we could easily add new output formats as needed)
outstring = my_scour.output_string()
outdom = my_scour.output_dom()
my_scour.output_file(outfile)

...

Except for output_file() (where we'd obviously need to pass a file handle and/or file name as parameter) the function returns the scoured data structure.

Mmh, I'd prefer retaining a simple function based interface, not a class based one:
import scour

with open('input.svg', 'r') as infile, open('output.svg', 'w') as outfile:
    scour.optimize(infile, outfile, options={'shorten_ids_prefix': 'foo'}))

So the public API would boil down to:

scour.optimize(infile, outfile, options=None) -> result operating on File-like (unicode based) objects, returning a result plain dict (with attributes like size before/after, run-time, but also the effective options applied in converting) and taking an options plain dict to override defaults
scour.run() CLI runner (called from __main__), parsing command line args, opening input/output files, calling scour.optimize and printing the statistics info

I'd screw xml.dom.minidom and plain strings as a API input/output types. And I think scour.optimize is more explicit in what it does than scour.scour, and the latter doubles the marketing message "scour".

Scour internally should then use https://docs.python.org/2/library/xml.dom.minidom.html#xml.dom.minidom.parse, not parseString, which only creates a temporary StringIO object anyway.

Some notes ..
Rgd opening file like objects:
oberstet@thinkpad-t430s:~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('.profile', 'r', encoding='utf8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'encoding' is an invalid keyword argument for this function
>>> from io import open
>>> f = open('.profile', 'r', encoding='utf8')
>>> s = f.read()
>>> type(s)
<type 'unicode'>
>>>
oberstet@thinkpad-t430s:~$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('.profile', 'r', encoding='utf8')
>>> s = f.read()
>>> type(s)
<class 'str'>

Rgd processing DOMs with Unicode stuff .. compare the following with Python 2:
oberstet@thinkpad-t430s:~$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from xml.dom.minidom import parseString
>>> s = u'föö'.encode('utf8')
>>> s
b'f\xc3\xb6\xc3\xb6'
>>> d = parseString(u'föö')
>>> n = d.firstChild.firstChild.data
>>> type(n)
<class 'str'>
>>> n
'föö'
>>> n.decode('utf8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>> n.encode('utf8')
b'f\xc3\xb6\xc3\xb6'
>>> d = parseString(b'föö')
  File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> d = parseString(b'')
>>> d = parseString(b'foo')
>>> n = d.firstChild.firstChild.data
>>> type(n)
<class 'str'>
>>> n
'foo'
>>> d = parseString(u'<föö>hello</föö>')
>>> n = d.firstChild.firstChild.data
>>> type(n)
<class 'str'>
>>> n
'hello'
>>> n = d.firstChild.firstChild
>>> n
<DOM Text node "'hello'">
>>> n = d.firstChild
>>> n
<DOM Element: föö at 0x7f2accb55d58>
>>> type(n.nodeName)
<class 'str'>
>>> n.nodeName.encode('utf8')
b'f\xc3\xb6\xc3\xb6'
>>>

I could basically live with your suggestion above, BUT regarding

I'd screw xml.dom.minidom and plain strings as a API input/output types. And I think scour.optimize is more explicit in what it does than scour.scour, and the latter doubles the marketing message "scour".

I agree xml.dom.minidom is not necessary. There exist many more popular alternatives like etree and lxml for XML parsing that wouldn't be compatible anyway. We could check if there exists a generic class to store an XML tree that would be supported by multiple libraries but I couldn't find one so far. In the end passing string representations is probably the most compatible way which brings me to the next point.
We have to support plain strings as this is a popular way to use Scour from within other scripts as already noted earlier. Data is not always available as a file on disk... (one could argue that one could convert strings to streams and pass them to Scour but then usage would get more complicated for no good reason)This could well be achieved by additionally supporting scour.optimize(instring, outstring, options=None) -> result, but obviously with all the downsides I mentioned above. With proper documentation this might be OK though and would also allow us to do things like scour.optimize(infile, outstring) and scour.optimize(instring, outfile)
I totally agree with you that scour.scour is bad and scour.optimize would work for me. Just to be sure: We'd keep the current module structure to ensure backwards compatibility, right?


boot errors?

via: https://www.youtube.com/watch?time_continue=125&v=rTqFipvIYm4

Mabye too little RAM for tmpfs, nothing we can do.


Compiling prost-derive on unknown x86_64 musl

I have a source file in C which calls a Rust dylib and performs some computation. To build, I need to pass the -crt-static flag. cargo reports an error saying that it cannot compile prost-derive is a dependency of nyx-space, which is a dependency of the dylib library (orbitprop).

Any idea how I can fix this?
Thanks

I don't know exactly what's going on here, but I don't think it's particular to prost.  Please feel free to re-open if there's something actionable prost can improve here.


[MM-38421][MM-38507][MM-38676][MM-38772][MM-38876] - Address style bugs for 6.1 release

Summary
This PR addresses several styling issues for 6.1 release
Ticket Link
https://mattermost.atlassian.net/browse/MM-38876
https://mattermost.atlassian.net/browse/MM-38772
https://mattermost.atlassian.net/browse/MM-38676
https://mattermost.atlassian.net/browse/MM-38507
https://mattermost.atlassian.net/browse/MM-38421
Release Note
-->
NONE

@nevyangelova Can you please enable Global Header on the test server? Thanks

@jgilliam17 its on for me.

Thanks @nevyangelova It's on for me too today
Seeing few issues

Menu is not centered in mobile webview

Separator line theming  is off

Submenu arrow icon is taking an extra row, not sure if this intended in mobile view

Out of scope. On Chrome (not on Firefox) seeing here on the test PR and also on daily - we surface ... as if we are truncating menu option text. Not sure why that is happening.

@jgilliam17 kind reminder to review

@nevyangelova nevermind my last comment ... it seems github did not update the changes correctly!

Cherry pick is scheduled.


Implement yaml metadata hook

I'm using your module in a personal project where I need to parse Markdown files and would find it useful if I can (ab)use your Perl module to do the metadata parsing. As for now I need to make my own little subroutine to read the markdown file, extract the yaml and pass it to a yaml parser, to then pass it to the Markdown::Perl converter.
Since you already make a hooks implementation, I added the functionality as a hook that can be called.
TODO (this is a note for myself):

[ ] Update docs and notes where it says that the metadata is unused
[ ] Allow the return value of the hook to decide whether parsingof the Markdown document should continue or not (handy if you want to filter through a huge list of markdown files but only want to parse files with a certain YAML key set)
[ ] Gather feedback

As a side note, do you mind describing the projects for which you’re using this module?

I'm building my own internal wiki/notes/kb with Dancer2 with the intention of migrating away from my existing Dokuwiki setup.

Ah, pmarkdown was written to support my own personal wiki/notes/kb written with ... Mojolicious. It’s available here although it’s not really ready for public use.

I'll also make handy use of the other existing hook to resolve links to other wiki pages as Dokuwiki uses [[pagename]] for relative links in the wiki and I'll maintain that format (as [pagename] to trigger the hook).

Nice, I hadn’t thought of that option when the hook was implemented.

Thanks for the PR, I have just pushed version 1.08 to CPAN with your new hook.


initial modifications for a containing access manager.

Getting the start of keycloak integration going. First steps are allowing multiple access managers.
PR open for tracking as some additional reorganizations may happen.

renaming for clarity of current intent.


[META] Main mapset list

Subtasks will be available for each mapset when its time to add it.

[x] 1994 Tune-Up Project = 1994tu.wad
[ ] 3 Hours in Agony series = 3hafinal.wad, 3ha2.wad, 3ha3.wad
[ ] 32in24-14
[ ] 5 Rooms = 5room.wad
[ ] 50 Shades of Doom = 50shades.wad, 50shades_mpfix.wad
[x] Ancient Aliens
[x] BTSX 1 = btsx_e1_099i9.wad
[ ] BTSX 2 = btsx_e2a.wad, btsx_e2b.wad, btsxe2-palette.wad, btsxe2-cd-liquidpatch.v2.wad
[ ] Bloodstain = bstain.wad
[x] Chainworm = chainworm.wad
[x] Circle of Caina = dbp_02.wad
[x] Claustrophobia 1024
[x] Claustrophobia 1024 2: The Mystery of Too Many Maps
[x] Community Chest 1 = cchest.wad
[x] Community Chest 2 = cchest2.wad
[x] Community Chest 3 = cchest3fix.wad
[x] Community Chest 4 = cchest4.wad
[x] Congestion 1024
[x] Dark Encounters
[ ] Dimensions of the boomed = dotb_rc1.wad
[x] Doom 2 Redux
[ ] Doom 2 Reloaded = d2reload.wad
[x] Doom 2 The Way iD Did = d2twid.wad
[x] Doom Core = dcv.wad (Under Doom core Trilogy)
[ ] Doomworld Megawad Project 2015 = dmp15.wad
[ ] Doomworld Megawad Project 2016 = dmp2016v2.wad
[ ] Doomworld Megawad Project 2017 = dmp2017-final.wad
[x] Epic 1
[x] Epic 2 = epic2fix.wad
[x] Estranged = estrangd.wad
[ ] Eviltech
[ ] Extermination day (when its done)
[x] Forest Swords = dbp_03.wad
[ ] Freudian Slipgate = freudslp.wad
[x] Going Down = gd.wad
[ ] Hell Awakened = hellawakened.wad
[x] Hellbound = hellbnd-v2.wad, hellboundcomplex.v3b.wad(will need to look into fix soon)
[x] Hellcore = hc20.wad, hc20-coopfix.pk3
[ ] Hellebarde = hellbrd.wad
[ ] Herian 2 = herian2-v2.wad, herian2-complexpatch.v1.wad
[x] Interception
[ ] Japanese Community Compilation Project = jpcp.wad, jpcp_coopfix.wad
[ ] Jenesis = jenesis.wad, jenefix.wad
[x] Khorus's Speedy Shit
[ ] Lunatic = lunatic.wad (this has a complex patch if you need it from me or it might be on tspg. (lunatic-complexpatch.v1.wad)
[x] Maps of Chaos
[x] Mayhem wads = mayhem12.wad, mayhem2013.wad mayhem16.wad, mayhem17.wad, mayhem2048.wad, mayhem1500v1-50.wad
[x] Monuments of Mars = dbp_01.wad
[ ] Moonblood = moonbld.wad
[ ] Mutiny = mutiny.wad
[ ] Necrophobia = necropia2010.wad
[ ] New Doom Community Pack 2 = ndcp2.wad
[x] Nova I
[ ] Nova II = nova2.wad
[ ] Resurgence = resurge.wad
[ ] Space Wars = spacwars.wad
[ ] Sparta 2 - Project Vesuvious = s2pv.wad
[x] Stardate 20x6 = stardate20x6.wad
[x] Stardate 20x7 = sd20x7.wad
[ ] Suitcase of Gor = suitcase-v2.wad
[x] Sunlust = sunlust.wad (What a bitch)
[ ] TNT Re-Evilution = tntr.wad
[ ] Tangerine nightmare = tn.wad
[x] UAC Ultra = uacultra.wad, uacultravfix.wad
[x] Unholy Realms = ur_final.wad
[ ] Urania = urania.wad
[x] Valiant (vanilla/non-vanilla) = valve.wad valient.wad - i think?
[ ] War DSV = war_3.wad
[x] Zone 300
[x] Zones of Fear

SLAUGHTER WADS

[ ] Between demon claws = bdc.wad i think?
[x] Combat Shock 1 and 2 (already in pk3)
[ ] Coopbuildm
[x] Destination Unknown
[x] Deus Vult 1
[x] Deus Vult 2
[x] Drown in Blood = dib28a.wad dibsnd.wad
[ ] Good Morning Phobos = gmp.wad
[ ] Harvest X = harvestx.wad
[ ] Invasion UAC
[x] New Gothic Movement 1 (ngmvmt1.wad)
[x] New Gothic Movement 2 (ngmvmt2.wad)
[x] Pizza Time = pizzas.wad
[ ] Rush = rush.wad
[ ] Slaughterfest 2011 = sf2011.wad
[x] Slaughterfest 2012 = sf2012_final.wad
[x] Slaughterfest 2013 = sf3_c.wad
[x] Sunder = sunder.wad
[ ] Survive in hell = sihr2fix-noblood.wad, sihr2patch.wad
[x] Swift Death = swideath.wad
[x] Swim with the Whales
[x] Chillax

SINGLE MAPS

[ ] Aeternum
[ ] Awakening
[ ] Bad Religion
[ ] Foursite
[ ] Fuel Devourer
[ ] Hanging Gardens
[ ] Holy Hell
[ ] Jade Earth
[ ] My Soul Trapped in a WIN98 PC
[x] The Eye
[ ] The Great Ubran Battle
[x] The Spire 1
[x] The Spire 2
[ ] XXXI CyberSky

I modified the formatting and added checkboxes.


Add trimmed attribute to all blocktrans usage

Follow-up to #8017. We want to use trimmed consistently for all usage of blocktrans to avoid HTML spacing issues in translations. This would be valuable to do in existing usage even if it can’t be enforced for the time being, however I’m not sure of how safe this is. We’ll need to research this a bit.
Here is a list of 85 instances of blocktrans without trimmed I have spotted with experimental linting:
wagtail/admin/templates/wagtailadmin/chooser/_search_results.html
  4:4  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/chooser/confirm_external_to_internal.html
  7:8  blocktrans-trimmed
  14:8  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/home.html
  21:49  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/approved.html
  5:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/base.html
  111:47  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/rejected.html
  5:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/submitted.html
  6:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/task_state_approved.html
  5:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/task_state_rejected.html
  5:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/task_state_submitted.html
  6:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/updated_comments.html
  6:8  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/workflow_state_approved.html
  5:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/workflow_state_rejected.html
  6:11  blocktrans-trimmed
  8:11  blocktrans-trimmed
  11:11  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/notifications/workflow_state_submitted.html
  7:11  blocktrans-trimmed
  9:11  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/_unsaved_changes_warning.html
  5:48  blocktrans-trimmed
  6:51  blocktrans-trimmed
  7:46  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/confirm_move.html
  3:21  blocktrans-trimmed
  10:15  blocktrans-trimmed
  12:15  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/confirm_workflow_cancellation.html
  8:12  blocktrans-trimmed
  12:12  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/content_type_use.html
  3:21  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/copy.html
  3:21  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/listing/_list_explore.html
  20:24  blocktrans-trimmed
  28:24  blocktrans-trimmed
  33:20  blocktrans-trimmed
  44:20  blocktrans-trimmed
  51:20  blocktrans-trimmed
  72:174  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/move_choose_destination.html
  3:21  blocktrans-trimmed
  9:12  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/preview_error.html
  12:12  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/workflow_history/index.html
  4:21  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/pages/workflow_history/results.html
  8:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/shared/ajax_pagination_nav.html
  6:7  blocktrans-trimmed

wagtail/admin/templates/wagtailadmin/workflows/usage.html
  3:21  blocktrans-trimmed

wagtail/contrib/forms/templates/wagtailforms/confirm_delete.html
  3:21  blocktrans-trimmed
  12:12  blocktrans-trimmed

wagtail/contrib/forms/templates/wagtailforms/index_submissions.html
  3:21  blocktrans-trimmed
  91:28  blocktrans-trimmed
  124:42  blocktrans-trimmed

wagtail/contrib/modeladmin/templates/modeladmin/choose_parent.html
  30:16  blocktrans-trimmed
  31:15  blocktrans-trimmed

wagtail/contrib/modeladmin/templates/modeladmin/delete.html
  15:20  blocktrans-trimmed
  16:19  blocktrans-trimmed

wagtail/contrib/modeladmin/templates/modeladmin/includes/result_count.html
  3:31  blocktrans-trimmed

wagtail/contrib/modeladmin/templates/modeladmin/inspect.html
  28:92  blocktrans-trimmed

wagtail/contrib/redirects/templates/wagtailredirects/choose_import_file.html
  23:12  blocktrans-trimmed

wagtail/contrib/redirects/templates/wagtailredirects/confirm_delete.html
  3:21  blocktrans-trimmed

wagtail/contrib/redirects/templates/wagtailredirects/edit.html
  3:21  blocktrans-trimmed

wagtail/contrib/redirects/templates/wagtailredirects/import_summary.html
  11:12  blocktrans-trimmed

wagtail/contrib/redirects/templates/wagtailredirects/results.html
  5:12  blocktrans-trimmed
  18:24  blocktrans-trimmed
  21:11  blocktrans-trimmed

wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/confirm_delete.html
  3:21  blocktrans-trimmed

wagtail/contrib/search_promotions/templates/wagtailsearchpromotions/results.html
  5:12  blocktrans-trimmed
  18:24  blocktrans-trimmed
  21:11  blocktrans-trimmed

wagtail/documents/templates/wagtaildocs/chooser/results.html
  5:12  blocktrans-trimmed
  19:24  blocktrans-trimmed
  29:16  blocktrans-trimmed

wagtail/documents/templates/wagtaildocs/documents/confirm_delete.html
  3:21  blocktrans-trimmed
  13:51  blocktrans-trimmed

wagtail/documents/templates/wagtaildocs/documents/results.html
  5:12  blocktrans-trimmed
  20:25  blocktrans-trimmed
  26:15  blocktrans-trimmed
  28:15  blocktrans-trimmed

wagtail/documents/templates/wagtaildocs/documents/usage.html
  3:21  blocktrans-trimmed

wagtail/images/templates/wagtailimages/images/confirm_delete.html
  17:52  blocktrans-trimmed
  22:16  blocktrans-trimmed

wagtail/images/templates/wagtailimages/images/url_generator.html
  4:21  blocktrans-trimmed

wagtail/images/templates/wagtailimages/images/usage.html
  3:21  blocktrans-trimmed

wagtail/snippets/templates/wagtailsnippets/chooser/results.html
  5:12  blocktrans-trimmed
  19:24  blocktrans-trimmed
  22:11  blocktrans-trimmed

wagtail/snippets/templates/wagtailsnippets/snippets/list.html
  10:83  blocktrans-trimmed
  22:92  blocktrans-trimmed

wagtail/snippets/templates/wagtailsnippets/snippets/usage.html
  3:21  blocktrans-trimmed

wagtail/users/templates/wagtailusers/groups/results.html
  8:20  blocktrans-trimmed
  11:7  blocktrans-trimmed

Assigning to @harrislapiroff to research and potentially make changes for as part of Wagtail Space US 2022 sprint.

@thibaudcolas requested the regex I used to do the find/replace in #8226, so here it is. It caught more cases than listed above—though also you appear to have been on a different version when that linter was run (based on the wagtail* app names):
Find: \{% blocktrans ((?!.*?trimmed).*) %\}
Replace: {% blocktrans trimmed $1 %}
(Truthfully I don't actually fully understand the first regex. I know there's some clever use of a negative lookahead in there, but I basically just pulled it from stack overflow.)

Thank you @harrislapiroff! That regex looks good but has one too many spaces on there, so it explains why simple {% blocktrans %} were missed


Milestone 5: Fix bugs and linters

In this milestone i completed:
1.Added linters
2.Fixed bugs

@Approved


improve publish feedback

Add a link to go directly to claim page on explorer (will work nicely with chainquery/mempool): https://explorer.lbry.io/claims/eb5bbd71b9d04c12d0016d1b8e9c98eef3305c2c
Link this as the TX, instead of generic tx page (we should have all from the publish response): https://.explorer.lbry.io/tx/dde7e970a9763cb9e0e467a28badac5277af238fb821cd7aa52728120b0a440f?address=bMhTGTKaJRsDDpyGLwQyxJXZUEvRPjNPvp#bMhTGTKaJRsDDpyGLwQyxJXZUEvRPjNPvp

Completed in https://github.com/lbryio/lbry.tech/pull/254


Support cooccurrences

https://g0v.hackmd.io/f_Ze19PhQuqx_fzOAOkohQ#DB
New mutation

CreateOrUpdateCooccurrence

New query

ListCooccurrences

New type

Cooccurrence

articles: [Article!]!
articleIds
createdAt
updatedAt

New field

Article

cooccurences

coverage: 88.192% (+0.06%) from 88.133% when pulling dfad33b4bf8c1e4981843684f76a63551bbf9279 on support-cooccurrences into acad779068e2c03b8ea9b4ab9d4738ebbf4fd3b9 on master.

Deployed to staging


caffeine-ng: add missing dependencies, fix bin paths

Motivation for this change
caffeine-ng makes os.system calls expecting some binaries in the path, see inhibitors.py file. This PR adds missing dependencies and patches mentioned file to use binaries from the nix store.
Closure size change: 376.3M -> 509.3M
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/334


journal-mailer hangs when sendmail doesn't terminate

There was an instance where journal-mailer stopped working, because it invoked sendmail and that didn't terminate. journal-mailer became unresponsive due to that. We should figure out, why this happened.
Maybe we should have a timeout on sendmail invocations in any case?

Why not just fork the process?

Then we would have a dangling sendmail process. While this would keep journal-mailer in a responsive state, I don't think it's better. Why would you prefer that?


Method for finding amount of iterations and measurements of a VQE

Hi, I'm relatively new to QC so I'm sorry if there is something obvious I am missing. I would like to find out how many measurements and gates a VQE takes for the execution. For example when I run the code given in the readme, but with the two_qubit_reduction set to False, I get this ansatz:
        ┌───┐    ┌──────────┐┌──────────┐            ┌──────────┐┌───────────┐                                   ┌───────────┐┌───────────┐                                   ┌───────────┐┌───────────┐»
q_0: ───┤ X ├────┤ Ry(θ[0]) ├┤ Rz(θ[4]) ├─■──■─────■─┤ Ry(θ[8]) ├┤ Rz(θ[12]) ├───────────────────■───────■─────■─┤ Ry(θ[16]) ├┤ Rz(θ[20]) ├───────────────────■───────■─────■─┤ Ry(θ[24]) ├┤ Rz(θ[28]) ├»
        ├───┤    ├──────────┤├──────────┤ │  │     │ └──────────┘└┬──────────┤┌───────────┐      │       │     │ └───────────┘├───────────┤┌───────────┐      │       │     │ └───────────┘├───────────┤»
q_1: ───┤ X ├────┤ Ry(θ[1]) ├┤ Rz(θ[5]) ├─■──┼──■──┼──────■───────┤ Ry(θ[9]) ├┤ Rz(θ[13]) ├──────■───────┼──■──┼───────■──────┤ Ry(θ[17]) ├┤ Rz(θ[21]) ├──────■───────┼──■──┼───────■──────┤ Ry(θ[25]) ├»
     ┌──┴───┴───┐├──────────┤└──────────┘    │  │  │      │       └──────────┘├───────────┤┌───────────┐ │  │  │       │      └───────────┘├───────────┤┌───────────┐ │  │  │       │      └───────────┘»
q_2: ┤ Ry(θ[2]) ├┤ Rz(θ[6]) ├────────────────■──■──┼──────┼────────────■──────┤ Ry(θ[10]) ├┤ Rz(θ[14]) ├─■──■──┼───────┼────────────■──────┤ Ry(θ[18]) ├┤ Rz(θ[22]) ├─■──■──┼───────┼────────────■──────»
     ├──────────┤├──────────┤                      │      │            │      ├───────────┤├───────────┤       │       │            │      ├───────────┤├───────────┤       │       │            │      »
q_3: ┤ Ry(θ[3]) ├┤ Rz(θ[7]) ├──────────────────────■──────■────────────■──────┤ Ry(θ[11]) ├┤ Rz(θ[15]) ├───────■───────■────────────■──────┤ Ry(θ[19]) ├┤ Rz(θ[23]) ├───────■───────■────────────■──────»
     └──────────┘└──────────┘                                                 └───────────┘└───────────┘                                   └───────────┘└───────────┘                                   »

If I understand correctly, each R(θ) is a classical parameter optimization which requires a measurement. But I have no idea how to count the measurements and iterations the VQE does. I've tried using ansatz.depth() which gives 2, and ansatz.count_ops() gives this dict: {'x': 2, 'TwoLocal': 1}, but that is not what I'm looking for.

Hi there!
There are multiple questions here so I will try to answer them one by one:

How to get the number of gates in your VQE: You were quite close with ansatz.count_ops(). You can see already that there are 2 X gates which likely come from your initial state. The other entry in that dictionary, TwoLocal is not very informative because the counting is done on the non-decomposed ansatz. If you do ansatz.decompose().count_ops() instead, you should be getting closer to what you expected to find.

How many measurements are made: The R(\theta) are parameterized rotation gates. Each entry in the vector \theta is one optimization parameter for the VQE. However, that does not map exactly to the number of measurements. Instead, the number of measurements is determined by the Hamiltonian (or qubit operator) which your are trying to find the eigenvalue of (whereas above you are looking at the quantum circuit of your Ansatz). What you need to look at here are the number of Pauli terms which are present in your qubit operator. Usually you should be able to simply print the qubit operator to get some basic information about it. If that doesn't suffice, that will usually tell you more information about the operator type based on which you can search for more information. You will also need to look at the number of shots which are configured in your QuantumInstance or Backend. This number determines how often each circuit gets sampled, directly impacting the number of total measurements.

I hope this answers most of your questions. May I also suggest the Qiskit Slack workspace to you? That is usually a faster way of getting answers to more general questions like this one.


Best match option "Sort by Higher Taxonomy" not working

Selecting post-processing option "Sort by Higher Taxonomy" should cause the name with the lowest value for Highertaxa_sort_order to be displayed as the best match. Instead, the application continues to display the name with the lowest value of Overall_score_order.

To replicate, submit "Helotiaceae Diplothrix juniperifolia" and resolve with default settings. This displays "Diplothrix juniperifolia DC.", in family Asteraceae, as the best match, with "Zinnia juniperifolia A.Gray" as the accepted name. So far, this is correct, as "Diplothrix juniperifolia DC." is the best match under the default "Sort by Overall Score" algorithm.
Now, reduce the match threshold to 0 and chose "Yes", then select "Sort by Higher Taxonomy" and chose "Yes". Note that "Diplothrix juniperifolia DC." is still displayed as the best match. This is incorrect. Family "Helodiaceae", with no species, should be displayed as the best higher taxonomic match, as it matches much more closely to the submitted family (Helotiaceae) than does the family of the best matching name returned by the default best match algorithm (Asteraceae).
Finally, to confirm that "Sort by Higher Taxonomy" is being ignored, download the results making sure that "All matches" is checked. Note that matched name "Helodiaceae" has the lowest value of Highertaxa_sort_order, with Best_match_highertaxa=TRUE. These values are correct but are being ignored by the TNRSweb interface.

This issue is related to issue #114. Both the online results and the downloaded results could be fixed by sorting by column ID (ascending) followed by Highertaxa_score_order (ascending).

The cause of this bug is failure to sort the API results correctly. The best way to understand sorting and select of the best match is to download the results from the example above. Choose "Download Data", making sure the option "All matches" is checked. In the downloaded file, hide all columns except the following:
ID
Name_submitted
Overall_score
Name_matched
Family_matched
Family_score
Overall_score_order
Highertaxa_score_order
Best_match_overall_score
Best_match_highertaxa
Under the default sort order "Sort by Overall Score", the results are sorted as follows (using SQL syntax):
ORDER BY Name_submitted ASC, Overall_score_order ASC
Using this sort order, note that the Name_matched with the highest values of Overall_score sorts first, with Overall_score_order=1. Also note that Best_match_overall_score=TRUE.
Using the alternative sort order "Sort by Higher Taxonomy", the sorting should be as follows (but is not):
ORDER BY Name_submitted ASC, Highertaxa_score_order ASC
Sorting the results spreadsheet this way, note that Name_matched with the highest values of Highertaxa_score_order sorts first, with Highertaxa_score_order=1. Also note that Best_match_highertaxa=TRUE. This is the sort order you need to implement whenever the user chooses "Sort by Higher Taxonomy"

Sort order is now correct for online display of results. Still needs fixing for download, but that is a separate issue (#114). Closing this issue as fixed.


Odd duplicate runs

I have no idea what's causing it, but sometimes a single invocation of mitosis leads to dual runs, e.g.
trial entry: insert--plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise--0--0000000------
Running experiment gridsearch, simulation variant plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise, iteration 0 at time: 2024-01-22 16:40:29 UTC.  Current repo hash: 0000000.  In debugging mode.
Finished experiment at time: 2024-01-22 16:40:42 UTC.  Results: 1.0
[InstallIPythonKernelSpecApp] WARNING | Alternative text is missing on 25 image(s).
trial entry: update--plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise--0--0000000--0.328299447--1.0--trial_gridsearch_none_plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise_0_5e0204debug.html
trial entry: insert--plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise--0--0000000------
Running experiment gridsearch, simulation variant plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise, iteration 0 at time: 2024-01-22 16:40:42 UTC.  Current repo hash: 0000000.  In debugging mode.
Finished experiment at time: 2024-01-22 16:40:55 UTC.  Results: 1.0
[InstallIPythonKernelSpecApp] WARNING | Alternative text is missing on 25 image(s).
trial entry: update--plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise--0--0000000--0.21972162000000006--1.0--trial_gridsearch_none_plot2-duration-absnoise-duration-absnoise-all-4nonzero-cubic-test-absrel5-19-kalman-auto3-duration-noise_0_20b57adebug.html
Installed kernelspec<PHONE_NUMBER>203681702340611 in /home/jake/.local/share/jupyter/kernels/4029585625203681702340611
Installed kernelspec<PHONE_NUMBER>203681702340611 in /home/jake/.local/share/jupyter/kernels/3796495625203681702340611

Note the:
Running experiment gridsearch, ... iteration 0 at time: 2024-01-22 16:40:29 UTC
Finished experiment at time: 2024-01-22 16:40:42 UTC.
Running experiment gridsearch, ... iteration 0 at time: 2024-01-22 16:40:42 UTC
Finished experiment at time: 2024-01-22 16:40:55 UTC.

Unsure what's causing this, as it doesn't occur all the time.

Fixed in 0.3.1, 0.4 release candidates.


[Feature Request] API for UI clients

In order to show "Chat UI" with "chats + profile picture + last message" it'd be good to have a dedicated endpoint that would return all info at once:

Chat Id
Contact Name (if any or phone)
Profile Picture (if any)
Last Message

We should also add pagination there so it doesn't return all chats by default.
May be with expand parameters so we can control the behaviour:

expand=profilePicture
expand=profilePicture&lastMessage

The main focus is NOWEB, but we need to check how it's solve in WEBJS as well
May be we even could provide a simple UI for that in Dashboard or as a separate project so it'll be easy to start implementing such UI :thinking:

Related issues:

Profile Picture https://github.com/devlikeapro/waha/issues/566
Last Message https://github.com/devlikeapro/waha/issues/573

+1

+1

+1

Added in 2024.12.6 :rocket:

Get chats overview
Get chats "overview" - the API that almost all  Chat UI client needs!
GET /api/{session}/chats/overview?limit=20&offset=0

Response contains the main info you need to show in the chat list:

id - chat id
name - chat name (if any)
picture - chat picture (if any)
lastMessage - last message in the chat (if any).
_chat - the structure depends on engine you're using

⚠ lastMessage doesn't have media attachments, you need to [get message by id]({{< relref "#get-message-by-id" >}}) to get media attachments.
[
  {
    "id"<EMAIL_ADDRESS>    "name": "John Doe",
    "picture": "https://example.com/picture.jpg",
    "lastMessage": {
      "id"<EMAIL_ADDRESS>      "timestamp":<PHONE_NUMBER>,
      "from"<EMAIL_ADDRESS>      "fromMe": true,
      "to"<EMAIL_ADDRESS>      "body": "Hi there!",
      ...
    },
    "_chat": {
      ...
    }
  }
]

Pagination:

limit=100 - limit the number of chats to return
offset=0 - skip the number of chats from the start

Added in 2024.12.6 🚀
https://waha.devlike.pro/docs/how-to/chats/#get-chats-overview
Get chats overview
Get chats "overview" - the API that almost all Chat UI client needs!
GET /api/{session}/chats/overview?limit=20&offset=0

Response contains the main info you need to show in the chat list:

id - chat id
name - chat name (if any)
picture - chat picture (if any)
lastMessage - last message in the chat (if any).
_chat - the structure depends on engine you're using

⚠ lastMessage doesn't have media attachments, you need to [get message by id]({{< relref "#get-message-by-id" >}}) to get media attachments.
[
  {
    "id"<EMAIL_ADDRESS>    "name": "John Doe",
    "picture": "https://example.com/picture.jpg",
    "lastMessage": {
      "id"<EMAIL_ADDRESS>      "timestamp":<PHONE_NUMBER>,
      "from"<EMAIL_ADDRESS>      "fromMe": true,
      "to"<EMAIL_ADDRESS>      "body": "Hi there!",
      ...
    },
    "_chat": {
      ...
    }
  }
]

Pagination:

limit=100 - limit the number of chats to return
offset=0 - skip the number of chats from the start

Very good, thanks for the work 🚀


Feature Request: Dump current process listing to yaml

Basically a reverse of the load yaml configuration. This way we can build up the setup interactively and then save it to file.

I like this idea. But there are some points:

We support yaml and lua. And modifying lua file is challenging.
I was thinking about a "session" feature that would save current process list and their states and would start the process again.

Maybe there should be a possibility to generate a snippet from current state which can then be copy-pasted into the config.


Two queries executed when deleting

$detail = UserDetails::find($request->id);
$detail->delete()
Im using laravel telescope for debugging, and I found that two queries are executed when deleting a record (SoftDeleted).
Laravel 5.8 with Homestead.
Package version 0.6.0

Unfortunately this is a limitation with how the soft delete query works in Laravel.
Only the deleted_at and updated_at columns are included in the update query, so a separate query needs to be executed to set the deleted_by column.


Native host driver (i.e. for iOS builds)

It will be good to have support for building on native hosts.
Currently it is possible to build almost all type of applications in containers, but continers = linux and sometimes we need to build / run tests on another platforms. Good example is building iOS mobile apps.

Jenkins allows to use agents for that kind of build. Would that be a way to do it in agola?
Currently looking for a jenkins replacement.


Adding the notes and patient history

Addresses issues #32 and #239

Obligatory pull request UI snapshot:

FYI the white space between the + New Note button and the actual notes is killing me too, but it's symptomatic if a larger issue with how the markup is structured for content panels and default bootstrap styles which I should really address in a separate branch after this PR because it's going to touch a lot more than just this feature.

@jkleinsc can you review and either merge or complain about something I didn't do yet?

@tangollama unless I am missing something, it looks like your acceptance test doesn't really test the functionality of notes.  It should test crud operations on notes, not just test that the modal shows up.

@jkleinsc I've expanded the test suite, addressed several translation issues (including injecting the i18n service into the model), and found and fixed a new bugs along the way. I think this is ready to go. The big question is how we can run the node script for updates. Do we need a release note process?

Boom! @jkleinsc: MERGE. THAT. BRANCH!
http://i.imgur.com/nfo24RT.gif

LOL well played gif @tangollama. 👏  😆
PS: to put your gifs inline, just use the markdown image syntax: ![name](url). I went ahead and edited it for you. :wink:

@tangollama settle down... its not like I'm busy with something else right now! LOL!
I'm not thrilled with the UI on the "behalf of" input, but if @jglovier is ok, I guess I'm ok with it, but I don't like the undefined in the background either (undefined on behalf of test).

Cool. As always, I'm open to instruction and recommendations.
Typed or dictated imperfectly on my iPhone<PHONE_NUMBER>)

On Mar 28, 2016, at 5:17 PM, John Kleinschmidt<EMAIL_ADDRESS>wrote:
@tangollama settle down... its not like I'm busy with something else right now! LOL!
I'm not thrilled with the UI on the "behalf of" input, but if @jglovier is ok, I guess I'm ok with it, but I don't like the undefined in the background either (undefined on behalf of test).
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

I'm not thrilled with the UI on the "behalf of" input, but if @jglovier is ok, I guess I'm ok with it, but I don't like the undefined in the background either (undefined on behalf of test).

Oooo yeah, I didn't see that. @jkleinsc thanks for the screenshot (ALWAYS BE SCREENSHOTING :wink:)
That definitely needs some help, although we could take one of two approaches here.

punt on styling that as it's an issue with modal styling in general and fix in a new branch
add the fixes for modal styling to this branch and knock it out here

I'm open to either. @tangollama which would you prefer?

@jglovier @jkleinsc I fixed the styling issue and the "undefined" text in the background last night. Behold!!

@tangollama awesome! I'd call that Good Enough™ for this branch. I'll address modal styling overall in a new PR.
:shipit:

Looks good @tangollama.  I am going to merge this PR in

@jkleinsc FYI when you merge a request that way the contributor never gets credit for the contributions as they all become your commits.

@jglovier I do this for PRs that have lots of commits because I don't want to bring all those commit messages over.  I guess we could ask contributors to squash the commits on their end and then we could just merge the PR.  If you have other thoughts on how we can better do this, I'm all ears.
Actually I would love a Github feature where I can merge a PR and squash the commits into one commit that credits the author!  That would make me 😀😀😀😀😀!

Actually I would love a Github feature where I can merge a PR and squash the commits into one commit that credits the author! That would make me 😀😀😀😀😀!

@jkleinsc ask an ye shall receive: https://github.com/blog/2141-squash-your-commits 😄

@jglovier I think I shall do a happy dance:


Touch works only with the tpcal example

I imported this library in a platform underesp-idf environment.
All the graphic functions on the display work correctly, but unfortunately the touch in none of the examples works.
Only by calling the "tpcal_create ()" function for touch adjustment, the device receives the signal that the screen has been pressed. It is as if only the "touch" event is called in this function. How is it possible that only in this example does the touch work correctly?
Thanks, and congratulations for the great work you have done.

@winny2809 It's likely that your touch screen is not calibrated correctly, so you never touch any of the objects on the screen (e.g. buttons). However, the tpcal example is designed to calibrate the screen so it will register touches anywhere.

The problem is that even creating an object with the call function, when you touch any point on the screen no event is generated, an event is generated only by using the "tpcal_create" function.
It is as if only the "tpcal_create" function read the interrupt from the touch screen.
Why?

tp_cal checks to the whole display area for clicks. I suggest to printf the measured raw touchpad data fro your driver to if it's correct.

The problem is that even creating an object with the call function, when you touch any point on the screen no event is generated, an event is generated only by using the "tpcal_create" function.

That is because, as I said above, in the other examples there are small objects on the screen in various places. It just so happens that the current data you are reading from your touchscreen is not hitting those areas.
However, think of tpcal as creating a huge button that covers the whole screen. No matter where the data you read claims you touch, the huge button will always get clicked as it fills the whole touchscreen.
As @kisvegabor said it's likely that the coordinate data you are reading is bogus.

And then? in this case how should I proceed? Excuse me

in this case how should I proceed?

First, let's figure out whether it's bogus or not. That is, does touching the top left of the screen give you roughly (0,0), and does touching the bottom right give you a coordinate around the screen width and height (i.e. for 240x320 (240, 320))?

This is the result

It's cleary the issue of the driver. Probably you read always 0xFF. Typically it indicates a problem with the SPI. (wrong pins or wrong configuration)

I have the doit devkit v1 card.
My configuration is:
#define XPT2046_IRQ 25
#define ENABLE_TOUCH_INPUT  1
#define TP_SPI_MOSI 23
#define TP_SPI_MISO 19
#define TP_SPI_CLK  18
#define TP_SPI_CS   5

the vspi configuration is:
void tp_spi_init(void)
{
esp_err_t ret;

spi_bus_config_t buscfg={
	.miso_io_num=TP_SPI_MISO,
	.mosi_io_num=TP_SPI_MOSI,
	.sclk_io_num=TP_SPI_CLK,
	.quadwp_io_num=-1,
	.quadhd_io_num=-1
};

spi_device_interface_config_t devcfg={
	.clock_speed_hz=10*1000*1000,           //Clock out at 80 MHz
	.mode=0,                                //SPI mode 0
	.spics_io_num=-1,              //CS pin
	.queue_size=1,
	.pre_cb=NULL,
	.post_cb=NULL,
};

//Initialize the SPI bus
ret=spi_bus_initialize(VSPI_HOST, &buscfg, 2);
assert(ret==ESP_OK);

//Attach the LCD to the SPI bus
ret=spi_bus_add_device(VSPI_HOST, &devcfg, &spi);
assert(ret==ESP_OK);

}

Let's continue in the Forum because more users read it.


⚠ Avatar API Endpoint has degraded performance

In 8021bc8, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 5786 ms

Resolved: Avatar API Endpoint performance has improved in 573188a after .


@segment/analytics-node: Analytics not working in Edge Runtime (e.g. Next.js)

I'm using an edge runtime API function in NextJS (e.g. pages/api/playground.ts) Here is a minimal example
import { Analytics } from "@segment/analytics-node";
import { NextRequest, NextResponse } from "next/server";

const analytics = () =>
    new Analytics({
        maxEventsInBatch: 1,
        writeKey: process.env.SEGMENT_NODE_API_KEY ?? "",
    }).on("error", console.error);

export default async function handler(request: NextRequest) {
    await new Promise((resolve) => analytics().track({ event: "My Event", userId: "asdf" }, resolve));

    return NextResponse.json({ result: "success" });
}

export const config = {
    runtime: "edge",
};

I can't get any analytics into the Node debugger on segment.com. The same is true both for the deployed version on vercel.com as well as the local development version of Next.js
It works for the non-edge version of NextJS (using Lambda)

Also just went to install the package for use in middleware, and immediately got this error.
Failed to compile.

../../node_modules/<EMAIL_ADDRESS>Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Edge Runtime
Used by groupBy

Import trace for requested module:
../../node_modules/<EMAIL_ADDRESS>../../node_modules/<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>./src/utils/middleware/optimizely.ts
./src/middleware.ts

Looks like it also doesn't work on the regular (non-Edge) runtime.

Thank you for taking out this issue... investigating!

Thanks so much @silesky for the quick response!
Is there a way for me to test the unmerged feature?

Released in ^1.0.0-beta.23

I've tried to get it to work with 1.0.0-beta.23, but still not getting any events in the Segment debugger, unfortunately. Tried both the snippet in this thread from johanneskares as well as your analytics-node-next-13 repo
Any ideas why?

@ColdSauce: I didn't know that repo was on your radar; try pulling from that analytics-node-next-13 repo again. I just tested it, and it works

Wow @silesky that was super fast. Thanks for adding it in. I can confirm it's working 🚀

I had a hard time debugging this. For me the maxEventsInBatch setting was missing wich caused the vercel function run into the 10s timeout every time.


Support Cosign Image signature verification with KMS

This PR mainly add the support to verify image signature with public keys provided by KMS.

Add PublicKeyProvider API for KMS crate
Add get_public_key api for CDH
image-rs can get cosign verification public key from CDH when both cosign and confidential-data-hub feature are enabled

After discussions with @arronwy , let's temporarily make this draft. As the KMS configurations are still not easy to use, we will keep on doing this PR after #413


Pulling sometimes misses messages.....

Ya, I know this is terrible. When Nectar is caught up with Elastic search, it pulls message every so often due to the minimum length pull time. Right now I am testing it with 10 seconds. It will have to wait 10 seconds at least until it can pull from Elastic search. I been noticing, when its at this state it will pull, but be missing messages. This usually causes a crash because it pulls the attempt message but skips the correlating connection message.
When the script crashes, I grab the latest pull time and repeat message IDs. I run the exact same query as my script did and it gives me all the messages.  The only thing that is different is time.

https://discuss.elastic.co/t/elasticsearch-missing-messages-on-query/102002


Polkadot v0.9.29

https://github.com/paritytech/substrate/compare/polkadot-v0.9.28...polkadot-v0.9.29
https://github.com/paritytech/cumulus/compare/polkadot-v0.9.28...polkadot-v0.9.29
https://github.com/paritytech/polkadot/releases/tag/v0.9.29
https://github.com/Phala-Network/phala-blockchain/pull/947

Notable upstream changes:

Weight v1.5

https://github.com/paritytech/cumulus/pull/1581
https://github.com/paritytech/cumulus/pull/1584

No pending upstream migration

In this PR:

Refactor weights to v1.5
XCM extract its own weight, adapt SubBridge and XCM-relates to XCMWeight
Remove staled migrations
Remove forked utility pallet, PRB < 2.2 won't work any longer
Sync latest Phala pallet and related crates

I'm merging this
@h4x3rotab please review this later and PW migrations


chore: remove node8 from circle ci

Pull Request Test Coverage Report for Build 1127

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

Totals

Change from base Build 764:
0.0%

Covered Lines:
692

Relevant Lines:
692

💛  - Coveralls


Closing the app while in Airplane mode signs the user out

Sign in
Open a survey
Activate Airplane mode
Kill the app
Open the app

The user is signed out an unable to continue.
@shobhitagarwal1612 @JSunde Any ideas?

Anything suspicious in the logs?

Anything suspicious in the logs?

I don't think I had the device plugged in when I reported this, but I suspect it has to do with how we handle  Firebase timeouts on startup.

Duplicate of #1985.


Support for HEIC / HEIF images

Task Description
In the XReco context, @rahelarnold98 and I have realized, that the Java ImageIO facility we use in the ImageDecoder does not support the HEIF image format. Now this format becomes more and more virulent, since every iPhone / iPad produces it. Nevertheless, it seems that support for it on the Java platform is not very mature yet. This is what I found:

The TwelveMonkeys library does not currently support the format and it seems, that there are no immediate plans to change this. An issue has been open for several years now.
The NightMonkeys library does add support for HEIC / HEIF but only supports Java 22 (which is not an LTS version), since it relies on the new foreign memory API.

The goal of this task is therefore to add HEIC / HEIF compatibility to vitrivr-engine, since I would argue, this is a state-of-the-art format that we ought to support in the near future.
Dependencies
None
Boundary Conditions
Ideally, this change should be implemented as an extension to Java's ImageIO facilities (like TwelveMonkeys).

The 'state-of-the-art' part is up for discussion, as it is still a niche occurrence, and there are several other up-and-coming image formats, including AVIF and JPEG XL (both of which are proper open formats in contrast to at least some variants of HEIF). Ideally, we would support all of these, and whenever this can be done with just the inclusion of another library, I see no reason why we should not. The next LTS version of the JVM is version 25, scheduled to be released a year from now. I'm personally not a fan of depending on functionality that is not available in the latest LTS, at least not for core dependencies. So if you need support for this stuff earlier, it's probably best to handle this via a specific module, since then one does not force the entire stack to depend on the latest JVM version—my 2 cents.


How to add new column to old object with realm migrate swift?? plz

let config = Realm.Configuration(
    // Set the new schema version. This must be greater than the previously used
    // version (if you've never set a schema version before, the version is 0).
    schemaVersion: 1,

    // Set the block which will be called automatically when opening a Realm with
    // a schema version lower than the one set above
    migrationBlock: { migration, oldSchemaVersion in
        // We haven’t migrated anything yet, so oldSchemaVersion == 0
        if (oldSchemaVersion < 1) {
            migration.enumerateObjects(ofType: Config.className()) { oldObject, newObject in
                oldObject!["rent_slider_link"] = ""
            }
            // Nothing to do!
            // Realm will automatically detect new properties and removed properties
            // And will update the schema on disk automatically
        }
})

// Tell Realm to use this new configuration object for the default Realm
Realm.Configuration.defaultConfiguration = config

// Now that we've told Realm how to handle the schema change, opening the file
// will automatically perform the migration
let _ = try! Realm()

To add a new property to an existing model class you need to do two things:

Add the property to the class declaration.
Increment the schema version in your Realm configuration, and provide an empty migration block.

If you wish to populate the new property you can provide logic in the migration block to do so. In your migration block, you should modify the new object passed to the enumerateObjects(ofType:) callback. The old object provided to that callback represents the object at is existed prior to the schema being migrated, which means it doesn't have the newly added properties. This is why you're seeing a problem with your migration.

To add a new property to an existing model class you need to do two things:

Add the property to the class declaration.
Increment the schema version in your Realm configuration, and provide an empty migration block.

If you wish to populate the new property you can provide logic in the migration block to do so. In your migration block, you should modify the new object passed to the enumerateObjects(ofType:) callback. The old object provided to that callback represents the object at is existed prior to the schema being migrated, which means it doesn't have the newly added properties. This is why you're seeing a problem with your migration.

Hi, I was try with your answer and what I get is Realm wipe all my data. How about this?


New features

Hi! I've always wanted such an extension for my workflow, so huge thanks for creating it.
I've played around a bit and made some changes:

Added IDE detection for each project
Added support for some of JetBrains IDEs (Webstorm and PyCharm for now)
Added support for Git Fork
Added recursive search (to support "directories of projects" inside main directory)
Added ignored paths

I also want to make more changes:

Support more IDEs, add configuration for the default editor

So I wanted to ask if you would mind merging my work with the extension. If my changes doesn't match your vision, I'm open to discussion :)

This was never published officially, but is instead in https://github.com/raycast/extensions/tree/main/extensions/quick-open-project.


[mod_fastcgi] 404 for X-Sendfile file not found

send 404 for X-Sendfile file not found error
(slightly modified from patch by Olaf-van-der-Spek)
reference:
Option to map send-file file-not-found error to normal 404
https://redmine.lighttpd.net/issues/2474

I slightly modified Olaf's patch to retain the error trace when stat_cache_get_entry() fails. If it should be removed for X-Sendfile, then it should also be removed for X-Sendfile2

Thanks! Applied in c80ae9b212806eea0adbc675c716ddc4f1b01777


Nested Children

I have a nested list that throws:
ERROR TypeError: Cannot read property 'Sortable1527190836189' of null
at _dispatchEvent (Sortable.js:1307)
at Sortable._onDrop (Sortable.js:974)
at Sortable.handleEvent (Sortable.js:1044)
at HTMLDocument.task.callback (zone.js:1513)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4740)
at ZoneDelegate.invokeTask (zone.js:420)
at Zone.runTask (zone.js:188)
at ZoneTask.invokeTask [as invoke] (zone.js:496)
at invokeTask (zone.js:1517)
The list structure looks like

Top

Child

Location

Location 1
Location 2

If I move Top anywhere inside of Location, that error will fire or if I move Location underneath Top.  Any ideas on how to resolve this?

Please create a stackblitz reproducing the issue

Editor: https://stackblitz.com/edit/angular-rbabg5
Looks like the editor doesn't show the error, but if you open the app url directly (https://angular-rbabg5.stackblitz.i) then drag Top and drop it between Location 1 and Location 2 the error should show.

You need to check with *ngIf whether the children are present. See https://github.com/SortableJS/angular-sortablejs/blob/master/README.md#demo , I added two working modifications of your code to the readme


[bug] Weaviate metadata id error

When trying to connect GCS to Weaviate I get this error.
{'error': [{'message': "'id' is a reserved property name"}]}
Somebody else had this problem.
https://stackoverflow.com/questions/77407132/error-while-loading-documents-in-weaviate

@danielhangan Working on this today. I'll update you before the end of the day

@danielhangan This has been resolved. Please let me know if you encounter any additional issues


File source mapping broken macros / diagnostic output

rust-analyzer version: rust-analyzer version: 6634eaf13 2022-01-30 nightly
rustc version: rustc 1.58.1 (db9d1b20b 2022-01-20)
vscode == 1.63.2
Given this (deliberately broken) code (dependency tracing = "0.1.29)
fn main() {
    let yaks = 1;
    tracing::info!(yaks, "Hello world");

    print!("{borken}"); // broken, provoking diagnostic output
}

Rust Analyzer will emit plenty of diagnostic error output; specifically also a reference to tracing's info! macro source code. This reference in the vscode problems window points to
	"resource": "/home/myuser/git/git.my.host/me/rust/wombat/home/myuser/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.29/src/macros.rs",

which is wrong (the above is copied from the vscode diagnostic entry). My workspace is indeed located in /home/myuser/git/git.my.host/me/rust and my cargo.toml is located in wombat off that.
/home/myuser/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.29/src/macros.rs also exists, and is reachable via Ctrl+Click.
So, somewhere, construction of the path to the macro's source code in diagnostics fails; it tacks the full path onto the cargo root path, whereas something somewhere already delivers the full path to the macro (which is not package-relative). Or in short: The correct (and confirmed working) path in the above scenario is /home/myuser/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.29/src/macros.rs"

Test case error - interference by https://marketplace.visualstudio.com/items?itemName=panicbit.cargo


Create a list of community-driven samples

It might be a great idea to create and maintain a list of example Compose Multiplatform projects in addition to the official samples. While building an excersise-like chat app with Compose to improve my experience, I felt that it would be nice to have many repos where I could look for solutions of some rare use-cases and widgets.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


wip: merged compute image

This adds Dockerfiles and CI jobs for building a compute image which includes all Postgres versions. The images are not pushed anywhere, just built and referenced locally. This approach also doesn't include extensions so we need to utilize the remote extensions feature for this to be useful. Lastly compute_ctl also needs to be updated in order to locate the different versions inside the image.
Credit goes to @rahulinux for suggesting we could use a final image for combining different image versions. My initial approach of building all the versions in one image turned out to be too cumbersome.
https://github.com/neondatabase/neon/issues/6685

@cicdteam  do we need to do the same thing for https://github.com/neondatabase/build-custom-extensions ?

@cicdteam do we need to do the same thing for https://github.com/neondatabase/build-custom-extensions ?

probably yes, but better get confirmation from @lubennikovaav


[Improve] RestResponse fail method improvement

[Improve] RestResponse fail method improvement

cc @RocMarshal @wuchunfu PTAL, thx


Flatten function performance issue v4

Having recently tried to upgrade our styled-components from v3 to v4 in a relatively large react app - we've ran into a strange performance issue that seems to be tied to the flatten function. When commenting out this part of flatten, the issue seems to resolve:
https://github.com/styled-components/styled-components/blob/9b81695d35074974c42b943a82456c9ae4b42500/packages/styled-components/src/utils/flatten.js#L59-L72
Here are screenshots of performance snapshots run with chrome dev tools when performing the same action in our app on v3 vs. v4:
v3

v4

Strangely, we have not been able to reproduce this in a clean slate react app.
Environment
System:

OS: macOS High Sierra 10.13.6
CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Memory: 2.29 GB / 16.00 GB
Shell: 5.3 - /bin/zsh

Binaries:

Node: 8.14.0 - /usr/local/bin/node
Yarn: 1.13.0 - /usr/local/bin/yarn
npm: 6.5.0 - /usr/local/bin/npm

npmPackages:

babel-plugin-styled-components: ^1.4.0 => 1.10.0
styled-components: ^4.1.3 => 4.1.3

Reproduction
Unable to reproduce with a basic react app created via create-react-app.
Expected Behavior
Performance is as good if not better than v3.
Actual Behavior
Performance is sluggish, significantly slower than v3.

I'm wanting to give a try and fix this. do you have a way to reproduce this outside your app? can you publish something that I can clone and try?

You can trigger that code path by passing a non-styled component SFC into a style interpolation.

let my try to create something that reproduces it in codesandbox. I usually like to reproduce the problem first before trying to attack it.

@alansouzati Unfortunately I've not been able to reproduce this outside our app. I'll keep you updated if I can reproduce / make any progress.

@mariel9999999 are you using the "component selector" pattern?
const Icon = styled.svg`
  flex: none;
  transition: fill 0.25s;
  width: 48px;
  height: 48px;

  ${Link}:hover & {
    fill: rebeccapurple;
  }
`;

see the Link  component inside the Icon interpolation?

@alansouzati Yes.

just as a test, if you remove it, does the problem go away too? I'm trying to debug what is going on but I'm pretty new to their source code.

@alansouzati Nope. It is still laggy after removing all component selectors.

I couldn't pin-point my problems down to flatten function, but we're experiencing the same issue - after upgrading relatively big project to v4, it performs about two times slower than with v3.

@mariel9999999 can you try<EMAIL_ADDRESS>(@alansouzati's fix) and let me know if it improves your graphs at all?

@probablyup Yup that fixes it.
Here's what it looks like when performing the same action (left =<EMAIL_ADDRESS>and right = 4.1.3):

@alansouzati Thanks for fixing this!


Progressive Record Fetch

There is a max record fetch but if the user navigates past a certain point in time that means some records might not be present because they are over the max.
Implement a record fetch once the user navigates past 182 days from today in any direction.

Hello, I tried to solve the issue.
This is what I did:
Modify the getChartData method to include a check for the date range and fetch additional records if needed. Add a new method to fetch records for extended date ranges.
You can review changes in this commit: https://github.com/lkilu6456546/edunzer-GanttChart-Simplified-6/commit/78d96ea9af4ed0dfabc84ffa25c5e99288d6e21a.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.


How to configure Tiki - Scoro integration

I tried to import data from Scoro but saw this error:

It seems that 'company' is a placeholder string there, where can I configure it?

Tabular format needs configuration here: https://timesheet.dev3.evoludata.com/tiki-tabular-edit?tabularId=8
I also made your user an admin as I think you will need to supply your API credentials here: https://timesheet.dev3.evoludata.com/tiki-admin_dsn.php - just add a content authentication section for scoro with correct user/pass or whatever API credentials that required.

Thanks!


instance fetch data an found object, but no entry

Describe the bug
Hello dirkhe,
first of thank you for this build.
like the title let u guess, i tried to get the Adapter to work and everything seems fine,
but there are no entry's in the objects/events folder, even if it says there are 8 found?!
thanks a lot. gz rob
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '...'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots & Logfiles

Versions:

Adapter version: v1.3.0.
JS-Controller version: 5.0.17
Node version: v18.19.0
Operating system: vm on proxmox

Additional context
Add any other context about the problem here.

It founds 8 objects in general, but if you want to realky work with this, you havevto define events, like holiday to get an datapoint.


add track info for mem tracker fault inject

What problem does this PR solve?
Issue Number: close #xxx
Problem Summary:
What is changed and how it works?
add track info for mem tracker fault inject, such as num of threads, peak mem usage not tracked by Processlist.
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

File an issue?

File an issue?

added

/merge

/merge

/merge

/merge

/merge

/merge


DCOS-18825 - Update CORE OS AMI used CloudFormation templates.

Remove the Availability Zone Pinning.
Update EL7 AMIs.
We are not including gov cloud region now.

@mesosphere-mergebot sync


Website/live version?

Is not this intended as a website? Is/will there be a live version?

It's on the roadmap but not implemented right now :)


html escaping causing bad speech

take this for example
"The villagers, inspired by the hunters' courage ..."
the single qout here gets translated to "#39"  and read like so as well
just remove thie https://github.com/lib-x/edgetts/blob/0506c06ffedbd2c7cffe67cb82362965a269519b/internal/communicate/communicate.go#L424C1-L425C1

fixed:thanks for your figure out


update Pydantic

This PR makes us use the new pydantic version and then uses some of the new features to make defining problems much easier. No idea why some of the diffs are so massive when only a couple lines in the files changed, most of the changes in match.py and util.py aren't actually real.
There are two big changes: the first is that pydantic now uses rust internally, which gives us a speedup of about 20x (not 20%, 20x), though that's not super relevant since most of our runtime is spent in student code anyways. The other is that pydantic now uses much simpler ways to define validation properties. For example, if a problem instance contains a list of numbers that each should be bigger than 4 we can now do this:
class GeInstance(InstanceModel):
    numbers: list[Annotated[int, Ge(4)]]

the Annotated lets us add metadata to a type, in this case that it should be greater or equal to 4. You can also specify more complex logic like saying a dictionary should map english words to how often they are used:
def validate_english(value: str) -> str:
    if not is_english_word(value):
        raise ValueError("Value is not an english word")
    return value

word = Annotated[str, AfterValidator(validate_english)]

class WordInstance(InstanceModel):
    word_counts: dict[word, int]

This makes some stuff nicer, but not a whole lot in our use case since most of our custom validation logic is things like "should be less than the instance size" or "encodes an edge that is in the instance graph". For this I added some fairly complex logic that lets you specify references to model fields and which are then evaluated during validation. So the first case would simply be:
class SizeInstance(InstanceModel
      number: Annotated[int, Lt(InstanceRef.size)]

To make things even simpler I've compiled many common use cases into the algobattle.types module. For example, the solution to a graph automorphism problem encoded as a permutation of the vertices can now simply be defined as
class Automorphism(SolutionModel):
    permutation: Annotated[list[Vertex], UniqueItems, SizeLen]

and it will automatically be validated that every entry is a valid vertex, that none appear twice, and that every vertex is assigned an image. The only thing you have to manually validate is that the mapping preserves edges.
There's still a lot more cool stuff that can be added, but this should be a good start and make things nice enough.

This is a welcome addition, yet I suspect that most common users will not want to go so deep into writing their own typing classes to better formulate their problems. Still, having this option certainly does not hurt, thank you for the PR.


docs(tutorial/6 - Two-way Data Binding): Fixed Experiments Documentation

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Documentation update in step 6 of the PhoneCat Tutorial for AngularJS
What is the current behavior? (You can also link to an open issue here)
In the Experiments section of step 6 in AngularJS Tutorial, it is suggested to add a - symbol to <option value="age">Oldest</option>
This change is made to reverse the sort order when selecting the age option.
However, this change affects the default $ctrl.orderProp that we had set in app/phone-list/phone-list.component.js
After making the change, our default "Sort by" option is blank
What is the new behavior (if this is a feature change)?
I added additional documentation to clarify that this behavior makes sense and that the reader should try and correct the incorrect default behavior within app/phone-list/phone-list.component.js
Does this PR introduce a breaking change?
No
Let me know if this makes sense or if there's anything I can do to help improve the fix.
Thank you!
Please check if the PR fulfills these requirements

[X] The commit message follows our guidelines
[ ] Fix/Feature: Docs have been added/updated
[ ] Fix/Feature: Tests have been added; existing tests pass

Other information:

I signed it! Signed the CLA


Readme: Fix link to embeddings example and use python markup for code examples

Fix URL to embeddings notebook
Specify python is used for the code block

It makes things colorful: https://github.com/hwchase17/langchain/blob/83d65ddf5ea8e7a5642724648b8f1ad674e7cbf1/README.md


new release need...

Hi, i am trying to use stet release v1.1.0,
seems like it has lot of vulnerabilities so we can't able to use in our organization,
can you release a newer version....
thanks,
mervin


ERROR: Your storage adapter does not inherit from the Storage Base.

Hi,
Have you encountered this error ? I don't understand where the error is coming from.
Issue Summary
I know 0.10 brought a braking change for the s3 storage https://github.com/TryGhost/Ghost/wiki/Using-a-custom-storage-module
I now use this plug-in https://github.com/kelyvin/ghost-s3-service
Steps to Reproduce

When starting Ghost

> docker logs --follow $ctnID
npm info it worked if it ends with ok
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm info prestart<EMAIL_ADDRESS>npm info start<EMAIL_ADDRESS>
><EMAIL_ADDRESS>start /usr/src/ghost
> node index

ERROR: Your storage adapter does not inherit from the Storage Base.

  Also looks like you're trying on ghost v0.11.*, which I haven't tried myself yet. Stay tuned!

Thanks!

You might be interested to follow this conversation as well https://github.com/spanishdict/ghost-s3-compat/pull/11#issuecomment-251944225 (acburdine is from the Ghost Core Team)
Cheers!

I've got a similar issue when tried to run sudo npm start --production:
Error:
ERROR: Your storage adapter does not inherit from the Storage Base.

 Error
    at Error.IncorrectUsage (/var/www/ghost/core/server/errors/incorrect-usage.js:3:18)
    at Object.getStorage (/var/www/ghost/core/server/storage/index.js:54:15)
    at setupMiddleware (/var/www/ghost/core/server/middleware/index.js:126:44)
    at config.load.then.then.then.then.then.then.then.then.then.then.then.ghostServer (/var/www/ghost/core/server/index.js:188:9)
    at tryCatcher (/var/www/ghost/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/var/www/ghost/node_modules/bluebird/js/release/promise.js:510:31)
    at Promise._settlePromise (/var/www/ghost/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromise0 (/var/www/ghost/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/var/www/ghost/node_modules/bluebird/js/release/promise.js:691:18)
    at Promise._fulfill (/var/www/ghost/node_modules/bluebird/js/release/promise.js:636:18)
    at PromiseArray._resolve (/var/www/ghost/node_modules/bluebird/js/release/promise_array.js:125:19)
    at PromiseArray._promiseFulfilled (/var/www/ghost/node_modules/bluebird/js/release/promise_array.js:143:14)
    at Promise._settlePromise (/var/www/ghost/node_modules/bluebird/js/release/promise.js:572:26)
    at Promise._settlePromise0 (/var/www/ghost/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/var/www/ghost/node_modules/bluebird/js/release/promise.js:691:18)
    at Async._drainQueue (/var/www/ghost/node_modules/bluebird/js/release/async.js:138:16)
    at Async._drainQueues (/var/www/ghost/node_modules/bluebird/js/release/async.js:148:10)
    at Async.drainQueues (/var/www/ghost/node_modules/bluebird/js/release/async.js:17:14)
    at process._tickDomainCallback (node.js:459:13)

Details:
Ghost version: 0.11.1
Database: MySQL
Node: v0.10.25
npm: 2.5.0
OS: Ubuntu 14.04

@jlucasps you need to upgrade to node 4.x. V0.10 is not supported anymore. Cheers!
I still have the same issue.

Hi folks,
Been traveling around a bit and finally have a moment to breathe. I promise i'll take a look at it this week! Sorry for the delay and thanks for your patience!

OK, thanks @pascalandy and @kelyvin.
Regards.

@pascalandy @kelyvin I think i've nailed down the problem and made a PR to add the util module as a dependency. Seems to fix the issue for me.

Can't wait to try this ! Will wait for your merge @kelyvin
Cheers!

Thanks @dting for the pull request and thanks @pascalandy/@jlucasps for your patinence! I haven't had the proper time to test this (been busy moving apartments). However, I don't want to be your bottlenecks and prevent you both from moving forward. So in the meantime, I have merged the pull request into the following util-update branch.
Given the nature of the fix, I feel there may be a better way to resolve the package management. For now this will have to do and I hope to get to this more thoroughly soon once I have settled in. I promise I'm usually not this unresponsive, the past couple months have been a combination of studying + changing jobs + traveling + moving. Almost settled in and I appreciate your patience!
Thanks!

It's all good @kelyvin :)
I understand the npm project stays unmodified. Therefore this branch won't fix the issue at the moment.
'use strict';
module.exports = require('ghost-s3-service');

I'll stay tune :)

hey @pascalandy ,
Thanks for opening the issue and thanks to @kelyvin and @dting for working on the resolution. I ran into this when upgrading my blog this weekend. One thing to note @pascalandy is that you don't need to wait for the update to be officially released to NPM to be able to leverage this. You just need to point the node package directly to the github repository branch that @kelyvin outlined above. Note I also needed to include the aws-sdk following depdency in my project
npm install --production https://github.com/kelyvin/ghost-s3-service/tarball/util-update --save
npm install --production aws-sdk
If you're using Heroku to host the application then you'll also have to disable the node_module cache to incorporate this.
Hopefully that helps in the meantime.  I can confirm that I was able to get this to work was expected with an upgrade from 0.7.x to 0.11.2. I would encourage the merge of this patch into master and publish it in NPM in the meantime as the current code is current broken against the current release. Then perhaps raise a new PR for improving the method of requiring those dependencies.
Thanks again for your support in making this work!
Cheers,
Roy

I think another possibility is not to use util.inherits and just set the prototype and constructor:
function S3Store(config) {
    BaseStore.call(this);
    options = config;
}

S3Store.prototype = Object.create(BaseStore.prototype);
S3Store.constructor = S3Store;

Thoughts?

@rmartin You rock!
I don't know anything about deploying/packaging stuff via NPM so this is highly appreciated :) Will try ASAP :)

@rmartin You rock!
I don't know anything about deploying/packaging stuff via NPM so this is highly appreciated :) Will try ASAP :) cc @jwasham

@kelyvin
I thought you should be aware of this. @acburdine from the Ghost Theme pushed a update as well.
https://github.com/spanishdict/ghost-s3-compat/pull/11#issuecomment-255111493
Cheers!

Finally have time again! Woot! Sorry that took so long.
Trying to play some catch up, anyone still running into any issues with this? Any status updates or anything I should know before taking a look at this?

Hi, I am trying to install ghost on heroku using ghost-s3-storage and am running into this same issue.  I am pinned to npm ^0.2.2 ; what version do I pin to, in order to get a fix?

I install successfully Ghost 0.11.2 with this storage plugin :)
I followed @rmartin instructions:
npm install --production https://github.com/kelyvin/ghost-s3-service/tarball/util-update --save
npm install --production aws-sdk --save

Here is how to tree looks like on my machine:
root@43b5979dd325:/usr/src/ghost/content# ls
apps  data  images  storage  themes

root@43b5979dd325:/usr/src/ghost/content/storage# ls
ghost-s3-service
root@43b5979dd325:/usr/src/ghost/content/storage# cd ghost-s3-service/

root@43b5979dd325:/usr/src/ghost/content/storage/ghost-s3-service# ls
index.js

root@43b5979dd325:/usr/src/ghost# ls
Gruntfile.js  LICENSE  PRIVACY.md  README.md  config.example.js  config.js  content  core  index.js  node_modules  npm-shrinkwrap.json	package.json

root@43b5979dd325:/usr/src/ghost/node_modules# ls
accepts        bookshelf	csv-parser	extend			  html-to-text	      jsonpath	       moment		normalize-path			 passport-strategy     sqlite3	    xtend
amperize       chalk		depd		extract-zip-fork	  htmlparser2	      knex	       moment-timezone	oauth2orize			 path-match	       superagent
archiver       cheerio		dom-serializer	fs-extra		  iconv-lite	      lodash	       morgan		on-finished			 pg		       type-is
aws-sdk        commander	domelementtype	generate-object-property  image-size	      lodash.defaults  multer		on-headers			 pg-connection-string  unidecode
babel-runtime  compression	domutils	ghost-gql		  inherits	      lodash.merge     mysql		once				 qs		       unpipe
bcryptjs       connect-slashes	downsize	ghost-s3-service	  ini		      methods	       netjet		optimist			 rss		       utils-merge
bl	       content-type	entities	glob			  intl		      mime-types       node-uuid	passport			 sanitize-html	       validator
bluebird       cookie-session	express		graceful-fs		  intl-messageformat  minimatch        nodemailer	passport-http-bearer		 semver		       vary
body-parser    cors		express-hbs	gscan			  isobject	      mkdirp	       nopt		passport-oauth2-client-password  showdown-ghost        xml

root@43b5979dd325:/usr/src/ghost/node_modules/ghost-s3-service# ls
CHANGELOG.md  LICENSE  README.md  index.js  node_modules  package.json

root@43b5979dd325:/usr/src/ghost/node_modules/ghost-s3-service/node_modules# ls
aws-sdk  aws-sdk-promise  bluebird  util
root@43b5979dd325:/usr/src/ghost/node_modules/ghost-s3-service/node_modules#

@kelyvin I think you should merge the branch util-update and a big thanks to @dting for the fix :)

Thanks for the response @pascalandy, if it's working for you then I will go ahead and pull the change.
Thanks for verifying!


better notification of old version in NCC

Right now in NCC there is panel that explains what the latest version is, but there is no warning if somebody is up to date, and if they aren't no call to action.  Maybe when a client is out of date there could be a message in the window asking them to update with a link to follow to http://nem.io/install.html.

that actually is already done, and will be avail in upcoming version


Unable to install CLI

[x] I am on the latest Hyper.app version
[ ] I have searched the issues of this repo and believe that this is not a duplicate

OSX Mojave 10.14.5:
**Hyper 3.0.2 (stable)*:

Issue
Plugin -> Install CLI throws an error Symlink creation failed. ENOENT

Same issue occurs for me as well.

@taggy @Th3G4mbl3r
Can you confirm if /usr/local/bin directory exists and it's permissions are drwxrwxr-x

@taggy @Th3G4mbl3r
Can you confirm if /usr/local/bin directory exists and it's permissions are drwxrwxr-x

Hi @LabhanshAgrawal
It did exist and the permissions were correctly set. However, it is not a issue for me anymore as i had to reimage my laptop and so there is no way for me to reproduce the issue. After reimaging for some reason the first time round itself it worked perfectly.
thanks,
rohit

I get a similar error: "Symlink creation failed: EACCES". I installed Hyper using the 3.0.2 dmg onto macOS Mojave 10.14.6
My /usr/local/bin has permissions drwxr-xr-x.
I granted Hyper Full Disk Access, but that didn't fix it.

@azazel-cat can you try and create a symlink in /usr/local/bin pointing to /Applications/Hyper.app/Contents/Resources/bin/hyper
that should be usable

ln -s /Applications/Hyper.app/Contents/Resources/bin/hyper /usr/local/bin/hyper

Worked (using sudo) — thanks!


Valid exitcodes can be specified for each module

Thanks, When will it be released & which version number will it be?


feat: Implement CLIENT UNBLOCK

Part of #174.

Hmm, acl_test failed. It looks like the CI is now using Redis 6.2 which is affecting some of the existing tests.

Okay, created https://github.com/denodrivers/redis/pull/196. If that looks good I can rebase on it after.


Upgrade Modernizer Maven Plugin 2.7.0 -> 2.8.0

This PR contains the following updates:

Package
Type
Update
Change

Modernizer Maven Plugin
build
minor
2.7.0 -> 2.8.0

Release Notes

gaul/modernizer-maven-plugin (Modernizer Maven Plugin)
v2.8.0: Modernizer Maven Plugin 2.8.0

Add m2e hint, #213
Add support for different output formats and add codeclimate as an output format, #235
Upgrade to ASM 9.6, #222

Thanks @hazendaz and @themadprofessor for sending pull requests to improve Modernizer!

[ ] If you want to rebase/retry this PR, check this box

Suggested commit message:
Upgrade Modernizer Maven Plugin 2.7.0 -> 2.8.0

See:
- https://github.com/gaul/modernizer-maven-plugin/releases/tag/modernizer-maven-plugin-2.8.0
- https://github.com/gaul/modernizer-maven-plugin/compare/modernizer-maven-plugin-2.7.0...modernizer-maven-plugin-2.8.0