Generated SortInputObject types don't inherit from bound runtime types

Is there an existing issue for this?

[X] I have searched the existing issues

Product
Hot Chocolate
Describe the bug
I'm actually unsure whether this is expected behaviors or an elusive bug. Most classes here are auto-generated or defined in external libraries. If it is expected, is there any way to remedy this?
Given a single interface with only method(s) and matching implementation:
    public interface IEncodedString
    {
        string GetValue();
    }

    public class EncodedString : IEncodedString
    {
        /// <summary>
        /// Implementation is irrelavent.
        /// </summary>
        private string Value { get; } = string.Empty;

        public EncodedString(string value)
            => this.Value = value;

        public string GetValue() => this.Value;
    }

and a runtime bind to the String scalar, along with type converters:
builder.BindRuntimeType<IEncodedString, StringType>();
builder.AddTypeConverter<EncodedString, string>(x => x.GetValue());
builder.AddTypeConverter<string, EncodedString>(x => new(x));

then, any sorting done on any object containing IEncodedString makes the project throw, as seen on the log output below.
[UseSorting]
public IEnumerable<Result> GetResult() =>
    Enumerable.Repeat<Result>(new()
    {
        Value = new EncodedString("value")
    }, 10);

Filtering works, but it also creates custom types, instead of using StringFilterObject input objects.
Steps to reproduce
Reproduction repository: https://github.com/maxnatamo/SortInputObjectIssue
Relevant log output
1. InputObject `IHtmlEncodedStringSortInput` has no fields declared. (HotChocolate.Data.Sorting.SortInputType<Umbraco.Cms.Core.Strings.IHtmlEncodedString>)

   at HotChocolate.Configuration.TypeInitializer.EnsureNoErrors()
   at HotChocolate.Configuration.TypeInitializer.CompleteTypes()
   at HotChocolate.Configuration.TypeInitializer.Initialize()
   at HotChocolate.SchemaBuilder.Setup.InitializeTypes(SchemaBuilder builder, IDescriptorContext context, IReadOnlyList`1 types)
   at HotChocolate.SchemaBuilder.Setup.Create(SchemaBuilder builder, LazySchema lazySchema, IDescriptorContext context)
   at HotChocolate.SchemaBuilder.Create(IDescriptorContext context)
   at HotChocolate.SchemaBuilder.HotChocolate.ISchemaBuilder.Create(IDescriptorContext context)
   at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaAsync(ConfigurationContext context, RequestExecutorSetup setup, RequestExecutorOptions executorOptions, IServiceProvider schemaServices, TypeModuleChangeMonitor typeModuleChangeMonitor, CancellationToken cancellationToken)
   at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaServicesAsync(ConfigurationContext context, RequestExecutorSetup setup, CancellationToken cancellationToken)
   at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorNoLockAsync(String schemaName, CancellationToken cancellationToken)
   at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorAsync(String schemaName, CancellationToken cancellationToken)
   at HotChocolate.AspNetCore.Warmup.ExecutorWarmupService.ExecuteAsync(CancellationToken stoppingToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at HumanRise_Umbraco.Program.Main(String[] args) in C:\Users\***\Program.cs:line 6

Additional Context?
The generated schema correctly assumes the String type:
type Query {
  result: [Result!]!
}

type Result {
  value: String!
}

Although, only available when sorting was disabled.

Version
13.4.0

Sorting policies have their own runtime bindings ...
.AddSorting(c => c.Bind...

Be sure to add defaults first

@michaelstaib I ran into this today as well. Could this please be clarified in the documentation for sorting?


AttributeError exception when a request comes back with status 403.

Describe the bug
praw throws an AttributeError exception when a request comes back with status 403.
To Reproduce
Get a 403 response from a request that praw makes.
Expected behavior
praw raises correctly formatted ResponseException(just like it does with 404 responses) instead of AttributeError.
Code/Logs
Traceback (most recent call last):
  File "C:\Users\*\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Users\*\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\*\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\pool.py", line 463, in _handle_results
    task = get()
  File "C:\Users\*\AppData\Local\Programs\Python\Python36-32\lib\multiprocessing\connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
  File "C:\Users\*\AppData\Local\Programs\Python\Python36-32\lib\site-packages\prawcore\exceptions.py", line 49, in __init__
    .format(response.status_code))
AttributeError: 'str' object has no attribute 'status_code'

If I print response before the exception it is a string with the value of "received 403 HTTP response".
System Info
I am running Praw with multiprocessing. Each child process initializes its own praw.Reddit instance.

OS: Windows 10 1903
Python: 3.6
PRAW Version: 6.5.1

Hi I see that threading is your stacktrace. Are you doing something with ThreadPool?
Additionally, this stacktrace doesn't give us any information about where it actually failed in your code. Can you reproduce without threading and include information about what the actual request was that resulted in the 403 body?

Please include the code that led to the error. If it's a threading call, include the function that's called by the thread.

Hey @bboe, I am not sure how to reproduce without threading since I am pretty sure the 403 comes from spamming the API too much.
@PythonCoderAS
def get_all_comments(submission):
    submission.comments.replace_more(limit=None)
    ret = []
    for comment in submission.comments.list():
        ret.append(comment)
    return ret

def process_submission(submission_id: str):
    reddit = praw.Reddit(client_id='placeholder',
                        client_secret='secret',
                        user_agent='my user agent')

    submission = reddit.submission(id=str(submission_id))
    comments = get_all_comments(submission)
    write_submission_and_comments_to_file(submission, comments)

pool = multiprocessing.Pool(processes=55)
while True:
    ids = getIds()
    for id in work_ids:
            responses.append(pool.apply_async(process_submission, (base36.dumps(id), )))
    for r in responses:
            status = r.get()

This is not the actual code, I chopped it down to the basics and so it's more digestible.

First of all you can just return submission.comments.list() directly, no need to loop over it again.
Second, can you add this code to the top of your code?
import logging
logging.basicConfig(level=logging.DEBUG)

I am not sure how to reproduce without threading(multiprocessing)

Unfortunately PRAW doesn't attempt to be threadsafe, so we're going to close this issue. If you can reproduce without using threads then please reply and we'll reopen it.
Thanks for reporting.

@bboe Alright thank you, I thought that using multiprocessing instead of the thread module would solve that issue.

I thought that using multiprocessing instead of the thread module would solve that issue.

Are you explicitly using a threadpool? If so, then that's problematic. If you're using multiprocessing with processes and not threads (confusing, I know), then things should work.

I don't use threading anywhere to my knowledge. I use the multiprocessing.Pool with apply_async just like in the code snippet in one of the previous comments. It does say in the documentation that the Pool is a pool of processes, not threads.
https://docs.python.org/3/library/multiprocessing.html#module-multiprocessing.pool
if I print os.getppid() inside the function which creates a new PRAW instance (def process_submission) the processes are all different. So it is using different processes.
I don't know the internals of multiprocessing or how it forks the process on Windows, so there's probably some shared state somehow?

Oh okay. multiprocessing must internally be using threads to keep track of something. So long as the PRAW code isn't being run across threads, things should be okay. It'd still be ideal to reproduce this code without multiple processes. Or at least can you narrow your code down significantly to the smallest reproducible chunk?

@Majiick https://praw.readthedocs.io/en/latest/getting_started/logging.html
import logging

handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
logger = logging.getLogger('prawcore')
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)

This will let us see what API call caused the error. Place this at top and re-run your file.

Hi @bboe and @PythonCoderAS,
The issue seems to be that pickling custom exceptions in Python is broken. Such is the case in prawcore/exceptions.py. You can see the explanation in https://stackoverflow.com/questions/27993567/custom-exceptions-are-not-raised-properly-when-used-in-multiprocessing-pool
Problem in the code:
class ResponseException(PrawcoreException):
    """Indicate that there was an error with the completed HTTP request."""

    def __init__(self, response):
        """Initialize a ResponseException instance.
        :param response: A requests.response instance.
        """
        self.response = response
        # __init__ receives a string, and later the pickling calls ResponseException(str) which is why we get AttributeError: 'str' object has no attribute 'status_code'
        super(ResponseException, self).__init__(
            "received {} HTTP response".format(response.status_code)
        )

The fix is to do this instead:
super(ResponseException, self).__init__(response)
        self.response = response
        self.e_string = "Message: {}".format('received {} HTTP response'.format(response.status_code))

Code to reproduce:
import multiprocessing
import logging
import base36
import praw
import prawcore

handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
logger = logging.getLogger('prawcore')
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)

def get_all_comments(submission):
    submission.comments.replace_more(limit=None)
    ret = []
    for comment in submission.comments.list():
        ret.append(comment)
    return ret

def process_submission(submission_id: str):  # blob_queue
    reddit = praw.Reddit(client_id='sxBsLztBo0uzcw',
                        client_secret='PQxrg-WlCaThYrm8AYXFmuEhG50',
                        user_agent='my user agent')

    try:
        submission = reddit.submission(id=str(submission_id))
        submission.comments.replace_more(limit=None)
        comments = submission.comments.list()
        return 'success'
    except prawcore.exceptions.NotFound:
        return '404'

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=55)
    while True:
        try:
            pool.apply_async(process_submission, ('lghtj', ))
        except prawcore.exceptions.Forbidden as e:
            print(e)

@Majiick i read your code and it seems that basically I have to set request to a value of None. However, I think you can change your code to use a ThreadPool, since most of the code's time is spent on network. Verify that a ThreadPool does not not cause the error.

@Majiick i read your code and it seems that basically I have to set request to a value of None. However, I think you can change your code to use a ThreadPool, since most of the code's time is spent on network. Verify that a ThreadPool does not not cause the error.

Using a ThreadPool would cause other issues since Praw is not thread-safe, is that not correct?

@Majiick it works perfectly fine as long as each thread makes Th wit own Reddit.

@Majiick it works perfectly fine as long as each thread makes their own Reddit.

The documentation says to stick with multiple processing instead of threads, but I will try with threads.
https://praw.readthedocs.io/en/latest/getting_started/multiple_instances.html
In theory having a unique Reddit instance for each thread should work. However, until someone perpetually volunteers to be PRAW’s thread safety instructor, little to no support will go toward any PRAW issues that could be affected by the use of multiple threads. Consider using multiple processes instead.

The problem with multiple threads is the access of shared objects. In theory, as long as no objects are shared, or shared as strings, there shouldn’t be any problem.

Hi @PythonCoderAS,
I've ran it for a while with multiple threads and it seems to be doing fine (and takes up much less memory!).
Anyway, the workaround is to use threads but the multiprocessing is still broken.

The best way to resolve this is to include a note stating that Reddit instances should never be shared and all other instances should be converted to strings before sharing. My export PR can come in handy for this.

@Majiick upon further testing it's only found in multiprocessing Pools. multiprocessing.Process works normally.
Code
import dataclasses
import multiprocessing
import threading
import time

class MyError(Exception):
    pass

@dataclasses.dataclass
class MyItem:
    prop: object

class MyArgException(MyError):
    def __init__(self, arg):
        print("Arg Type: {}, Arg: {}".format(type(arg), arg))
        print("*"*10)
        time.sleep(1)

        super().__init__("Arg: {}".format(arg.prop))
        self.arg = arg

def main(*args):
    raise MyArgException(MyItem(5))

proc = multiprocessing.Process(target=main, args=(5,))
proc.start()
# Process, runs normally
time.sleep(5)
print("#"*25)
pool = multiprocessing.Pool(5)
thread = threading.Thread(target=pool.map, args=(main, [5]))
thread.start()
# Pool, fails
time.sleep(5)
print("#"*25)
# Main thread
main(5)

Output
Arg Type: <class '__main__.MyItem'>, Arg: MyItem(prop=5)
**********
Process Process-1:
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "~/Library/Preferences/PyCharm2019.3/scratches/scratch_3.py", line 23, in main
    raise MyArgException(MyItem(5))
MyArgException: Arg: 5
#########################
Arg Type: <class '__main__.MyItem'>, Arg: MyItem(prop=5)
**********
Arg Type: <class 'str'>, Arg: Arg: 5
**********
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/pool.py", line 470, in _handle_results
    task = get()
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())
  File "~/Library/Preferences/PyCharm2019.3/scratches/scratch_3.py", line 19, in __init__
    super().__init__("Arg: {}".format(arg.prop))
AttributeError: 'str' object has no attribute 'prop'

#########################
Arg Type: <class '__main__.MyItem'>, Arg: MyItem(prop=5)
**********
Traceback (most recent call last):
  File "~/Library/Preferences/PyCharm2019.3/scratches/scratch_3.py", line 34, in <module>
    main(5)
  File "~/Library/Preferences/PyCharm2019.3/scratches/scratch_3.py", line 23, in main
    raise MyArgException(MyItem(5))
__main__.MyArgException: Arg: 5

Me and @jarhill0 have identified a solution to the error, but it is very cumbersome to implement. Basically, this code:
class ResponseException(PrawcoreException):
    """Indicate that there was an error with the completed HTTP request."""

    def __init__(self, response):
        """Initialize a ResponseException instance.
        :param response: A requests.response instance.
        """
        self.response = response
        super(ResponseException, self).__init__(
            "received {} HTTP response".format(response.status_code)
        )

becomes
class ResponseException(PrawcoreException):
    """Indicate that there was an error with the completed HTTP request."""

    def __init__(self, response):
        """Initialize a ResponseException instance.
        :param response: A requests.response instance.
        """
        self.response = response
        if isinstance(response, str):
            super(ResponseException, self).__init__(response)
        else:
            super(ResponseException, self).__init__(
                "received {} HTTP response".format(response.status_code)
            )

However, this is hard to implement, and as it is an edge case (Multiprocessing Pool) with a very easy solution, (use Thread Pool), this will not be fixed. Documentation will be changed to reflect this.

Note: If anyone ever wants to attempt to fix this in the future, as of 23-02-2020, you will need to replace these exceptions:

[ ] prawcore.exceptions.RequestException,
[ ] prawcore.exceptions.ResponseException,
[ ] prawcore.exceptions.OAuthException,
[ ] praw.exceptions.APIException,
[ ] prawcore.exceptions.BadJSON,
[ ] prawcore.exceptions.BadRequest,
[ ] prawcore.exceptions.Conflict,
[ ] prawcore.exceptions.Forbidden,
[ ] prawcore.exceptions.InsufficientScope,
[ ] prawcore.exceptions.InvalidToken,
[ ] prawcore.exceptions.NotFound,
[ ] prawcore.exceptions.Redirect,
[ ] prawcore.exceptions.ServerError,
[ ] prawcore.exceptions.SpecialError,
[ ] prawcore.exceptions.TooLarge,
[ ] prawcore.exceptions.UnavailableForLegalReasons,
[ ] praw.exceptions.WebSocketException


Linux Port: BufferManagement

The BufferManagement component was the first component I ported and tested in Linux because it has a limited amount of dependencies to other components in the tree.
There is some amount of code changes outside of the BufferManagement component. In order for the component to successfully build in Linux, it must not depend on include files that use things defined in FreeRTOS headers. This is why I created the "rina_buffers.h" file in the IPCP component, and ARP826_defs.h in the ARP826 component. Those headers have the definition required for BufferManagement to compile without include FreeRTOS specific headers.

Pull request done: #36


Reopen saved links in new tabs

Allow clicking to reopen saved links in a new tab

Duplicate of #11


index out of range in feature extraction code

# Reshaped the Features to the acurrate size
reshaped_hog_Array = np.reshape(
    hogArray_np, (hogArray_np.shape[0], hogArray_np.shape[2]))

here the dimension of hogArray_np is NxN and 'hogArray_np.shape[2]' this will be out of range,isnt it?

The index problem is fixed. Check all ok. Thanks for figuring it out. :)


Create regression test for #49260

Coming from: https://github.com/Expensify/App/issues/49260
Prerequisites:

Create a WS and add two employees to it.

Open NewExpensify app.
Log in with a WS admin account.
Go to the account settings.
Go to the Troubleshoot menu.
Click on Clear cache and restart to clear the cache.
Go back to the LHN Inbox.
Verify that members' room names should be updated and display the room name in LHN after the cache is deleted, instead of showing default Chat Report name.

@m-natarajan Looks like a good candidate for Edge case

Going to close this one as low value since the troubleshooting tools don't have the priority to be included in the regression suite. Please reopen if you disagree.


As a medical clinic receptionist, I want to request for a specific doctor for consultation

So that I can satisfy patient need.

what's the difference between this and #36 ?


Use correct regex for CVE

Per the CVE JSON schema we had not the correct regex.
We4 now use the official regex from the CVE schema

@TG1999 could you review and merge? Thanks!


Add updated images for VMware

Add updated images for VMware chaos faults
Signed-off-by: Smriti S<EMAIL_ADDRESS>

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


Unable to display current subscribers

Hello! so i was trying out this cool API and when i tried (and trust me i've tried a alot) i get this error, it is completely identicle with the one in the readme file and i can't seem to figure out why
File "c:\Users\matty\Desktop\Bonthi Bot\bot.py", line 13, in <module>
    print(pewdiepie_channel.get_subscriber_count())
  File "C:\Users\matty\AppData\Local\Programs\Python\Python38-32\lib\site-packages\socialblade\__init__.py", line 171, in get_subscriber_count
    return int(
ValueError: invalid literal for int() with base 10: ''

Thanks for opening this issue!
I have now fixed this (see commit).
Now you'll only need to update using pip: `pip install --upgrade socialblade' and it should update to the latest hotfix (<IP_ADDRESS>)

Uhh i'll keep this open until you respond if it worked.

Fixed the forst one haha now onto this thing here:
cloudscraper.exceptions
.CloudflareCode1020: Cloudflare has blocked this request (Code 1020 Detected).

@AUTISTjens seems to be a problem with cloudflare, or it could be you are making excessive requests so cloudflare blocks it.
If you have a dynamic IP restart your router

I am running the program on a VPS so i wouldn't be able to, and i am only calling it once.

Well then I'll have to invistigate that. Tomorrow bcuz am tired

Take your time man, i am in no hurry :)

OK so i just googled it, and apparently cloudflare error code 1020 means you violated the server's firewall rule.
https://community.cloudflare.com/t/community-tip-fixing-error-1020-access-denied/66439
it something on socialblade's end, and it has to something with the fact you're running it on a VPS because it doesn't occur otherwise from what i've seen.

I am also curious as to what you're doing with this library, if you want to share :)

Hi sorry the late responce.. i am using it for my python coded discord bot.. i want to make a command that tells people my friends subscriber count .. it is a pretty staright forward thing and i found this unoffcial API and thought it must be easier than the YouTube API to get subscriber data from

Closing for now


[New game]: shooting the falling target game

🎮 Game Request
Game logic and basic description
i want to add this shooting the falling target game you have to shhot the target and score as high as possible
Point down the features
Game points
https://github.com/kunjgit/GameZone/assets/120590200/c94d9425-c22b-4aa5-8c27-3b9c2d80c296
Select program in which you are contributing
Gssoc
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

./assign

Hey @abansal15 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @abansal15 👋!
@kunjgit here,
Hope you are doing extremely well 😇
It's confirmed 🥳, GameZone is taking part in hacktoberfest and ready to have another 💥
Ready to have some amazing contributions once again also thank you for you support in GSSoC23 you have took us on top 5 ❤🔥
if you still haven't joined us join us on Discord
See you soon 😊

Hey @abansal15 👋!
@kunjgit here,
Hope you are enjoying this hacktober 😀
We are excited to share that we are opening issue from our side where you will be going to add games on our website 🚀
Work on this issue 🔥
and help us building GameZone 💗
if you still haven't joined us join us on Discord
See you soon 😊

Hello @abansal15, Time's up!⏰
Sorry for closing your issue!
But it's more than a week since we haven't received anything from your side 😢 .
Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥
All the best! 🚀
Happy Hacking! 💗

Hey @abansal15 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


capacitor 5 Error: "NativeAudio" plugin is not implemented on android

Describe the bug
Hello after update my project to cap 5 and update "Cap-go/native-audio" to 6.0.8 I get this error on  when call NativeAudio any method
I'm sure about cap sync and cap update
This problem only happen when we publish the app on play store  with aab build ( akp not tested in play store because tehere is no way anymore for upload apk in play store )
here is  part of my package.json
"@capacitor/android": "^5.0.4",
"@capacitor/app": "^5.0.2",
"@capacitor/core": "^5.0.4",
"@capacitor/ios": "^5.0.4",
"@capgo/native-audio": "^6.0.7",
"@ionic/core": "^7.0.9",
"@ionic/vue": "^7.0.9",

This problem only happen when we publish the app on play store.

This problem only happen when we publish the app on play store.

Just published an internal test application using aab through playstore and while first seemingly i had issues with the plugin (local apk to device worked, but not the published aab) i forgot the detail that the propagation to the store isn't instant.
Once the binary is uploaded, it can take some time until the new version shows up as available/update.
The error doesn't show up for me , looks all good so far, using:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Make sure that the app You are testing/uploading to the store is the same version that works as apk.

That's odd, my app using latest version and it working normally. You ensure everything work, make sure you have rebuild the source.
ng build && npx cap copy && npx cap sync


Update discord.py version to 1.4.1

Description
Update the discord.py version to 1.4.1, and also put the voice extra back in
Reasoning
It currently gets the package straight from GitHub,
https://github.com/python-discord/seasonalbot/blob/da468c51502c88c00687e2869f05a1a46c715e45/Pipfile#L10
which was necessary to allow for usage of AllowedMentions before it was released, but wasn't ideal. Now that the new version has been released I believe this is no longer necessary. Currently it also doesn't include the voice extra which is required for the .spookysound command, so this change should fix that.
Proposed Implementation
Change the line in the pipfile to discord-py = {extras = ["voice"], version = "~=1.4.1"} and lock it. I think that's all that needs to be done.
Would you like to implement this yourself?

[x] I'd like to implement this feature myself
[x] Anyone can implement this feature

(I don't mind)

i wnt to do this :)


Trouble getting custom json logs to load into siem

I'm trying to load some custom json logs into siem, but not able to get them to import due to I believe the format of the json file.
My file is structured like this:
[ { "String1":Value1,"String2":"Value2","String3":"Value3" }, { "String1":Value1,"String2":"Value2","String3":"Value3" } ]
Due to the square brackets it throws this error:
[ERROR] AttributeError: 'list' object has no attribute 'keys
If I remove the start and end brackets, which I can do at the source it throws this error:
[ERROR] JSONDecodeError: Expecting value: line 1 column 2488 (char 2487)
It only seems to work if my json file is structured with events on separate lines, so like this:
{ "String1":Value1,"String2":"Value2","String3":"Value3" }
{ "String1":Value1,"String2":"Value2","String3":"Value3" }
Are there any settings in the user.ini file or the parser I can add to combat this? Or will I have to modify my source json?
Thanks.

Managed to workaround this by modifying the source to remove the comma separation, and just leave a space between the json events. This seems to work and the logs are now be loaded in successfully.

i have the same json structure without commas, but how to write the user.ini for it @jtwp if you could please share it
should i write a regex for it or via normally accessing the json through the dot notation?

I kept the user.ini as normal, just pointing it to the json file. I ended up just changing the json structure at the source, well using Lambda to do a 'replace' on the file to get it into format I needed before ingesting it into OpenSearch.


Columns width gets too small

Hello, CSS newbie here.
When I build a row with e.g. 3 columns and resize down the width of my window, the columns width becomes too small. I would rather have my column stack earlier on top on each other and conserve a minimum width.
When I set a min-width for my columns, I sort of get that behavior, since the columns won't shrink in width too much, but they lose their alignment.
Is there a way to do that? i.e. to have 3 columns at full window size, which don't shrink or lose their alignment when the window width gets smaller, but stack responsively right away?
Thanks!

Amazium does that out-of-the-box, while I've been hacking for hours on Skeleton to get it to work.


Port for 1.19.2?

Really loves this mod! It's great for modpacks and just for quality of life. Would be nice if it had a port for 1.19-!

Hi,
You should test whether the current jar works on this version.
I marked the mod for the range 1.19.4-1.20.4 because it's the only versions I tested. But since the same jar already works for all of them, it will likely work for other nearby versions of Minecraft.
The current jar doesn't declare any hard dependency on >=1.19.4, so you should be able to test this just by installing it normally.

Oh, ok! Thanks!

Yep, works fine on 1.19.2 from what I can see. Sorry for bothering about that.

No problem, I know it's not usual for other mods to handle multiple versions that way. Even I only do this for the simplest ones.


Support for Windows platform (via PowerShell)

This PR resolves #23.
I've gone through and made some changes to suit complete compatibility with the most coarse variety of Windows shell - PowerShell. A lot of customers of my employer who utilize pygmy are stuck with Windows which currently has a fragmented toolset which isn't as streamlined or as easy as any variety of Linux including Darwin.
Happy to hear feedback and make adjustments as recommended
The main issues handled included the resolver and SSH keys.
This has been thoroughly tested by myself and another over the past couple of days and I can organize more tests and/or testers if needed.
Note my hosts file is unchanged on both WSL and Windows in testing this change.
Resolver
The main issue was providing a suitable and able alternative to the resolver used for Linux and Mac. Applying a common interface copied from the Osx resolver helped achieve this. A PowerShell registry change was needed in this, so the commands were contained in function return values and a PowerShell abstraction layer was imposed to centralize the API for this in the same way as Shell and Bash.
SSH Keys
A simple checker to introduce two new variables for use with the add-key process which copies functionality conditionally from amazeeio/amazeeio-docker-windows.
https://github.com/amazeeio/amazeeio-docker-windows/blob/master/ssh-key-add.cmd#L15

Please approve this request, it's needed for people using docker in a windows environment

I'll second that, we have a number of folks interested in using Windows.

supported in github.com/pygmystack/pygmy now


Robot has no task but received path to move

when server start and add robot success, their is no task but console logs WARN regularly like :
`

[schedule_visualizer_node-4] [WARN] [1672669567.111044163] [schedule_data_node]: Failed to update using patch for DB version 240 (mirror version: none, patch base: 239); requesting new update
[schedule_visualizer_node-4] [INFO] [1672669567.111071838] [schedule_data_node]: [rmf_traffic_ros2::MirrorManager::request_update] Requesting changes for query ID [1] since beginning of recorded history

`
and then received new path with current point
log details bellow:
`

[fleet_adapter-14] 2023-01-02 14:19:04.941 line76 INFO Received UpdateRobotState: name: "glRobot2"
[fleet_adapter-14] task_id: "6"
[fleet_adapter-14] battery_percent: 100
[fleet_adapter-14] location {
[fleet_adapter-14]   x: 20.063438309814579
[fleet_adapter-14]   y: -13.9996413902849
[fleet_adapter-14]   approach_speed_limit: 0.5
[fleet_adapter-14]   level_name: "L1"
[fleet_adapter-14] }
[fleet_adapter-14] mode {
[fleet_adapter-14]   mode_request_id: 2
[fleet_adapter-14] }
[fleet_adapter-14] sequence: 1
[fleet_adapter-14]
[fleet_adapter-14] 2023-01-02 14:19:05.949 line76 INFO Received UpdateRobotState: name: "glRobot1"
[fleet_adapter-14] task_id: "6"
[fleet_adapter-14] battery_percent: 100
[fleet_adapter-14] location {
[fleet_adapter-14]   x: 18.461529406570712
[fleet_adapter-14]   y: -20.885378778243371
[fleet_adapter-14]   approach_speed_limit: 0.5
[fleet_adapter-14]   level_name: "L1"
[fleet_adapter-14] }
[fleet_adapter-14] mode {
[fleet_adapter-14]   mode_request_id: 2
[fleet_adapter-14] }
[fleet_adapter-14] sequence: 1
[fleet_adapter-14]
[fleet_adapter-14] 2023-01-02 14:19:05.956 line76 INFO Received UpdateRobotState: name: "glRobot2"
[fleet_adapter-14] task_id: "6"
[fleet_adapter-14] battery_percent: 100
[fleet_adapter-14] location {
[fleet_adapter-14]   x: 20.063438309814579
[fleet_adapter-14]   y: -13.9996413902849
[fleet_adapter-14]   approach_speed_limit: 0.5
[fleet_adapter-14]   level_name: "L1"
[fleet_adapter-14] }
[fleet_adapter-14] mode {
[fleet_adapter-14]   mode_request_id: 2
[fleet_adapter-14] }
[fleet_adapter-14] sequence: 1
[fleet_adapter-14]
[schedule_visualizer_node-4] [WARN] [1672669146.598111625] [schedule_data_node]: Failed to update using patch for DB version 49 (mirror version: none, patch base: 48); requesting new update
[schedule_visualizer_node-4] [INFO] [1672669146.598268480] [schedule_data_node]: [rmf_traffic_ros2::MirrorManager::request_update] Requesting changes for query ID [1] since beginning of recorded history
[fleet_adapter-14] [WARN] [1672669146.598355878] [GingerLite_fleet_adapter]: Failed to update using patch for DB version 49 (mirror version: none, patch base: 48); requesting new update
[fleet_adapter-14] [INFO] [1672669146.598494289] [GingerLite_fleet_adapter]: [rmf_traffic_ros2::MirrorManager::request_update] Requesting changes for query ID [1] since beginning of recorded history
[fleet_adapter-14] [INFO] [1672669146.598771060] [GingerLite_command_handle]: Received new path for glRobot2
[fleet_adapter-14] follow_new_path for glRobot2 with PlanId 6
[fleet_adapter-14] Interrupting glRobot2 (latest cmd_id is 6)
[fleet_adapter-14] Issuing cmd_id for glRobot2: 7
[fleet_adapter-14] 2023-01-02 14:19:06.607 line116 INFO DedicatedServerClient: robot_navigate, path_info="{\n  "robot_name": "glRobot2",\n  "fleet_name": "GingerLite",\n  "task_id": "7",\n  "locations": [\n    {\n      "t": {\n        "sec": 0,\n        "nanosec": 0\n      },\n      "x": 20.06343830981458,\n      "y": -13.9996413902849,\n      "level_name": "L1",\n      "yaw": 0.0,\n      "obey_approach_speed_limit": false,\n      "approach_speed_limit": 0.0,\n      "index": "0"\n    },\n    {\n      "t": {\n        "sec":<PHONE_NUMBER>,\n        "nanosec": 605540957\n      },\n      "x": 20.06343830981458,\n      "y": -13.9996413902849,\n      "level_name": "L1",\n      "yaw": 0.0,\n      "obey_approach_speed_limit": false,\n      "approach_speed_limit": 0.0,\n      "index": "0"\n    }\n  ]\n}"
[rmf_traffic_schedule-1] [INFO] [1672669146.607942722] [rmf_traffic_schedule_primary]: [ScheduleNode::update_mirrors] Sending remedial update starting from the beginning going to 49 for query 1
[fleet_adapter-14] 2023-01-02 14:19:06.611 line331 INFO FleetManager: Sending navigate request for robot_name: glRobot2: cmd_id: 7, response :
[fleet_adapter-14] 2023-01-02 14:19:06.612 line76 INFO RobotAPI: navigate_rsp= {
[fleet_adapter-14]     "success": true,
[fleet_adapter-14]     "msg": ""
[fleet_adapter-14] }
[fleet_adapter-14] [INFO] [1672669146.662436626] [GingerLite_command_handle]: Received new path for glRobot1
[fleet_adapter-14] follow_new_path for glRobot1 with PlanId 6
[fleet_adapter-14] Interrupting glRobot1 (latest cmd_id is 6)
[fleet_adapter-14] Issuing cmd_id for glRobot1: 7
[fleet_adapter-14] 2023-01-02 14:19:06.665 line116 INFO DedicatedServerClient: robot_navigate, path_info="{\n  "robot_name": "glRobot1",\n  "fleet_name": "GingerLite",\n  "task_id": "7",\n  "locations": [\n    {\n      "t": {\n        "sec": 0,\n        "nanosec": 0\n      },\n      "x": 18.461529406570712,\n      "y": -20.88537877824337,\n      "level_name": "L1",\n      "yaw": 0.0,\n      "obey_approach_speed_limit": false,\n      "approach_speed_limit": 0.0,\n      "index": "0"\n    },\n    {\n      "t": {\n        "sec":<PHONE_NUMBER>,\n        "nanosec": 663475043\n      },\n      "x": 18.461529406570712,\n      "y": -20.88537877824337,\n      "level_name": "L1",\n      "yaw": 0.0,\n      "obey_approach_speed_limit": false,\n      "approach_speed_limit": 0.0,\n      "index": "0"\n    }\n  ]\n}"
[fleet_adapter-14] 2023-01-02 14:19:06.668 line331 INFO FleetManager: Sending navigate request for robot_name: glRobot1: cmd_id: 7, response :
[fleet_adapter-14] 2023-01-02 14:19:06.669 line76 INFO RobotAPI: navigate_rsp= {
[fleet_adapter-14]     "success": true,
[fleet_adapter-14]     "msg": ""
[fleet_adapter-14] }
[fleet_adapter-14] 2023-01-02 14:19:06.965 line76 INFO Received UpdateRobotState: name: "glRobot1"
[fleet_adapter-14] task_id: "7"
[fleet_adapter-14] battery_percent: 100
[fleet_adapter-14] location {
[fleet_adapter-14]   x: 18.461529406570712
[fleet_adapter-14]   y: -20.885378778243371
[fleet_adapter-14]   approach_speed_limit: 0.5
[fleet_adapter-14]   level_name: "L1"
[fleet_adapter-14] }
[fleet_adapter-14] mode {
[fleet_adapter-14]   mode_request_id: 2
[fleet_adapter-14] }
[fleet_adapter-14] sequence: 1
[fleet_adapter-14]
[fleet_adapter-14] 2023-01-02 14:19:06.966 line572 INFO FleetManager: Detecting completed request for 7:
[fleet_adapter-14] 2023-01-02 14:19:06.972 line76 INFO Received UpdateRobotState: name: "glRobot2"
[fleet_adapter-14] task_id: "7"
[fleet_adapter-14] battery_percent: 100
[fleet_adapter-14] location {
[fleet_adapter-14]   x: 20.063438309814579
[fleet_adapter-14]   y: -13.9996413902849
[fleet_adapter-14]   approach_speed_limit: 0.5
[fleet_adapter-14]   level_name: "L1"
[fleet_adapter-14] }
[fleet_adapter-14] mode {
[fleet_adapter-14]   mode_request_id: 2
[fleet_adapter-14] }
[fleet_adapter-14] sequence: 1
[fleet_adapter-14]

`

See https://github.com/open-rmf/rmf/discussions/296


Missing the SVG icons

Bug Description
After installing the Buildamic addon through composer, there seem to be a few assets that do not load or are missing. I tried publishing all buildamic things with vendor:publish but that didn’t do anything. Are we missing some publishables, or did I forget to set something up? In the console I get the following error:

How to Reproduce

Install a new statamic project
composer require handmadeweb/buildamic
Navigate to a blueprint, and add a field.
The Buildamic SVG for the field type is missing

alternatively:

Install a new statamic project
composer require handmadeweb/buildamic
Add a buildamic field to a page blueprint (with a simple text field for example).
Now create a new page
Add a section, and edit the settings of this section. Notice that the text alignment icons are missing. The same is for row settings, and field settings.

Extra Detail

Environment
Statamic 3.2.2 Pro
Laravel 8.58.0
PHP 8.0.6
edalzell/blade-directives 3.5
handmadeweb/buildamic dev-main

Thanks Jelle,
I have defined an icon for the Buildamic field type and changed the alignment icons to use the burger menu from Statamic's svg's
https://github.com/HandmadeWeb/buildamic/commit/bdf9b4b130f310600210522b11529e2a1d2398a5

@sliver37 do you have any changes?

@michaelr0 The buildamic icon is fixed, however for the text alignment right now it's not clear that it's left-aligned, center-aligned or right-aligned right now.
See for example (old school) Word:

https://github.com/HandmadeWeb/buildamic/commit/59bbd9845110b42f4f14cb2881e3ff5b6281663b and https://github.com/HandmadeWeb/buildamic/commit/63e5b59d3f81567a2ab8e3cfc762375420ec9ebf should fix those up.

Thanks! It's fixed.


Working implementation of visitor and printer

Built upon PR #8
Details
visitor

visitor is used / will be used by printer and validator
Ported from graphql-js visit()
Walks through an AST using a depth first traversal, calling visitor's Enter function when entering a node and visitor's Leave function when leaving a node
Visitor's functions

type VisitFunc func(p VisitFuncParams) (action string, result interface{})
The value of returned action string defines the behaviour of the visit function upon return

const visitor.ActionNoChange

No changes to node, regardless of result interface{} returned

const visitor.ActionBreak

Stop traversal of tree, ignore result interface{} returned

const visitor.ActionSkip

Skip traversal of sub-tree, ignore result interface{} returned

const visitor.ActionUpdate

Update the value of current node with value of returned result interface{}. Return result = nil  to remove node.

See printer's printDocASTReducer for working usage of visitor

printer

printer is used to transform/reduce an ast.Node into a string.
Uses visitor and pre-defined visitor.VisitorOptions to traverse AST and reduce each node to a string (printDocASTReducer)
Inverse of parser (which transforms string into an ast.Node)

// pseudo-code
query := `{ field }`
astDoc := parse(query)
printed := print(astDoc)
assert(query == printed)

Misc

Added language/parser/schema_parser_test.go test to complete port of all graphql-js/language/__tests__/* tests

Test
$ go build && go test ./...
ok  	github.com/chris-ramon/graphql-go	0.027s
?   	github.com/chris-ramon/graphql-go/errors	[no test files]
ok  	github.com/chris-ramon/graphql-go/executor	0.097s
?   	github.com/chris-ramon/graphql-go/language/ast	[no test files]
?   	github.com/chris-ramon/graphql-go/language/kinds	[no test files]
ok  	github.com/chris-ramon/graphql-go/language/lexer	0.017s
?   	github.com/chris-ramon/graphql-go/language/location	[no test files]
ok  	github.com/chris-ramon/graphql-go/language/parser	0.034s
ok  	github.com/chris-ramon/graphql-go/language/printer	0.042s
?   	github.com/chris-ramon/graphql-go/language/source	[no test files]
ok  	github.com/chris-ramon/graphql-go/language/visitor	0.016s
?   	github.com/chris-ramon/graphql-go/testutil	[no test files]
ok  	github.com/chris-ramon/graphql-go/types	0.018s
?   	github.com/chris-ramon/graphql-go/validator	[no test files]

Amazing @sogko!, I am so glad for ur great work, I am continue reviewing the previos pr, looking very good so far, as soon as I am done reviewing I will comment on it, then next I will reviewing this one.
Again thanks for ur amazing work on this lib :star2:.

Thanks for even taking the time to look into this 👍🏻
If you want to feel more comfortable and make some changes to my PRs directly, you can create a separate branch (develop branch for e.g.) and I can re-submit the PRs into that instead of the master branch.
You can then mess around with it without worrying about committing too much to my PRs.
And once you feel comfortable with the state of the develop branch, you can safely merge it back to master for public use.

Thanks for feedback @sogko :+1: , I think we should keep going forward to merging directly to master.
We have good quantity of test covering lib which give us enough confidence to do so, besides that I am going to add converge with coveralls.io so I think we are fine.


Installing an older version

Hi, may I please know how I can install 0.24.1 on Centos 7? I don't wanna install the latest version but that version, please.

Could you download the older release in source code and compile?

 I'm sorry for the trouble


Code Block not displayed correctly in WYSIWIG editor

Describe the bug
I've installed Bookstack with the Ubuntu 18.04 Installation Script.
I then created a book and wanted to add a page with a configuration file with the code block format.
In the editor, this code block isn't displayed well. After saving the page it shows it correctly. Only not in the edit mode.
Expected behavior
The code block should be shown correctly also in the edit mode.
Screenshots
edit mode

page saved

Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): BookStack v0.28.2
PHP Version: ?
Hosting Method (Nginx/Apache/Docker): Apache

Hi @MigliS,
It looks like none of the correct styles are loading within the editor.
This could happen for a number of reasons.
Please could you open the browser development tools and see if any errors are logged when you open the page editor?
If you're not sure on the above, let me know and I'll guide you through it.

Hi @ssddanbrown
Alright. I've got the following logs. If you need something more tell me.

I think it occures because I'm using Cloudflare and a nginx reverse proxy where the traffic goes trough.

Hi @MigliS,
Can you double check you have set the APP_URL option in your .env file, and that it is not commented out with a #, and that the value of this option is set to the URL you're using to access BookStack (With the right protocol - https/http)

Hi @ssddanbrown
Thank you, that was the point. I actually had no idea what to do.
Now everything works fine. Or let me say the things I'm using ;)
Thank you for your quick help!


Keep the refresh token when updating auth tokens

When adding slambdas, I noticed that authentication was failing periodically and needed new tokens to make it work. I suspected it was the tokens expiring and not refreshing automatically, which turned out to be true. The root cause was me overwriting the refresh token, so refreshing the access token failed. This PR just fixes that so the refresh token is preserved after getting a new access token.

LGTM 👍


Chaining of Monitors to use Detector Triggers in Bucket Level Monitors

@eirsep

Being tracked in #219

{
  "type": "detector",
  "detector_type": "s3",
  "name": "s3access_detector",
  "enabled": true,
  "createdBy": "chip",
  "schedule": {
    "period": {
      "interval": 1,
      "unit": "MINUTES"
    }
  },
  "inputs": [    {
      "input": {
        "description": "s3access detector for security analytics",
        "indices": [
          "s3"
        ],
        "custom_rules": [
        ],
        "pre_packaged_rules": [
          {
            "id": "0f6c1bf5-70a5-4963-aef9-aab1eefb50bd"
          }
        ]
      }
    }

  ],
  "triggers": [
    {
      "ids": [
        "0f6c1bf5-70a5-4963-aef9-aab1eefb50bd"
      ],
      "types": [],
      "tags": [
        "attack.exfiltration"
      ],
      "severity": "1",
      "actions": [{
          "id": "hVTLkZYzlA",
          "destination_id": "6r8ZBoQBKW_6dKriacQb",
          "subject_template": {
            "source": "Detector {{ctx.detector.name}} just entered alert status",
            "lang": "mustache"
          },
          "name": "hello_world",
          "throttle_enabled": false,
          "message_template": {
            "source": "Detector {{ctx.detector.name}} just entered alert status. Please investigate the issue.\n - Trigger: {{ctx.trigger.name}}\n - Severity: {{ctx.trigger.severity}}",
            "lang": "mustache"
          },
          "throttle": {
            "unit": "MINUTES",
            "value": 108
          }
        }
      ],
      "id": "8qhrBoQBYK1JzUUDzH-N",
      "sev_levels": [],
      "name": "test-trigger"
    }
  ]
}

title: High DNS Bytes Out
id: 0f6c1bf5-70a5-4963-aef9-aab1eefb50bd
status: test
description: High DNS queries bytes amount from host per short period of time
author: Daniil Yugoslavskiy, oscd.community
date: 2019/10/24
modified: 2022/10/09
tags:
    - attack.exfiltration
    - attack.t1048.003
logsource:
    category: dns
detection:
    selection:
        query: '*'
    timeframe: 1m
    condition: selection | sum(question_length) by src_ip > 300000
falsepositives:
    - Legitimate high DNS bytes out rate to domain name which should be added to whitelist
level: medium

{
  "type": "monitor",
  "name": "alert-demo-6",
  "monitor_type": "bucket_level_monitor",
  "enabled": true,
  "schedule": {
    "period": {
      "interval": 1,
      "unit": "MINUTES"
    }
  },
  "inputs": [
    {
      "search": {
        "indices": [
          "sample-http-responses"
        ],
        "query": {
          "size": 1,
          "query": {
            "match_all": {}
          },
          "aggs": {
            "question_length_sum": {
              "terms": {
                "field": "src_ip"
              },
              "aggs": {
                "question_length": {
                  "sum": {
                    "field": "question_length"
                  }
                }
              }
            }
          }
        }
      }
    }
  ],
  "triggers": [
    {
      "bucket_level_trigger": {
        "name": "trigger-demo-6",
        "severity": "1",
        "condition": {
          "buckets_path": {
            "question_length": "question_length"
          },
          "parent_bucket_path": "question_length_sum",
          "script": {
            "source": "params.question_length > 300000",
            "lang": "painless"
          }
        },
        "actions": []
      }
    }
  ]
}

in a given sigma rule     condition: selection | sum(question_length) by src_ip > 300000
Bucket level monitor query can only do the aggregation part of sigma rule.. in given example it would return the results/buckets for selection | sum(question_length)
The trigger condition helps filter buckets whose value is >30000
Hence the bucket level monitor cannot produce alerts when the full rule is satisfied as we are still left only with the buckets matching the conditions.
IF we use composite monitors
We can used chained findings to feed the findings(each single doc matching the sigma rule condition) into a match_all doc level monitor and provide alerts correctly.
The added advantage being that even sigma rules containing aggregations would produce alerts in same manner as other sigma rules - via a doc level monitor surfacing individual documents.


standardize event pages

standardize event page view for both admin and volunteer under one file in "src/screens/Events"
if we want to standardize all of event listings, will need to add homepage event view into this file, which currently uses a custom EventManager file for the volunteer's homepage
resolves #166

Looks great!
Two small things:

For the volunteer view Event Calendar page, it'd be great to have some paddings above the event list.

The event list on the volunteer view home page should also have the same format.

This looks awesome!


Add progress-checking to submission nav

Prevents people from skipping ahead farther than they've clicked next buttons for. Adds disabled attribute to links in submission nav that have not been reached yet in the workflow. Fixes https://github.com/OA-PASS/pass-ember/issues/254.

LGRTM


GitHub Action, publishing package to NuGet

Opening to track adding a GitHub Action to build and test the repository.
Ideally, we also want to publish the package to NuGet — whether nightly builds, or just tags.

@radu-matei does that mean this ticket should be closed? I was just perusing the issue list to see if there was anything I could help out with.


Fixes for FOREST mode

Currently Bela won't load most views due to a dependency on the Bonsai column families. This is a fairly naive fix to limit the scope to Bonsai when BONSAI is detected in the database. In FOREST mode, some functionality may still not work, but at least it loads the views now.

Only load Bonsai-specific menu items is database is BONSAI
Refactor to use BelaContext instead of StorageProviderFactory in most places
BelaContext now shares the DataStorageFormat and we guard the creation of the BonsaiWorldStateArchive - it is just null for FOREST, however I don't think it is used until we start using the TransactionTraceBrowser.

LGTM, comments are not blockers since this should be strictly better than the current support for forest


Update yansi to 0.5

Rocket itself depends on yansi 0.5, so this eliminates having multiple
versions in the dependency tree, and probably shaves a second off of a
clean build.

Apologies for the months long delay! Merged in 30f51a2175e53e18d5268f074af315c40c6bfd6b.


1.0.4 on npm?

Any chance of getting 1.0.4 pushed to npm as well? I need to use the setProperties function for an existing app that I am transitioning from Bower to npm for the front-end, yet only 1.0.1 is available on npm. If it could get pushed, that would be greatly appreciated!
Thanks!

I see now that this is likely related to annotorious itself not being available past 0.6.3-a on npm, rather than angular-annotorious...

Hi,
I have published the latest versions in NPM.
Hope that helps ;)


Feature Request: Periodic Action (enables fzf to be like a better watch)

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info
NA

OS

[x] Linux
[x] Mac OS X
[x] Windows
[x] Etc.

Shell

[x] bash
[x] zsh
[x] fish

Problem / Steps to reproduce
I would like to be able to reload git status -s or kubectl get nodes and more.
It would be nice to have fzf be able to periodically run the reload.
I understand certain commands take a long time to run and there are considerations there.

Closing since #2136 discusses a more general approach to the use case.


docs: Documentation about events and code coverage

:tada: This PR is included in version 2.0.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fixes #2767- change default vertical dim spec

Types of change(s)

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Trivial change (affects only documentation or cleanup)

Checklist

[ ] Tested this change with a run of GEOSgcm
[x] Ran the Unit Tests (make tests)

Description
Lots of other tangential changes.  But mostly propagating changes in the yaml files in tests.
Related Issue

Git hub confused. Created a new PR that worked fine.


Spyder's Variable explorer is inconsistent when it lists dict objects

I have just installed the latest Anaconda package available on Anaconda website. I have now Spyder 2.3.7 running with Python 3.5. Operating system is OSX El Capitan 10.11 running on a newly purchased iMac. I also have a 3 year old MacBook Air running Spyder <IP_ADDRESS> with Python 3.4.3-2.
On the new iMac, I run a python file which creates some large dict objects. However, only one of these dict objects show up in the Variable explorer. The others don't. When I run the same python file on my old MacBook Air, all the dict objects show up in Variable explorer. Can anyone help please? I searched for an answer online but can not find anything. Thank you.

Some comments:

We reduced the default number of elements shown in the Variable Explorer to avoid huge slowdowns when people create big dicts or lists.
You can still inspect what contents your dict has, by doing a double click on its entry in the Variable Explorer.

Do they help?

Could you upload the code you're using, or at least post an screenshot of what you're seeing? That would be more helpful to understand your problem :-)

Thank you Carlos. Let me try to explain further. When I use dir() command in the iPython console, I get a full list of dict objects in memory. Some of these dict objects are not listed in the Variable explorer above. Some other dicts are listed. This is the issue. Did this explain a bit more?
My code is quite long unfortunately. Here is something I observed: The dictionaries that are directly loaded to memory using pickle.load are visible in Variable explorer. However, the dictionaries that are created by populating them in a for-loop are not visible in Variable explorer.
I don't get this problem if I install the previous version of Anaconda. However I get a different problem in the previous version of Anaconda (iPyhthon console is extremely slow... Stops responding for a few seconds every time I start typing).
Appreciate any help.

If I convert the invisible dict into a data frame using pd.DataFrame(), then the resulting object shows up in the Variable explorer.

Contents of the invisible dict object are pandas time series objects. So, for each key in the dict, there is  a   separate pandas time series object.

Made some progress in understanding the issue. When I go to Preferences>Variable Explorer and uptick "Exclude Unsupported Variable Types", then the dictionary shows up in Variable Explorer. When I double click on the dict to view the contents, I see that the Type of the contents are core.series.Series. Instead of this, it should be saying TimeSeries. So somehow Variable Explorer doesn't recognise Series objects from Pandas package. However it does recognise the DataFrame objects.

**uptick should be untick (autocorrect issue...)

Thanks for finding the root cause of your problem. This happens because since Pandas 0.17 Series and TimeSeries are two different (although equivalent) objects.
I'll fix this problem in Spyder 2.3.8, to be released later this week.

thank you, ccordoba12.
I downgraded pandas from 0.17 to 0.16.2 as of now and i will update pandas with spyder when 2.3.8 releases.

@joy2014, it's worth noting that TimeSeries support in the Variable Explorer will be removed in 2.3.8 because it was deprecated in Pandas.
So from 2.3.8 onwards we will only support Series :-)

@ccordoba12 Deprecated does not mean that no one will use it in the near future. Maybe we should wait a bit before removing them from spyder. I'd say at least 3.0, doing it in a minor revision is surprising.

@Nodd and @joy2014, sorry, I was wrong! TimeSeries is a subclass of Series since 0.17, so it'll also be shown in our Variable Explorer :-)

Nice !


Not displaying any technologies on version 5.1

Platform
Which platform does the bug apply to?

Microsoft Edge Version 83.0.478.37

Describe the bug
Not displaying any technologies after update to version 5.10
To Reproduce
Steps to reproduce the behavior:

Open Microsoft Edge
Go to any website
Click on the wappalyzer icon
See error, no technologies displayed

Expected behavior
Detected technologies should be displayed
Additional context

None

Duplicate of #3118

it's not working again sir @AliasIO


Rest Service guide is missing source code for RestServiceApplication.java

https://spring.io/guides/gs/rest-service/
This page contains the source code to build this application from scratch, however at the section where @SpringBootApplication is mentioned, there is no associated source code. I had to come here to find it.

do you want to see code below in documentation?
package com.example.restservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RestServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(RestServiceApplication.class, args);
    }

}

I was also confused about the @SpringBootApplication part of the guide as well what to do with the DemoApplication.java that came included with the Spring Initializr download. I think adding the following steps to the official guide on the site would be helpful for beginners:

Create a new file called src/main/java/com/example/restservice/RestServiceApplication.java
Add code mentioned by @boraoren above.
Delete src/main/java/com/example/demo/DemoApplication.java

I feel like just making this section more explicit would be helpful:
You can get a Maven build file with the necessary dependencies directly from the Spring Initializr. The following listing shows the pom.xml file that is created when you choose Maven:

It wasn't clear (to me anyways) that this specific Spring Initializr link will actually fill in all the parameters expected in this tutorial.  It also seems like the intention for this tutorial is to take that maven or graddle file and import into our IDE of choice.  Maybe that's obvious to an experienced Java developer, but wasn't obvious to me, a Python/JS developer just starting to work with Java.
Making this more explicit would then mean that the guide would just need a sentence later on saying, something like.
There should also be a file called src/main/java/com/example/restservice/RestServiceApplication.java.  Open this file and let's break this down.

I feel like just making this section more explicit would be helpful:
You can get a Maven build file with the necessary dependencies directly from the Spring Initializr. The following listing shows the pom.xml file that is created when you choose Maven:

It wasn't clear (to me anyways) that this specific Spring Initializr link will actually fill in all the parameters expected in this tutorial.  It also seems like the intention for this tutorial is to take that maven or graddle file and import into our IDE of choice.  Maybe that's obvious to an experienced Java developer, but wasn't obvious to me, a Python/JS developer just starting to work with Java.
Making this more explicit would then mean that the guide would just need a sentence later on saying, something like.
There should also be a file called src/main/java/com/example/restservice/RestServiceApplication.java.  Open this file and let's break this down.

Yea this can easily be confusing for people that are just getting into Spring.

Yeah, if you generate your project using Spring Initializr, then all 3 classes (DemoApplication, Greeting and GreetingController) should be in the same package (either com/example/demo or com/example/restservice, like the tutorial says) or else localhost:8080/greeting returns a error page.

PR https://github.com/spring-guides/gs-rest-service/pull/125 fixes it, but I have requested a change to it.
In the meantime, you can find that class in /complete/src/main/java/com/example/consumingrest/ConsumingRestApplication.java


Input stream

Is there a way to create a inputstream from the data being recieved from a serial device?
The device i am using just spews out data constantly no need communicate back or anything

Hello @cleevie
Try this classes: https://github.com/felHR85/UsbSerial/blob/master/usbserial/src/main/java/com/felhr/usbserial/SerialInputStream.java
https://github.com/felHR85/UsbSerial/blob/master/usbserial/src/main/java/com/felhr/usbserial/SerialOutputStream.java

Hello
I am also using inputStream because I want to use it the same way I am using the Android bluetooth connection. I have have reused your SerialInputStream class, modified it and overwrite the available method to return the size. It partially works but crashes if to much data.
Here is the class
Can you help please.
Regards
Boris
public class SerialInputStream extends InputStream implements UsbSerialInterface.UsbReadCallback
{
protected final UsbSerialInterface device;
protected ArrayBlockingQueue data = new ArrayBlockingQueue(256);
    protected volatile boolean is_open;

    public SerialInputStream(UsbSerialInterface device)
    {
        this.device = device;
        is_open = true;
        device.read(this);
    }

    @Override
    public int available(){
        return data.size();
    }

    @Override
    public int read()
    {
        while (is_open)
        {
            try
            {
                return (Integer)data.take();
            } catch (InterruptedException e)
            {
                // ignore, will be retried by while loop
            }
        }
        return -1;
    }

    public void close()
    {
        is_open = false;
        try
        {
            data.put(-1);
        } catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }

    public void onReceivedData(byte[] new_data)
    {
        for (byte b : new_data)
        {
            try
            {
                data.put(((int)b) & 0xff);
            } catch (InterruptedException e)
            {
                // ignore, possibly losing bytes when buffer is full
            }
        }
    }
}

I have tracked and found why it was crashing. This is due to missing piece of data. I am using 3DR radio module over the Android USB so I am not sure if it is the radio module losing data or a problem with the Inputstream.
I will do some additionnal investigations and post the results here.

My issue is now fixed, this was due to the 3DR module and not the usb.
However you need to replace the SerialInputStream  with my code so that the available function works otherwise it will return 0.
I will publish an example using an input stream

I am trying to do the following
SerialInputStream serialInput = new SerialInputStream(serialPort);
AisReader aisReader = AisReaders.createReaderFromInputStream(serialInput);
                aisReader.registerHandler(new Consumer<AisMessage>() {
                    @Override
                    public void accept(AisMessage aisMessage) {
                        if (mHandler != null)
                        mHandler.obtainMessage(MESSAGE_FROM_SERIAL_AIS, aisMessage).sendToTarget();
                    }
                });
                aisReader.start();
                try {
                    aisReader.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

the ais reader just needs the inputstream to out data. Am i possibly doing this incorrectly?

Are you overwridding the SerialInputStream  like I did?
There seam to be an issue with the SerialInputStream  in the Android usb as it does not count the number of elements

I have a usage exemple in my repository
https://github.com/bdureau/BearConsole2

@bdureau  hey brother, how did you manage the data received data ?
i already setup the open and connect and sending serial data, but the problem i cant received a response,
how did you manage this?
  public void openDevice()
    {
        connection = usbManager.openDevice(printer);
        debug.append("printer:  "+printer +"\n");
        debug.append("connection:  "+connection+"\n");
        serialDevice = UsbSerialDevice.createUsbSerialDevice(printer, connection);
        debug.append("serialDevice:  "+serialDevice.toString()+"\n");
        if (serialDevice != null) {
            if (serialDevice.open()) {
                serialDevice.setBaudRate(9600);
                serialDevice.setStopBits(UsbSerialInterface.STOP_BITS_1);
                serialDevice.setParity(UsbSerialInterface.PARITY_NONE);
                serialDevice.setFlowControl(UsbSerialInterface.FLOW_CONTROL_OFF);
                serialDevice.setRTS(true);
             //   serialDevice.read(mCallback);
            } else {
                debug.append("Printer port not open \n");
            }
        } else {
            debug.append("Serial is null \n");
        }
    }

    public void sendData(String data)
    {
        debug.append("\n sendData  \n"+data.getBytes());
        serialDevice.write(data.getBytes());
        serialDevice.read(mCallback);

    }

    String respond;
    private UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
        @Override
        public void onReceivedData(byte[] arg0)
        {
            Toast.makeText(getApplication(),"RESPONSE TERMINAL: "+arg0,Toast.LENGTH_LONG ).show();
            debug.append("RESPOND TERMINAL ONLY"+respond+"\n");

        }
    };

is there any missing or mistake that i did? please help me

@jamesjude123 you need to overwrite the SerialInputStream class (replace it with mine)
Check my code on my github to have an example


[JS] [Event Hub] Track 1 library improvements

This epic is to track the work for the upcoming Event Hubs release

Closing this epic in favor of #2632 as all further improvements will be done as part of Track 2


System Error Message: No mapping between account names and security IDs was done

Cookbook version
[2.6.0]
Chef-client version
Using it on chefdk - kitchen version - 1.8.0
Platform Details
[Windows 2008 R2]
Scenario:
I am getting an error - System Error Message: No mapping between account names and security IDs was done while using the jenkins_windows_slave resource. Apparently this was fixed with PR# https://github.com/chef-cookbooks/jenkins/pull/333, but its again broken somewhere down the line.
Steps to Reproduce:
I am using the below code to achieve my objective -
jenkins_windows_slave "#{node['fqdn']}" do
description "#{node['platform']} - #{node['platform_version']}"
remote_fs 'E:/jenkins'
labels      ['test2015']
executors 1
user    service_user
password service_password
end
Expected Result:
Ideally, it should create the windows slave and setup the jenkins service on the Windows system.
Actual Result:
 action create[2016-07-19T06:54:13-07:00] WARN: Mode 600 includes bits for the o
wner, but owner is not specified
        (up to date)
           - Create jenkins_windows_slave[mywinslave]
           \* directory[E:/jenkins] action create (up to date)
           \* directory[E:/jenkins] action create

     ================================================================================
     Error executing action `create` on resource 'directory[E:/jenkins]'

     ================================================================================

     Chef::Exceptions::Win32APIError
     -------------------------------
     No mapping between account names and security IDs was done.
     ---- Begin Win32 API output ----
     System Error Code: 1332
     System Error Message: No mapping between account names and security IDs was done.
     ---- End Win32 API output ----

     Compiled Resource:
     ------------------
     # Declared in

     directory("E:/jenkins") do
action [:create]
retries 0
retry_delay 2
default_guard_interpreter :default
path "E:/jenkins"
recursive true
rights [{:permissions=>:full_control, :principals=>".\\Deployman"}]
     end

     Platform:
     ---------
     x64-mingw32

   ================================================================================
   Error executing action `create` on resource 'jenkins_windows_slave[mywinslave]'
   ================================================================================

   Chef::Exceptions::Win32APIError
   -------------------------------
   directory[E:/jenkins] (dynamically defined) had an error: Chef::Exceptions::Win32APIError: No mapping between account names and security IDs was done

Does anybody have update on this issue?

Errors like this are most often related to the user not existing - you can pass the resource a user property so that it doesn't just use the default. Given the age I'm closing this one but please do open an issue with modern versions of the cookbook and chef-client if the problem is still present.


remove subjects not in demographics

Fixes #9

sounds good @jarmoza, tracking the comments here: https://github.com/neurobagel/bagelbids/issues/15


Error: While running inspect.sh

Hello Sir,
I have tried running the code. After running ./autogen.sh and make successfully I'm getting the following error " No such element or plugin 'vehicledsm' ".
I have checked for blacklisted files, there are zero blacklisted files.

I have also checked size of libgstplugin.so it is about 2.0 MB.
Still it is throwing the following error.

Please help in solving the issue.
Thanks in advance.

Hello,
I thought that I'm getting the following issue because I'm using different version of gstreamer plugin and different version of tools. But I'm using gstreamer 1. 0 tools.

After checking that gstreamer plugin  and tools are of same version I thought I didn't set the path for GST_PLUGIN_PATH. So I have set the path for GST_PLUGIN_PATH by using the following command
" export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0/ "
After doing all these still the error persists.
After that I have used " gst-inspect-1.0 /usr/local/lib/gstreamer-1.0/libgstplugin.so " command to make sure that your plugin is working and initialized properly. It is throwing the following error : Could not load plugin file: File "/usr/local/lib/gstreamer-1.0/libgstplugin.so" is not a GStreamer plugin

Please help in solving the issue.

Hi @chandu0211 ,
This seems to be a problem related to gstreamer.
I can provide some additional info that could help you in some way:

In my case, the file libsgtplugin.so has 2.6M (using a 64bit system)
When launching gst-inspect-1.0, you can give GST_PLUGIN_PATH= containing the path to the binaries.

Hello Sir,
I'm getting these errors while running make. "missing ac local-1.15 -I m4", "missing automake-1.15 --gnu" and " missing autoconf "

Initially I didn't notice the error while running make.
But I have already installed ac local, automake, m4 and autoconf installed with the following versions as in the image below.

Does the above error while running inspect.sh is because of this error while running make. Is this error is caused by version mismatch or the path has to be specified explicitly for the autotools.
Please help in solving the issue.
Thanks in advance.

my file libgstplugin.so have about 2.6M,but when I run ./inspect.sh, I also get the message "No such element or plugin 'vehicledsm'".why is this?


Feature cli chat

It looks like api-gateway in root folder and under proxy-router folder are the same. Shouldn't it be only one of them? @srt0422


Can't use in operator with an undefined variable

After updating to 1.10 the in operator fails to compile when the right operand is undefined.
invalid operation: in (mismatched types string and interface {})
Example:
package main

import (
	"fmt"

	"github.com/antonmedv/expr"
)

func main() {
	code := `'Tom' in names`

	program, err := expr.Compile(code, expr.AllowUndefinedVariables())
	if err != nil {
		panic(err)
	}

	env := map[string]interface{}{
		"names": []string{"Alice", "Bob"},
	}

	output, err := expr.Run(program, env)
	if err != nil {
		panic(err)
	}

	fmt.Println(output)
}

Go Playground

Fixed in c59a3b9, release v1.10.5
Please, add Uber to "Who uses Expr?" section in README.md. 😁


fix dependency import analogue to other spots in same file

Coverage remained the same at 84.888% when pulling 3e6aaaab0aed6870798f431cc2499e6f528b788e on millawell:master into 52bc0dbab27af26ee57d4377d55929ea793e763b on IDSIA:master.


Vulkan SSS Blurs background

Godot version: Godot Engien v4.0.dev.custom_build.321ce4d4c
OS/device including version: Windows 10 Pro ver. 1903 build 18362.720
Issue description:
Enabling sub-surface scattering in a material will cause the background to blur slightly as well as have the mesh bleed out.
Steps to reproduce:
-new scene
-add light and world environment with a sky background
-add a csgsphere3d or other object and assign a material
-enable subsurf scatter in the material options.
Here is a couple of screenshots with the bug.

Minimal reproduction project:

@patrickWarvene Please upload a minimal reproduction project to make this easier to troubleshoot.

Just enabling SSS will cause the error even if the strength is 0. It also appears to mess with the depth as Dof and transparency also do not work correctly.
SSSBug.zip


createOrUpdateAsync not returning lro metadata

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@azure-tools/typespec-client-generator-core


Please add editing support

Hi!  Saw the other bug i filed was closed (and that main issue was fixed) and you're right... my tone may not have been the best tact to bring this up.  As promised, I went ahead and reworded it to the below while also raising it from two to four stars, and I specifically called out how fast you were in addressing the needs. I also reworded the bulk in a more 'helpful' manner.
Since I wasn't sure you'd get notified on 'closed' issues here, I'm opening this new one with the revised/updated text.  Same issues but I hope you agree a major improvement in its tone.  That and I do hope you consider implementing some of the functionality I describe.
== Updated Review ==
TITLE: Impressive start, albeit missing a few key features that just keep it from being perfect five stars.
For quite a while., I've been looking for a simple, native JSON editor.  Not one that was integrated into something like VS Code or other tools, but a true, native macOS app.
I came across this one in my search and it has the potential to fit that need perfectly!  Easily one of the best-looking ones I've seen to date. It's clean, seems very performant, and has the ability to run custom scripts against the JSON, something not seen in most others.
However, there are a few nagging issues that keep it from receiving the five-star review that it's quite capable of becoming.
The first, and by far the biggest is when I installed it, the text editor was not working.  It was simply blank.  You could see the tree on the left as expected, but there is no 'raw JSON' view on the right.
However, if you noticed, I said 'was' not 'is' because I reached out to the developer and a new fix was posted literally in a couple days, which is a testament to good product support.
That said, there are still a few other things that would go a long way to making this truly great.

It wasn't clear by the presentation, but this actually appears to be more of a viewer/formatter, but not an actual editor.  What this means is while you can view the JSON in both tree and raw-formatted-text, the tree is read-only, and any changes you make in the raw text portion dont actually update the JSON. There's no way to save it back to the current document. (Note: There is a 'Save as' button although it appears to be non-functional. Perhaps this is behind the paywall since I'm using the free trial.)  Still, being able to edit JSON files is the primary thing I need so perhaps it's unfair of me to judge this considering it's not actually touted as an 'editor.')

An extension of the above point, there doesn't seem to be a way to simply create a new, blank JSON document.  There's no 'File->New' support.  You can only start from the pasteboard, a URL, a cURL response or by opening an existing file.  I hope this capability is revisited, but it would again have to go hand-in-hand with true editing capabilities.

Being that it appears to be designed primarily as a viewer/formatter-only app, it's not quite clear what the difference between 'Viewer' mode vs non-viewer mode is.  Both are in the 'File' menu, and when activated appear to do the same thing (although the non-viewer ones are only enabled when the start-screen is shown.  Perhaps these could be combined since they appear to do the same thing.

The 'Zoom In Node' is a brilliant idea.  It lets you 're-anchor' the 'tree view' to a child node so you're only seeing that node's contents both there, and in the plain JSON view.  However, there's no way to 'un-zoom' outside of using the Undo command.  This seems to imply it's actually destructively editing its internal representation of the JSON file itself although that is speculation on my part.  I'm hoping this can be addressed in a future version that lets you 'delve down' as often as you want, while also letting you 'navigate back out' again whenever you want as well, not confined to the sequential nature of 'Zoom-then-undo'.

So again, in summary, this really has the potential to be the de-facto standard in native JSON editor.  Gorgeous and simple UI, well-displayed highlighting and the scripting feature is briliant.  But without even basic editing features like being able to save your changes, or even perform a file-new limits its usefulness. And again, clearing up somewhat-confusing viewer-vs-non-viewer views.
But if those things were addressed, few apps can touch the potential of this one.  Let's hope the developer considers making these changes as quickly as they addressed the missing text editor.  I for one would welcome the chance to revisit this app, and even actively promote it amongst my development peers.
4/5 Stars

I thought it was pretty clear that OK JSON is a formatter, as shown in the subtitle of Mac App Store: Scriptable JSON Formatter.
As for now, OK JSON is a better replacement for the online JSON formatter or the countless formatter extensions.
Almost all of the things you said were somehow related to the implementation detail of the app.
Take ”Zoom in Node” for example, it’s much simpler to store the original JSON string to a stack than to store the parsed nodes. It saves some memory as well.
I do have a lot of ideas for the editor. But even the current simple version had required a lot of work. You need to calculate the line number’s width and draw the line number view yourself. You need to implement syntax highlight, punctuation completion, etc.. Being native came at a cost.
If there will ever be a version 3.0, the main focus will be the editor. So far it will remain a JSON formatter.

Yeah, it wasn't quite as clear to me it was a formatter-but-not-editor because formatting is a type of editing if you think about it. You're changing the JSON, or at least generating new JSON.  But even if you didn't want to do a full editor now, why not make it non-read-only and treat edits the same as someone pasting in new JSON (at least when it looses focus.) that would be a more than acceptable workaround.
For the same reason, allow us to open a saved JSON file instead of having to paste, then the ability to save it back again.
You really couldn meet 90% of the editing needs just by enabling those kinds of features.
That said, it does sound like you have a plan for where you want to go next, so consider this suggestions from one developer to another. Again, you really do have one of the best looking applications out there. I just hate that I have to switch between your and another app when all I'm looking to do is edit some simple values in my JSON so I can test a setting or a config.

If you open a file in OK JSON and edit it in the editor, you should be able to save it back to the file with the button.
If you open a JSON string from pasteboard, you can save the changes and copy it again.


The github resolver should check if no patch was generated

If no changes were made to the code, the github resolver currently fails with the following error, which also means that the github workflow returns an opaque error about the workflow failing.
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/openhands_resolver/send_pull_request.py", line 500, in <module>
    main()
  File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/openhands_resolver/send_pull_request.py", line 489, in main
    process_single_issue(
  File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/openhands_resolver/send_pull_request.py", line 367, in process_single_issue
    make_commit(patched_repo_dir, resolver_output.issue, issue_type)
  File "/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/openhands_resolver/send_pull_request.py", line 140, in make_commit
    raise RuntimeError(f"Failed to commit changes: {result}")
RuntimeError: Failed to commit changes: CompletedProcess(args='git -C output/patches/issue_180 commit -m \'Fix issue #180: \'"\'"\'Bump version of openhands-ai to 0.11.0\'"\'"\'\'', returncode=1, stdout='HEAD detached at 65915b0\nnothing to commit, working tree clean\n', stderr='')
Copied repository to output/patches/issue_180
Patch applied successfully
Git user configured as openhands

To fix this we should:

Modify send_pull_request.py to check in the make_commit() function if the patch fails with a "nothing to commit, working tree clean" error, and print a more comprehensible error after "ERROR: ..."
Modify the .github/workflows/openhands-resolver.yml file so that if the workflow calling send_pull_request.py fails, the error message "ERROR: ..." is read in, and passed back to the user through a github comment.

I would be willing to take a shot at this!

Fixed by #216 and #219


Change timeout for session start

Hello,
I am using StcPythonRest for remote STC control. When connecting to the STC, i.e. creating an instance of StcPythonRest class, I often ends with: RuntimeError: failed to create session: 500 Internal Server Error: server error: timed out waiting for session to start.  I was not able to find any way how to increase this timeout, is it possible somehow?

I see that in the https://github.com/Spirent/py-stcrestclient/blob/master/stcrestclient/stchttp.py, there is a function to set timeout
    def set_timeout(self, timeout):         """Seconds to wait for a response.  Any zero-value means no timeout."""         self._rest.set_timeout(timeout)

@KrobotP : I don't see a way. That error is coming from the backend and it looks like the value is part of the code and can't be modified via an API call. The method @pozarkar is referring to changes the timeout of the rest client but doesn't affect the timeout in the backend waiting for the STC session to start.

Thank you for your replies.
Calling any method would not help me anyway as this is happening when creating and object (i.e. in init). That is kind of sad that timeout can't be changed. Do you have any idea why these timeouts might occur? Maybe some wrong cleanup of previous session?

The current timeout is 60 seconds. So for the session to not start up within that time seems like either the server might be getting overloaded. Are you running concurrent STC sessions? If so, how many do you typically have running at the same time?

I am running only one session at the time. However, it seems to me today that real problem is not that session is not created but it somehow dies during loading of a configuration from xml. I am trying to investigate this in more detail and I will report back if I found something new.

Well, so I tacked the error to the 'stc.config('automationoptions', logLevel='error', logTo='stdout')' call. However, skipping this call produces same error on the next command: stc.perform('loadfromxml', FileName=xml_config_file). Both eventually leads to the new_session() from where the exception is raised.
Having this, I am still unable to tell why a session is not created during the timeout. The only solution for me so far is try to call the method repeatedly, until a session is created.

Can you see if there are logs on the server side in a location like C:\Users\jkho\Documents\Spirent\TestCenter 5.18\Logs for the user that STC is running under? It may provide a clue as to why the sessions are not starting. You can email the logs to me directly.
Thanks.


In wiki add namespace to all identifiers

Like this:
jed_utils::datetime dtTest = jed_utils::datetime();

Hi Emmanuel,
Very sorry for the delay I completely forgot this documentation issue.
Here is what will be added to the wiki page:
Don't forget the namespace
Note: To simplify the example code below, we will assume that you have use the
jed_utils namespace in the source file like this:
use namespace jed_utils;

Otherwise if you prefer, you will have to specify the namespace on each class
of the library like this :
jed_utils::datetime dtTest = jed_utils::datetime();

Thank you,


Return value of duncan3dc\Laravel\Directives::register() must be an instance of duncan3dc\Laravel\void, none returned

Works well on localhost but when it came to hosting, above error message pops up

Is your host on the same PHP version as your localhost?

Nope. I changed PHP version and everything is fine now.


STP - sensor tokens failed to be created

Following error appears on each token creation:
2018-03-05 14:08:44,690 ] ERROR c.tools.data.sparql.InfotonReporter  - problem writing tokens infoton to /meta/sys/agents/sparql/dealsjv
Getting this error for all 3 sensors each time trying to create token infoton

stpAgent token was not valid and would not write to /meta. Re-created and tested in PR #561


Stop using :latest for inference server images

Is your enhancement related to a problem? Please describe
We are currently using a lot :latest for inference server images, which may lead to some issues such as https://github.com/containers/ai-lab-recipes/issues/743
Describe the solution you'd like
We should require a fix tag from the https://github.com/containers/ai-lab-recipes images and use it for the release
Describe alternatives you've considered
No response
Additional context
No response

See https://github.com/containers/ai-lab-recipes/issues/748

We should have a centralized inference-images.json file in the asset folder where we keep track of all the images


make fastlog2 faster

This uses the same formula, but slightly rearranged. The primary difference is that the coefficients have been shifted slightly such that subtracting 1 from signif isn't necessary to computer quot  which removes instruction dependencies and leads to slightly faster code. I've also unified the code paths leading to slightly simpler code which GCC apparently tripped up on, but LLVM seems fine with.
julia> @btime fastlog2(x) setup = (x=rand(Float32));
  3.270 ns (0 allocations: 0 bytes) #before
  2.730 ns (0 allocations: 0 bytes) #after

julia> @btime fastpower(x,y) setup = (x,y)=rand(Float32),rand(Float32);
14.850 ns (0 allocations: 0 bytes) #before
  8.929 ns (0 allocations: 0 bytes) #after

@thazhemadam can you help me figure out what's going on with Codecov here?


FEATURE REQUEST: Nerd Font Icon compatibility

Currently, nerd font icons show up as boxes instead of the correct icon
How to reproduce:

make acodeX-server open a zsh shell instead of bash (.acodex-server/index.js, change "bash" to "zsh")
install oh-my-zsh
install Powerlevel10k theme
restart termux or reload shell
enable icons in p10k configuration
open terminal in Acode
icons will show as boxes

Sorry if this isn't the right place to report this, I'm just not sure if this is an AcodeX limitation or an Acode limitation but I figured I'd start with the plugin and report to Acode if it's not a plugin specific issue

I thought I can fix it by using xterm-font-ligeature addon, Let me try then only I can say it's plugin specific issue or app.
Btw thanks for suggestion ❤

I have found a way to achieve it: by loading the required font by the theme.
Soon, I will provide an option to do so.

This issue is patched in v2.1.0.
Check it out!

I don't get what's going on.
If I set the font, it works for that session but as soon as I close the app and reopen it, it's back to the previous font.
How to reproduce:
In termux:
cd (ensure in home directory)
mkdir GitHub
cd GitHub
mkdir Backup
cd Backup
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/FiraCode.zip
(Extract zip)
touch FiraCode.css
(replicate FiraCode.css found here: https://github.com/GR3YH4TT3R93/dotfiles/tree/main/GitHub/Backup/FiraCode.css)
In Acode:
Open terminal (ensure icons aren't working)
Close terminal
Open settings >> plugins >> AcodeX >> settings
Select Custom Font Style Sheet >> FiraCode.css
Clear Font Family (or don't)
Add "FiraCode" (no quotes, can place anywhere in the list if you didn't clear Font Family)
Open terminal (ensure icons are working)
Close app
Open app
Open terminal
No icons again, settings reverted to original
Where am I going wrong?

I don't get what's going on.
If I set the font, it works for that session but as soon as I close the app and reopen it, it's back to the previous font.
How to reproduce:
In termux:
cd (ensure in home directory)
mkdir GitHub
cd GitHub
mkdir Backup
cd Backup
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/FiraCode.zip
(Extract zip)
touch FiraCode.css
(replicate FiraCode.css found here: https://github.com/GR3YH4TT3R93/dotfiles/tree/main/GitHub/Backup/FiraCode.css)
In Acode:
Open terminal (ensure icons aren't working)
Close terminal
Open settings >> plugins >> AcodeX >> settings
Select Custom Font Style Sheet >> FiraCode.css
Clear Font Family
Add 'Fira Code' (with single quotes)
Open terminal (ensure icons are working)
Close app
Open app
Open terminal
No icons again, settings reverted to original
Where am I going wrong?

And I'm sorry if this isn't the place and you'd like me to open another issue, but logo-ls icons still don't work

Sorry

Much better! It's now remembering font across restarts but logo-ls still doesn't work for some reason. The icons work correctly in termux so sadly,I don't think it's a font specific issue.
Thanks for the fast turnaround on the fix though! Awesome work as usual!

Much better! It's now remembering font across restarts but logo-ls still doesn't work for some reason. The icons work correctly in termux so sadly,I don't think it's a font specific issue.
Thanks for the fast turnaround on the fix though! Awesome work as usual!

Don't be sad!
It can be fix. I have seen your custom font css file (https://github.com/GR3YH4TT3R93/dotfiles/blob/main/GitHub/Backup/FiraCode.css) there are some issues:

you have given same name to all font, give it like that : FiraCode Regular etc.. according it's corresponding font file and
in AcodeX font family Settings provide all font names without Single inverted comma as well as also separate your all font with Comma so AcodeX will load all.
For eg: FiraCode Light, FiraCode Regular , and so on..

It will definitely work because I also tried it
Here is my custom font css file:
https://dpaste.org/DMQn7
And in my AcodeX > Settings>Font Family, I have written: MesloLGS NF Regular, MesloLGS NF Bold, MesloLGS NF Italic, MesloLGS NF Bold Italic

Note: Also makes sure to load icon font file , provided my theme.

Icons in the command prompt were/are working even with my bad config but logo-ls icons still don't work even with the config you provided.
How to reproduce:
apt install logo-ls
logo-ls
logo-ls -lah .

Ok , I haven't tested! Let me test it.

I know for a fact I'm using nerd fonts... Source: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/FiraCode.zip found here: https://www.nerdfonts.com/font-downloads

Working correctly in termux with same fonts

is your font file and custom css file is in same folder?
and have given names of loaded custom font file in acodex font family settings?

FiraCode css file

Ok , I haven't tested! Let me test it.
Edit: It's working for me (because i have loaded nerd font) See 👇
It's not working on your device because you have loaded simple fira code font which doesn't contains icon , and you will need icon here. So you will need to load any font from here (you can download fira code nerd icon ) https://github.com/ryanoasis/nerd-fonts#patched-fonts

like this

FiraCode css file my zsh icon not show

FiraCode nerd font file is built in inside AcodeX , just select them from Acodex settings> Font Family

Ok , I haven't tested! Let me test it.
Edit: It's working for me (because i have loaded nerd font) See 👇
It's not working on your device because you have loaded simple fira code font which doesn't contains icon , and you will need icon here. So you will need to load any font from here (you can download fira code nerd icon ) https://github.com/ryanoasis/nerd-fonts#patched-fonts

like this

Check out this: https://github.com/bajrangCoder/acode-plugin-acodex?tab=readme-ov-file#custom-fonts

icon not woeking bro

I guess that's because FiraCode nerd font doesn't contains that icons, try Meslo font from Acodex settings (As meslo have a lots of nerd icon, hopefully that will work)