[improve][admin] Improve partitioned-topic condition evaluation

Motivation
Partition-topic condition change from !topicName.isPartitioned() && partitionMetadata.partitions > 0 to  partitionMetadata.partitions > 0
Modifications
Partition-topic condition change from !topicName.isPartitioned() && partitionMetadata.partitions > 0 to  partitionMetadata.partitions > 0
Verifying this change

[x] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[x] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
https://github.com/gaozhangmin/pulsar/pull/6

We can avoid getting the partitioned topic metadata if the given topic name is a topic partition.

If it is a partition topic, we don't need to get topic metadata. internalExpireMessagesNonPartitionedTopicByPosition directly, right?

Codecov Report

Merging #19015 (adb35fc) into master (08591d9) will decrease coverage by 7.38%.
The diff coverage is 49.54%.

@@             Coverage Diff              @@
##             master   #19015      +/-   ##
============================================
- Coverage     49.85%   42.47%   -7.39%
- Complexity     8658    10233    +1575
============================================
  Files           500      769     +269
  Lines         54930    74127   +19197
  Branches       5867     7976    +2109
============================================
+ Hits          27386    31484    +4098
- Misses        24464    38949   +14485
- Partials       3080     3694     +614

Flag
Coverage Δ

unittests
42.47% <49.54%> (-7.39%)
:arrow_down:

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

Impacted Files
Coverage Δ

...pulsar/broker/admin/impl/PersistentTopicsBase.java
58.28% <49.54%> (-0.44%)
:arrow_down:

...pache/pulsar/client/impl/CompactionReaderImpl.java
0.00% <0.00%> (-90.00%)
:arrow_down:

...g/apache/pulsar/client/impl/RawBatchConverter.java
3.12% <0.00%> (-89.07%)
:arrow_down:

...g/apache/pulsar/broker/service/StreamingStats.java
0.00% <0.00%> (-83.79%)
:arrow_down:

.../pulsar/compaction/StrategicTwoPhaseCompactor.java
0.00% <0.00%> (-76.20%)
:arrow_down:

...sar/broker/stats/metrics/ManagedLedgerMetrics.java
23.88% <0.00%> (-76.12%)
:arrow_down:

...lsar/client/impl/RawBatchMessageContainerImpl.java
0.00% <0.00%> (-73.14%)
:arrow_down:

.../pulsar/broker/service/SharedConsumerAssignor.java
3.70% <0.00%> (-64.82%)
:arrow_down:

...lsar/broker/service/StickyKeyConsumerSelector.java
50.00% <0.00%> (-50.00%)
:arrow_down:

...rvice/schema/KeyValueSchemaCompatibilityCheck.java
21.62% <0.00%> (-45.95%)
:arrow_down:

... and 355 more

Since this happens to fix a critical issue (check comment https://github.com/apache/pulsar/pull/19015#discussion_r1091886551), this is needed for branch-2.11 too.
The PR doesn't apply to branch-2.10 so I'll make a separate PR targeting the specific issue.


Brush selection removes Y axis labels/scales

Codepen
3.8.3 - https://codesandbox.io/s/383-y-labels-brush-lwmj4
3.7.1 - https://codesandbox.io/s/371-y-labels-brush-wmsz1
Explanation
When I add a brush to my chart the Y axis labels are hidden and instead uses the default single axis.
The line for Measure1 is plotted correctly against the unlabeled left axis, but Measure2 is not.
If you set selection.enabled to false in brushOptions the Y axis labels/scales are restored but obviously then the brush is not so useful.
I would expect the behavior to be more like in the 3.7.1 example. This is almost the same code as the top example - only change is brush.autoScaleYaxis is set to true in brushOptions. When this is set to false the behavior is identical to 3.8.3.
Note that this example is broken as well in different ways - the numbers on the right Y axis are wrong, the large data point on the right is drawn above the chart.
Happy to provide more examples if required.

I am experiencing the same issue

Had another look at this - seems to be that some options set for the brush are also applied to the other chart.
https://codesandbox.io/s/383-y-labels-brush-defined-y-axis-in-brush-75cv7
In the above example I have set yaxis.show to true for the chart, and false for the brush but no axis is drawn for the chart.

Same issue for me with area chart:
When you make a selection on the brush chart, it removes the second axis on the area chart.
I would also mention that the brush chart selection works weird. When you make a selection, it overflows on the left side and after thet you can't move to end of the right side.
Vanilla
https://codepen.io/elijah1/pen/gOawywb?editors=1011
React
https://codesandbox.io/s/brush-chart-with-multiple-y-axis-nnui1


Not all of the Emoji 5.0 emojis are available

Is there any chance that the rest of the emojis in Emoji 5.0 that currently aren't available, to be added?

@predasorinionut Can you tell me which ones are not available? Feel free to send a PR, I'd be glad to accept it!

After fixing #69 we can apply new emoji test data and see what emoji are missing.

Any news since july on when this might be looked at? I'm using this lib to remove emojis from texts and the new IOS 11 emojis are not supported yet.

@runehammerskov it is very unlikely that this is "going to get looked at" soon, I don't have a lot of time to work on it. However, I'll gladly accept your Pull Request that upgrades the emojis to support iOS 11!


Add chunk_along_batch/seq

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (d77ec4c) to head (c74d7dc).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #42   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           29        30    +1
  Lines          582       595   +13
  Branches        52        52
=========================================
+ Hits           582       595   +13

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


Use official docker buildx setup

This was created by docker in cooperation with the person that created the original action.

Example run (modified to skip uploading): https://github.com/AaronDewes/umbrel-middleware/runs/1108755849

Looks good @AaronDewes. Do you know the reason we weren't using the official action to begin with? Did it not support QEMU before?
CC @mayankchhabra do you know?

the initial setup was mine when it was still very new, and I followed a guide for it at the time.

I have no issues with switching the the docker version which is more supported

Unless theres a requirement to build on arm6 then you can switch.. the difference is the official doesn't build on arm6 anymore

Got it, thanks @nolim1t.

Sweet, didn't realize that docker had their official buildx action. Good job, @AaronDewes!

Yes its by the guy who did the original GH action

It was not that you didn't realize it, but when the action was added, the official one didn't exist, docker created it 29 days ago.


Make space visible in html and text formatters

Fixes #31

Current coverage is 93.16% (diff: 88.88%)

Merging #33 into master will decrease coverage by 0.15%

@@             master        #33   diff @@
==========================================
  Files            15         15
  Lines           763        775    +12
  Methods           0          0
  Messages          0          0
  Branches        146        150     +4
==========================================
+ Hits            712        722    +10
- Misses           26         27     +1
- Partials         25         26     +1

Diff Coverage
File Path

••••••••   81%
eli5/formatters/text.py

•••••••••• 100%
eli5/formatters/html.py

Powered by Codecov. Last update 69dafb3...bbe46b1

Thanks @lopuhin!


graphviz installation for the flow system GUI

The graphviz conda package is no Python package. It simply puts the graphviz files into your virtual env's Library directory. Look e.g. for dot in the ~/anaconda/env/cta/bin/ directory.
And missing of python graphviz library it breaks most commands like ctapipe-info.  That package should be made a dependency.
[sapmcw8] ~/Projects/CTA/Working/ctapipe % ctapipe-info --tools   git:(master|)
*** ctapipe tools ***
the following can be executed by typing ctapipe-:
Traceback (most recent call last):
File "/Users/kosack/anaconda/envs/cta/bin/ctapipe-info", line 9, in
load_entry_point('ctapipe', 'console_scripts', 'ctapipe-info')()

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/tools/info.py", line 25, in main
info(**vars(args))

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/tools/info.py", line 40, in info
_info_tools()

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/tools/info.py", line 71, in _info_tools
scripts = get_all_descriptions()

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/tools/utils.py", line 76, in get_all_descriptions
module = importlib.import_module(info.module_name)

File "/Users/kosack/anaconda/envs/cta/lib/python3.5/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

File "", line 986, in _gcd_import
File "", line 969, in _find_and_load
File "", line 958, in _find_and_load_unlocked
File "", line 673, in _load_unlocked
File "", line 662, in exec_module
File "", line 222, in _call_with_frames_removed
File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/flow/gui/guiflow.py", line 4, in
from ctapipe.flow.gui.main_window import ModuleApplication

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/flow/gui/main_window.py", line 6, in
from ctapipe.flow.gui.graphwidget import GraphWidget

File "/Users/kosack/Projects/CTA/Working/ctapipe/ctapipe/flow/gui/graphwidget.py", line 1, in
from graphviz import Digraph

ImportError: No module named 'graphviz'

graphviz need to be installed thanks to pip
pip install graphviz.
Doc need to be update

Close by PULL REQUEST #165


npm run configure-sso fails with error: Unable to determine if user is tenant admin

I'm following the tutorial on https://docs.microsoft.com/en-us/office/dev/add-ins/quickstarts/sso-quickstart#configure-sso
I have generated a Office add in for word with the SSO template in typescript. I'm using node version 14.15.5 and windows 10
At the step when I run npm run configure-sso the script fails.
I was logged in as a tenant admin
this is the log with the error:
C:\Users\Roelof>cd WordTSSSOAddIn

C:\Users\Roelof\WordTSSSOAddIn>npm run configure-sso

><EMAIL_ADDRESS>configure-sso C:\Users\Roelof\WordTSSSOAddIn
> office-addin-sso configure manifest.xml

Opening browser for authentication to Azure. Enter valid Azure credentials
Login was successful!
Registering new application in Azure
Application was successfully registered with Azure
Setting identifierUri
Setting signin audience
(node:10008) UnhandledPromiseRejectionWarning: Error: Unable to determine if user is tenant admin:
ERROR: Bad Request({
  "error": {
    "code": "Request_BadRequest",
    "message": "Invalid object identifier 'members'.",
    "innerError": {
      "date": "2021-02-13T18:04:44",
      "request-id": "9ba58306-e689-4a9c-84c1-89f3977a05c4",
      "client-request-id": "9ba58306-e689-4a9c-84c1-89f3977a05c4"
    }
  }
})

    at Object.<anonymous> (C:\Users\Roelof\WordTSSSOAddIn\node_modules\office-addin-sso\lib\configure.js:155:19)
    at Generator.throw (<anonymous>)
    at rejected (C:\Users\Roelof\WordTSSSOAddIn\node_modules\office-addin-sso\lib\configure.js:4:65)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:10008) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:10008) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

C:\Users\Roelof\WordTSSSOAddIn>

@Roleofm - Thank you for posting a question. Can you please provide these additional details?
Your Environment
Platform: ______
Host: Word
Office version number:______
Operating System: ______
Browser (if using Office on the web): ______

Hi Nisarg,
Sorry, you can close this issue. I just created a new project and the command "npm run configure-sso" went successful! Was there an update in the script?
Anyway the this is my environment
Platform: Windows 10 pro
Host: Word
Office version number:18.2008.12711.0______
Operating System: Microsoft Windows version 10.0.18363.1379___
Browser (if using Office on the web): ______
Many thanks,
Roelof Meijer
Van: Nisarg Kinariwala - MSFT<EMAIL_ADDRESS>Verzonden: dinsdag 16 februari 2021 21:01
Aan: OfficeDev/office-js-docs-pr<EMAIL_ADDRESS>CC: Roelof Meijer<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Onderwerp: Re: [OfficeDev/office-js-docs-pr] npm run configure-sso fails with error: Unable to determine if user is tenant admin (#2503)
@Roleofmhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FRoleofm&data=04|01||517e8e27ef134fda1cd608d8d2b594b7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637491024609411264|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=jvpZckVovU8KakoQV%2FOv5Yq1oCKd6EjsPkSEbnfY35Q%3D&reserved=0 - Thank you for posting a question. Can you please provide these additional details?
Your Environment
Platform: ______
Host: Word
Office version number:______
Operating System: ______
Browser (if using Office on the web): ______

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOfficeDev%2Foffice-js-docs-pr%2Fissues%2F2503%23issuecomment-780083366&data=04|01||517e8e27ef134fda1cd608d8d2b594b7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637491024609421254|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=yeVrrIA1ORiyXgf%2Bv%2F8I6%2FiTv6EfDQIdeooAirt02og%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD3G663HTP6QUR5QAB7WYX3S7LFHXANCNFSM4XSMA7NA&data=04|01||517e8e27ef134fda1cd608d8d2b594b7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637491024609421254|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=e78lI%2FK%2FfrTgb6V2upcmLbu%2FSuZxDMwMcuQSY%2FYQ9jo%3D&reserved=0.


contribute SkyWalking 5.0 Chinese UserGuide

27 pictures to describe how to use SkyWalking 5.0

menu:

article:

@TinyAllen @JaredTan95
I have added a blog folder in /docs/.vuepress/public/static/ ,and I tested OK in my computer.

@CharlesMaster send pull request to master branch, no need to generate codes. Please follow the readme on master branch.


Enhancement: Content negotiation and Accept header

It would be nice to implement some kind of content negotiation based on the Accept header.
I have an endpoint that should serve a graph in different formats. Depending on the requested mime type it can respond with an image, a PDF or the raw graph as a graphviz file. Currently I crudly parse the Accept header myself:
def parse_accept(accept: str) -> List[str]:
    """
    Parse an Accept header string an return the list of accepted mime types.
    """
    mime_types = []
    for entry in accept.split(','):
        entry = entry.strip()
        type, _, extra = entry.partition(';')
        mime_types.append(type)
    return mime_types

def mime_type_matches(mime_type: str, pattern: str) -> bool:
    if pattern == '*/*':
        return True

    type, _, subtype = mime_type.partition('/')
    pattern_type, _, pattern_subtype = pattern.partition('/')

    return type == pattern_type and (subtype == pattern_subtype or pattern_subtype == '*')

def first_matching_mime_type(accept: str, available: List[str], default: Optional[str] = None) -> Optional[str]:
    accept_patterns = parse_accept(accept)
    for pattern in accept_patterns:
        for type in available:
            if mime_type_matches(type, pattern):
                return type
    return default

@get("/graph")
    async def graph(self, accept: str = Parameter(header="Accept")) -> Response[bytes]:
         mime_type = first_matching_mime_type(accept, ['image/png', 'application/pdf', 'text/vnd.graphviz'], default='image/png')
         with io.BytesIO() as f:
            if mime_type == 'image/png':
                render_graph_image(f)
            elif mime_type == 'application/pdf':
                render_graph_pdf(f)
            elif mime_type == 'application/pdf':
                raw_graph(f)
            return Response(content=f.getvalue(), media_type=mime_type)

I'm not sure what the best interface would be. Maybe just a special dependency that provides you with the requested type based on a list of available type. An integration into OpenAPI would also be nice, but I don't know if that is even possible.
The hard part is probably correctly parsing and matching the mime types, thats why i made this request. I haven't looked in the specs.
Django REST Framework has something similar. But the render concept doesn't fit into starlite.

Hi,
So this could be a nice ready made dependency packages with Starlite. I don't see how we could implement the content negotiation - this is for the user to do. But we could parse the header and offer a ready made dependency.
Note- there is already a utility to parse content disposition / content type headers in place.
Thoughts?

This is what I got now. I looked at Quality Values and Accept Header to parse and sort the media types. This needs more testing as I'm not sure if the matching works like I intended it.
The idea is that you provide a list of media types (also with wildcards) your handler can provide. And you get a concrete type back that is the best match for the request. You can then inspect that type and create the appropiate response.
If none of your provided types match you get the default type back. It seems to be best practice to return something instead of giving an error 406 Not Acceptable. But that could be implemented when no default is given.
#!/usr/bin/env python

from typing import List, Optional, Tuple

from starlite import Starlite, Response, Provide, get
from starlite.params import Parameter
from starlite.multipart import parse_content_header

class MediaType:
    def __init__(self, type_str: str):
        full_type, self.params = parse_content_header(type_str)
        self.maintype, _, self.subtype = full_type.partition('/')

    def __str__(self) -> str:
        params = ''.join(f';{key}={value}' for key, value in self.params.items())
        return self.fulltype + params

    @property
    def fulltype(self) -> str:
        return f'{self.maintype}/{self.subtype}'

    @property
    def priority(self) -> Tuple[int, int]:
        # Use fixed point values with two decimals to avoid problems
        # when comparing float values
        quality = 100
        if 'q' in self.params:
            try:
                quality = int(100*float(self.params['q']))
            except ValueError:
                pass

        if self.maintype == '*':
            specificity = 0
        elif self.subtype == '*':
            specificity = 1
        elif not self.params or ('q' in self.params and len(self.params.keys()) == 1):
            # no params or 'q' is the only one which we ignore
            specificity = 2
        else:
            specificity = 3

        return quality, specificity

    def match(self, other: 'MediaType') -> bool:
        # Check parameters first, ignore the weight parameter 'q'.
        # Additional parameters on other are ignored.
        for key, value in self.params.items():
            if key != 'q' and value != other.params.get(key):
                return False

        # Then check if the subtypes match, ignoring the wildcard '*'
        if self.subtype != '*' and other.subtype != '*' and self.subtype != other.subtype:
            return False

        # Lastly check the main type, also ignoring the wildcard '*'
        if self.maintype != '*' and other.maintype != '*' and self.maintype != other.maintype:
            return False

        return True

class ContentNegotiation():
    def __init__(self, provided_types: List[str], default: str):
        assert provided_types, "List of provided types can't be empty"
        self.provided_types = [ MediaType(t) for t in provided_types ]
        self.default = MediaType(default)

    def __call__(self, accept: str = Parameter(header="Accept", default='*/*')) -> MediaType:
        accepted_types = [ MediaType(t) for t in accept.split(',') ]
        accepted_types.sort(key=lambda t: t.priority, reverse=True)

        for accepted in accepted_types:
            for provided in self.provided_types:
                if provided.match(accepted):
                    # Return the accepted type with wildcards replaced
                    # by concrete parts from the provided type
                    if accepted.subtype == '*':
                        accepted.subtype = provided.subtype
                    if accepted.maintype == '*':
                        accepted.maintype = provided.maintype
                    return accepted
        return self.default

@get("/", dependencies={
    "requested_type": Provide(ContentNegotiation(['text/plain', 'text/*', 'application/xml'], default='text/plain'))
})
def test_handler(requested_type: MediaType) -> Response[bytes]:
    print(str(requested_type))

    if requested_type.maintype == 'text':
        if requested_type.subtype == 'plain':
            content = b'Test'
        elif requested_type.subtype == 'html':
            content = b'
Test
'
        else:
            content = b'Default text response'
    elif requested_type.fulltype == 'application/xml':
        content = b'<xml><msg>Test</msg></xml>'

    return Response(
        content=content,
        media_type=str(requested_type)
    )

app = Starlite(
    route_handlers=[test_handler]
)

You can use curl to test it:
curl -v -H "Accept: application/xml" http://<IP_ADDRESS>:8000/

Specifying the dependency is a bit verbose for my taste, but I totally understand the reason behind explicit dependencies.
A dependency is nice if you need the same negotiation in multiple handlers. When you only need it once, or different provided types in different handlers something similar to the Parameter() dependency might be easier to use:
def test_handler(
    requested_type: MediaType = ContentNegotiation(['text/plain', 'text/*', 'application/xml'], default='text/plain')
) -> Response[bytes]:

This looks pretty good 👍😊
If you'd like to submit a PR - we can have a new dependencies module with some helpers like this, or maybe place it in another place.
A few thoughts-

We will need to extend the MediaType enum
We currently do not support XML out if the box, which we probably should - but should be done separately
PR should include documentation too

I'd like to have input from other @starlite-api/maintainers , and also - you're welcome to join in our discord and chat.
P.S. regard dependencies - perhaps we should add a provide decorator, which would be an alternative way to define dependencies. I will make an issue for this.

I like the general idea, but I'm not sure if a dependency is the best way to go about this.
I personally like flask's implementation of this, which is to expose an accept_mimetypes property on Request, returning a parsed MIMEAccept header, exposing the needed properties and methods. It feels like the more natural place, since we already have e.g a content_type property there, and it would be easier to then extend functionalities like this to other headers.

Interesting. Can you give some code snippets for Illustration?
@NomAnor would you like to contribute?

Interesting. Can you give some code snippets for Illustration?

Well it would enable something like this:
def handler(request: Request) -> str:
  if request.accept_mimetypes.accept_html:
      return '
Test
'
  if request.accept_mimetypes.accept_text:
      return 'Default text response'
  if request.accept_mimetypes.accept_xml:
      return '<xml><msg>Test</msg></xml>'

we could also add a more general API:
def handler(request: Request) -> str:
    if request.accept_mimetypes.matches("text/html"):
        return '
Test
'
    if request.accept_mimetypes.matches("text"):
        return 'Default text response'
    if request.accept_mimetypes.matches("application/xml"):
        return '<xml><msg>Test</msg></xml>'

I believe the main value in adding this to Request is that it would be easy to streamline with other "accepts" properties like accept_language, accept_encondings, etc., and other header-based properties, e.g. if_match or  if_range. I made an overview of some of those in #966 a while ago.
I really like the Flask / werkzeug API for this, you can check it out here, and I believe something similar would be a great addition.

After thinking about it, I also think it is better to put this functionallity with the request object. Using a dependency felt too convoluted for a local thing like this. Dependencies work better for (external) resources that are provided to the handler, than as a means to provide or transform data already present, like the headers in the request.
A quick glance at the Accept API and I also like it.
Some points I see are:

You have access to the parsed and sorted Accept header values through a list interface (accepted_types in my code, Acceptobject in Werkzeug), this way you can implement your own logic
Given a list of types the handler can provide, you get a best pick for the request. That's what my dependency class does. best_match() in Werkzeug.
Some convenience properties, like accept_html. I'm not sure about these, see below.

Should the API expose plain datatypes (tuples, str) like Werkzeug or is it better to expose full types/dataclasses/namedtuple (MediaType, namedtuple for priority)? I'm a fan of more specialised types.
The convenience properties might lead new users to not optimal handling of the accept values. This
def handler(request: Request) -> str:
  if request.accept_mimetypes.accept_html:
      return '
Test
'
  if request.accept_mimetypes.accept_text:
      return 'Default text response'
  if request.accept_mimetypes.accept_xml:
      return '<xml><msg>Test</msg></xml>'

would boil down to
def handler(request: Request) -> str:
  if request.accept_mimetypes.best_match(['text/html']) == 'text/html':
      return '
Test
'
  if request.accept_mimetypes..best_match(['text/plain']) == 'text/plain':
      return 'Default text response'
  if request.accept_mimetypes..best_match(['application/xml']) == 'application/xml':
      return '<xml><msg>Test</msg></xml>'

Given the Accept header text/html;q=0.7,application/xml, this would return html content despite the client giving a preference for xml when the handler could also return xml.
You would only use this feature if your handler can return different content types. Testing for a single one at a time seems odd.
If I understand the header semantic correctly, the request provides a list of preferred media types, ordered by preference and the handler has a list of content types he can provide (without any preference). Someone (in this case the application) has to figure out which of the available content types best serves the request.
If there is an agreement on where to put the code, I can try to create a PR.

Adding best_match is a good idea, but I think the API you proposed isn't ideal. I would expect best_match to be called with a list of mimetypes, of which it then returns the best matching one. This could then be used to determine the type of content to return.
Ideally something like:
from starlite import get, Request
from starlite.enums import MediaType

def handler(request: Request) -> str:
  best_match = request.accept_mimetypes.best_match([MediaType.HTML, MediaType.TEXT, MediaType.XML])
  if best_match == MediaType.HTML:
      return '
Test
'
  if best_match ==  MediaType.XML:
      return '<xml><msg>Test</msg></xml>'
  if best_match ==  MediaType.TEXT:
      return 'Default text response'

That was my proposel, implement best_match but don't provide accept_html :D
The code was to show that using the accept_X attributes that you used in your example would lead to non optimal responses. And not using a list of possible response types would be odd.
Another question, what should the attribute on the request object be called? accept or accept_mimetypes? Should all attributes be named after the header keyword? I would lean towards this so if a developer is looking to use a header value it is easier to find.
I'm a bit confused about the different names for the same thing, "mime type", "media type", "content type". "mime type" is the general name for the format. "media type" and "content type" seem to be more specific to http. The API should try to use the appropiate name for the context.

That was my proposel, implement best_match but don't provide accept_html :D

I think they can coexist. They serve different purposes and both are useful to have. E.g. if all you care about is if HTML is accepted, accepts_html is more useful than best_match.

Another question, what should the attribute on the request object be called? accept or accept_mimetypes? Should all attributes be named after the header keyword?

I would say yes. request.accepts should return a Accepts header, which in turn has the best_match method. This would be the schema to follow for all of these header types, e.g. Range or Accept-Language

The AbstractDTOInterface.to_encodable_type() method now receives the connection - so I can envisage something like:
class MyDTO(AbstractDTOInterface[MyModel]):
    ...
    def to_encodable_type(media_type: MediaType, connection: Request) -> bytes:
        return self.dto_backend.to_encodable_type(media_type=connection.accept or media_type)

Just guessing at the interface to demonstrate the point..


Allow alternative initialization with credentials

Connects to https://github.com/Banno/Grip2-Android/issues/1047
Before the only form of credentials Sentry could init() with was the SENTRY_DSN String, this string is actually just a combination of keys delimited by certain things and is parsed when we make requests to authenticate. This hardcoded string will be flagged as a possibly leak of credentials by Google. This PR adds in a few more initializers that use just the keys to avoid this Google Developer warning.

👍

👍  Does this have any CI to wait for?


[eclipse] Save diagram fails

I'm using version 0.25.0-SNAPSHOT of FXDiagram with Eclipse. I get the following error when saving an untitled diagram to a *.fxd file:
Caused by: java.lang.IllegalArgumentException: Path must include project and resource name: /Untitled.fxd 	at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63) 	at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2075) 	at org.eclipse.core.internal.resources.Container.getFile(Container.java:192) 	at de.fxdiagram.eclipse.actions.EclipseSaveAction.doSave(EclipseSaveAction.java:83) 	at de.fxdiagram.eclipse.actions.EclipseSaveAction.lambda$0(EclipseSaveAction.java:64)
The problem is caused by an incorrectly constructed default file name in EclipseSaveAction:
workspaceDir.getFile(new Path(root.fileName)) creates a file directly within the workspace. However, Eclipse requires files to be in a project. I think the issue should be fixed by using the save dialog for eclipse resources as in #41.

Fixed with #41.


CMYK support

Your component is amazing! But I'm currently working in a project from a printing company and they use CMYK color pattern, I know I can convert hex to CMYK after the user picks a color, but I want to know if it's possible to show the CMYK value directly  in the component input area.

This can be done, but I'm not sure it should be done.  Currently it it uses the three common color notations used by browsers.  It also sets the css styles to the currently selected method so there would need to be a separation of "css value" and "display value".
Potentially it could be an option thats false by default.
I'm currently swamped so this project has taken a back seat at the moment.  Not even enough time to validate the current pull requests.

Ok, thanks for the update, I'll try and do the implementation myself, not now because I'm very busy with this project, but as soon as I get a break I'll fork and do a PR with the CMYK option.

+1

Coming in the new re-write, custom notations can be added in the .config() process of the module.
Here is a demo of a CMYK notation being added.  http://labs.tastybytes.net/mdColorPicker/demo/cmyk/


LOD improvements

LODs in switch asset have few issues and need to refactor multiple calls to database, for efficiency.
Efficiency improvement moved to https://github.com/pypeclub/pype/issues/125
[cuID:PYPE-1110]

This is very old and stale now. We haven't had any requests for particular LOD workflow, so I'm closing this, until it resurfaces with production usecase


Another duktape port

https://github.com/nkolban/duktape-esp32
Just wanted to let you know.  You can close this.

Hey @negativekelvin ,
thanks, I already knew about it, when I created this repo. The goal is to have ESP32-JS-support enriched with basic non-blocking networking and a plugin-concept for users to easily extend the eventloop or provide higher level functionality. I will update the Readme soon.


[Error 3.3.2] Components as variable = "error: __name is not defined"

Vue version
3.3.2
Steps to reproduce
This issue was introduced with latest Vue, so is a breaking change if intentional.
When importing a component into a TS file and passing to another object:
import MyComponent from './MyComponent.vue'

// later
const myObject = new SomeClass({el: MyComponent})

Using latest vite/vue this now creates the error:
11:03:31 AM [vite] Internal server error: __name is not defined
  Plugin: vite:vue
  File: /www/src/pages/ElLogo.vue
      at SortTemplate (eval at cloneSort (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/quick-sort.js:2:848), <anonymous>:3:107)
      at cloneSort (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/quick-sort.js:112:10)
      at exports.quickSort (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/quick-sort.js:128:19)
      at BasicSourceMapConsumer.SourceMapConsumer_parseMappings (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/source-map-consumer.js:604:9)
      at BasicSourceMapConsumer.get (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/source-map-consumer.js:70:12)
      at BasicSourceMapConsumer.SourceMapConsumer_eachMapping (/core/node_modules/.pnpm/source-map-js@1.0.2/node_modules/source-map-js/lib/source-map-consumer.js:136:23)
      at mapLines (/core/node_modules/.pnpm/@vue+compiler-sfc@3.3.2/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:3671:18)
      at doCompileTemplate (/core/node_modules/.pnpm/@vue+compiler-sfc@3.3.2/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:3643:13)
      at Object.compileTemplate (/core/node_modules/.pnpm/@vue+compiler-sfc@3.3.2/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:3586:12)
      at compile (file:///core/node_modules/.pnpm/@vitejs+plugin-vue@4.2.3_vite@4.3.5_vue@3.3.2/node_modules/@vitejs/plugin-vue/dist/index.mjs:163:35)
__name is not defined

System Info
Node 18.6, Mac

Any additional comments?
Hoping for a quick resolution to this issue, if there is a debate about this or problem with reproduction, i will create one.

Could you provide a runnable minimal reproduction?

@xiaoxiangmoe i've downgraded vue back to 3.2.X ... did you hit the same problem?
@edison1105 yes, i can put one together if this is an isolated issue...

@xiaoxiangmoe can confirm that the temp solution did patch it
@edison1105 i tried for an hour to recreate this and struck out, gonna take some time to isolate whats causing it (vite vue plugin?)

@edison1105 @yyx990803 possible to get any suggestions on what might causing this? im struggling to duplicate in a minimal environment...  will take me quite a bit of trial and error with packages, vite configs.

@arpowers Do you use tsx or something else to run vite?

@xiaoxiangmoe good work!
@edison1105 duplicated the issue here: https://github.com/arpowers/vite-example
Is related to tsx

Probably related to our addition of vue/jsx-runtime? Although I have no idea how this could cause tsx to compile things differently. Closing as I don't think there's anything actionable on our side (happy to reopen if otherwise)

@yyx990803 Here is a minimal reproduction for why tsx or esbuild will break @vue/compiler-sfc
demo: esbuild break @vue/compiler-sfc's depedency node_modules/source-map-js/lib/quick-sort.js

@xiaoxiangmoe which library has the bug?

Using source-map-js with tsx or
using source-map-js with esbuild with option "keepNames": true

@xiaoxiangmoe @arpowers
Have you solved it? I also encountered this problem， In CICD. local is OK.

I catch it.
In any vue 3.3.2 project. Add file
// file: run-vite.mts
import * as vite from 'vite'

const root = process.cwd()

async function main() {
   const viteDevServer = await vite.createServer({
        root,
        logLevel:  'info',
        server: {
            middlewareMode: false,
            hmr: {
                port:6174,
            },
        },
        appType: 'spa',
    })

  await viteDevServer.listen()
}

main();

Then run
yarn add tsx
./node_modules/.bin/tsx ./run-vite.mts

Then it throw an error:
[vite] Internal server error: __name is not defined

I can also reproduce it using esno, but it's working using jiti

Hey @lixiaofa, have you solved this problem? I faced the same with you.

Try this: https://github.com/esbuild-kit/tsx/issues/113#issuecomment-1524164984

@lixiaofa see https://github.com/vuejs/core/issues/8303#issuecomment-1547540436


Lammps NPT-fixOH jobs analysis

This PR contains the Job files used for the LAMMPS jobs used for fixed bond lengths. It includes the analysis for:

Densities
Bond lengths with the molecules
RDF
Hydrogen bonding

Seems like there might be  some issue with the hbond calculation (everything is 0)


Fix HF26 breaking change for beneficiaries in Streamer.js

In HF26 the form beneficiaries are handled has changed (breaking change), which results in hive-engine nodes diverging, due to the beneficiaires not being parsed correctly.
Before the beneficiary format was the following:
"extensions": [
    [
      0,
      {
        "beneficiaries": [
          {
            "account": "alinares",
            "weight": 300
          },
          {
            "account": "hiveonboard",
            "weight": 100
          },
          {
            "account": "tipu",
            "weight": 100
          }]
      }]
  ]
}]
],

and after HF26:
"extensions": [
    {
      "type": "comment_payout_beneficiaries",
      "value": {
        "beneficiaries": [
          {
            "account": "alinares",
            "weight": 300
          },
          {
            "account": "hiveonboard",
            "weight": 100
          },
          {
            "account": "tipu",
            "weight": 100
          }]
      }
    }]
}]
],

The change adds an additional if case parsing the new beneficiary format.

I have been running the change against a HF26 node for the past 12 hours, all without issues and the node is still in sync, so the change should be all good in my opinion.


Added a mouse hover effect on some buttons on the index page. Added m…

…yself to the contributors list, and fixed that when you mouse hover over the twist button on the index page, it displays the mouse as a pointer.

nice :)


Request: Support and example code for using Azure Blob storage

These tools are great for working with databases on Azure from Unity. I went from having no idea where to start to doing database lookup very quickly.
I would love to be able to save and load files to Azure blob storage with the same convenience. An example of how to use the REST API to do that would be very helpful.

@Agrimat I aim to spin this out as a separate project. This project will only demo Azure App Services.

This new project will be added to the https://github.com/Unity3dAzure collection so I will be closing this issue.


Conceptual fix for #305

Initial approach to fix #305 asyncPartWayThrough should move proceed existing loads to next state.

Nice I agree with the principle here.
Since this is a specific scenario, can we make the change rather to only check if the state is translate, the load.source is not already defined and then running the proceedToTranslate directly?

@guybedford I added 2769a9170b90a14c04d3941d7bd76ee08c7c1b6b to address your concern about only running this code to fix this specific case and also added a test which shows it works. Think the breaking test in travis is because I didn't commit the build artifacts.

Thanks, I've manually merged this in https://github.com/ModuleLoader/es6-module-loader/commit/67f45bfc2f1b3e7f64ef49cefe489ff87be1c580. Note that automated tests and manual tests are duplicated as we make the automated tests the primary ones. The file to edit is system.spec.js.


Action status failed when collaborator for review is not found

Context

Currently, the action status fails when the sync PR is created but failed to get review request as the collaborator might no longer exists in the repo
This is a bit confusing like if PR is created or not plus the URL was incorrect which i have created a PR https://github.com/TreTuna/sync-branches/pull/86
Since its very common for any collaborator to leave an organization, its better to silent the error and just provide the info for debug

Suggested solution

Silence the error and log
Solution => https://github.com/TreTuna/sync-branches/pull/88

@TreTuna Any thoughts on this ?


[gdk] Cannot create gdk::Geometry instance

Fields in gdk::Geometry become private.
This means we can't create the instance after 0.15
https://gtk-rs.org/gtk3-rs/stable/latest/docs/gdk/struct.Geometry.html

What's the use-case for creating a gdk::Geometry yourself exactly?
PR is in https://github.com/gtk-rs/gtk3-rs/pull/721

@sdroege see https://gtk-rs.org/gtk3-rs/stable/latest/docs/gdk/struct.Window.html#method.set_geometry_hints


[connection] Whether you plan to support the csvConnector

Search before asking

[ ] I had searched in the issues and found no similar question.

[ ] I had googled my question but i didn't get any help.

[ ] I had read the documentation: ChunJun doc but it didn't help me.

Description
If I want to make a csvSource, how to do it？？？？
Code of Conduct

[X] I agree to follow this project's Code of Conduct

@KerYooz csv just support in ftp connector，it that meet you?


Throw exception when compose files contain 'container_name' option

#1151  fix

What went wrong:
Could not resolve all files for configuration ':disque-job-queue:compileClasspath'.

Could not download lettuce.jar (biz.paluch.redis:lettuce:3.4.1.Final)
Could not get resource 'https://jcenter.bintray.com/biz/paluch/redis/lettuce/3.4.1.Final/lettuce-3.4.1.Final.jar'.
Connection reset

Is there any problem with CI?

That looks like an intermittent bintray HTTP problem - it happens occasionally. I've kicked off another run.

Looks like the result is the same :(

@rnorth could you please run it one more time?

Just to clarify, should i add more tests or additional checks? Probably i missed something which @bsideup mentioned before.

A lot of unchecked casts :(

@mumukiller it is sad that you decided to close your PR. I submitted a new one since we still want this issue to be fixed.

We should still credit @mumukiller with authorship in the new PR


Several feature candidates

[ ] yarn module, allow user to dynamically add/remove a gearpump worker.
[ ] storm module, verified support for trident.
[ ] support futures in tasks, so that we can do IO call asynclly.
[ ] support changing the master address.
[ ] add more connector module to external database, message queue, and etc..
[ ] support mesos
[ ] support fine-grained resoure scheduling.
[ ] remove gearpump.hostname, or use default value if not specified.
[ ] Enable reliable proxy pattern, so that we can protect against unexpected network glitch.
[ ] Migrate the akka-stream experiment module to akka-stream 2.0
[ ] Enable authentication/authorization.
[ ] Support Kerberos enabled service like HDFS/....
[ ] Allow user to switch options between "at most once", "exactly-once", and "at least once"

bug fixes:

worker will start metric service for multiple times if it lose connection with master, and then get reconnected.

UI feature request can be found at: https://github.com/gearpump/gearpump/issues/1678

how about #1723 ?

features
Apache Jira

support changing the master address
https://issues.apache.org/jira/browse/GEARPUMP-87

support futures in tasks, so that we can do IO call asynclly
https://issues.apache.org/jira/browse/GEARPUMP-81

Migrate the akka-stream experiment module to akka-stream 2.0
https://issues.apache.org/jira/browse/GEARPUMP-22

Allow user to switch options between "at most once", "exactly-once", and "at least once"
https://issues.apache.org/jira/browse/GEARPUMP-33

yarn module, need to handle resource manager failure or resource preemption
https://issues.apache.org/jira/browse/GEARPUMP-43

support mesos
https://issues.apache.org/jira/browse/GEARPUMP-88

support fine-grained resoure scheduling
https://issues.apache.org/jira/browse/GEARPUMP-89

All feature candidates have been move to Apache jira as in the above table. Close this.


Add _setCollateralPaused function to Comptroller

Add a _setCollateralPaused(CToken cToken, bool state) public returns (bool) function the Comptroller that disables future borrows for all users using a cToken as collateral
Similar to the other guardian roles, the function can be called by either the pauseGuardian or the admin (governance). However, only admin can pass state as false. Both can pass it as true.
If state is passed as true, the Comptroller should prevent future borrows across all Anchor markets for any user that uses the cToken as a collateral by checking checkMembership(address account, CToken cToken) function. If passed as false, the effect should be reversed.
The function should allow multiple cTokens to be paused as collateral at the same time.
Changes should be made to https://github.com/InverseFinance/anchor/blob/master/contracts/Comptroller.sol and its dependencies only.
The modified Comptroller will replace the existing Anchor Comptroller on Ethereum by executing a a proxy pattern upgrade on the Unitroller https://etherscan.io/address/0x4dcf7407ae5c07f8681e1659f626e114a7667339
Changes to the Comptroller must follow proxy pattern best practices in order to avoid an upgrade flaw

Saw your tweet, here's the PR
https://github.com/InverseFinance/anchor/pull/21

Isn't this already covered by the below method and check? https://github.com/InverseFinance/anchor/blob/9c3239cd1b8c5c9e7e480a29f371ce1d01f16f4d/contracts/Comptroller.sol#L1012-L1020 https://github.com/InverseFinance/anchor/blob/9c3239cd1b8c5c9e7e480a29f371ce1d01f16f4d/contracts/Comptroller.sol#L331-L332

Isn't this already covered by the below method and check?

Different scenarios. The above case is enough if you want to pause borrowing a token completely. The issue requested a way to stop said token from being a collateral for new loans.
E.g.
Pausing ETH borrowing would prevent people from borrowing more ETH, but doesn't stop them from borrowing WBTC with ETH deposits.


Roborazzi Test for Markdown Playground

I've added a Roborazzi test for Compose Desktop support (based on the suggestions here). I also added the necessary dependencies for testing and compose.

I would expect some screenshots to be checked in, are you going to add them? We should also enable git-lfs and enforce snapshots use it, you can see some example setup here: slackhq/circuit#204

I'm having trouble getting the screenshots to actually generate. The test is successfully running, but the captureRoboImage() calls aren't producing any image files on my end. I am also trying to call it to a directory but nothing gets produced. I feel like the build files are set up but am I missing something in the test to produce images?


Compiled Island code throws Uncaught ReferenceError: Deno is not defined.

I'm getting the error Uncaught ReferenceError: Deno is not defined
in this bit of code (compiled, pretty printed in the inspector):
Deno?.core ? core = Deno.core : core = {
  setNextTickCallback: void 0,
  evalContext(_code, _filename) {
    throw new Error('Deno.core.evalContext is not supported in this environment')
  },
  encode(chunk) {
    return new TextEncoder().encode(chunk)
  },
  eventLoopHasMoreWork() {
    return !1
  }
};

This is in the js for an Island component.
I think the code typeof Deno === 'undefined' would work here.
Maybe if someone points me to the bit that compiles this code I could make a PR and start testing.

Where does this code come from? What are your dependencies?

Could we get a reproc example?

Because island code will be executed in browser. So you have two choices:

Do not use native api like Deno in island.
Use import { IS_BROWSER } from "$fresh/runtime.ts"; to detect environment before you call native api like Deno in island.

Where does this code come from? What are your dependencies?

@lucacasonato I think they pushed the error to their repo here: https://github.com/Industrial/deno-fresh-blog/blob/main/islands/PostListIsland.tsx
from the discord it sounds like their issue is coming from the apollo/client library.
Haven't tested this myself, but I was getting a similar error trying to use node-geocoder. I think this was happening because of that library's dependency on node-fetch though.

Hi. I've just updated the code and replaced Apollo with react-query which is a lot smaller but get the same problem.
I'm actually getting a different error in a different spot now and I see that it's trying to bundle code meant for the server. I'll investigate a bit more :)

I fixed the issue with this commit: https://github.com/Industrial/deno-fresh-blog/commit/82aae92302623fdb6d80d6506ffd24c14f109b61#diff-23cc22e12738a61ec6ba2b9485d9104243189e3bdd368c2a517fe8a1d3b90c96L9
I was shipping code that used the dotenv library from https://deno.land which is meant for server side code only.
Since Deno Deploy does not support dynamic imports yet (right?) It's currently not possible to ship env vars into a build. In my case I wanted to configure the API URL via an env var since I'm used to this with Next.js but I forgot that Next.js has a custom solution for this (https://nextjs.org/docs/basic-features/environment-variables) which is a bit too much for the Fresh scope I guess :)
You can view the blog at https://c9-deno-fresh-blog.deno.dev/
It's backed by a Directus Community (shared) CMS so the DB instance might spin down at some point..

I hit the same snag, and while this is a "D'oh" problem, would it help to update the error message to say "in some cases, this might mean you are trying to import server code into an island" or something? Not necessary, but quality of life.

This is a good UX improvement. Opened #1053 about it.


Tool Discovery and Dictionary Implementation

#34 Adds to this.

Forgot to close this, has been done and can verify it hash been implemented.


Refactor: Refactors environment auto-idle from uint to boolean

General Checklist

[ ] Affected Issues have been mentioned in the Closing issues section
[x] Documentation has been written/updated
[ ] PR title is ready for inclusion in changelog

Converts environment auto-idle from uint to bool to reflect the refactor in https://github.com/uselagoon/lagoon-cli/pull/366.

:see_no_evil: can't believe I missed that one. Thanks!


Can't view events on dev instance

Events on the activity page (see http://<IP_ADDRESS>:3000/#/activity) don't lead anywhere when clicked on the dev AMI. Production site is fine.
This was first noticed by @arpaddanos when trying to view submitted evidence in his instance.

So, this is being triggered by an 'undefined method status for sourceerror on the server side. This is weird because that method exists by default as there is astatuscolumn in thesource` table. Have you run the latest migrations in the AMI? That's all I can think might be causing it, but I would expect to see a lot more issues than just that if the database wasn't current.

yeah, migrations have been run. I'll leave an instance running here for bug-fixing. Credentials in slack.

@acoffman fixed this by pushing an updated database to the AMI.


Accessibility updates

Adding a few missing content descriptions for a better accessibility experience.

Nice! Thank you @davotoula


Support for Flatpak version?

🧐 Have you fully read the README and viewed similar issues?

[X] I have read the README
[X] I have checked older issues, open and closed
[X] I did a clean install of Spotify and SpotX

Сountry of your account
Indonesia
What is your Spotify Plan?
Free
Do you have Spicetify installed?
No
ℹ Computer information
- Spotify: <IP_ADDRESS>6.gc5f8b819
- Distro: Fedora Linux 37 Silverblue
- Shell: Bash 5.2.9

📝 Description
Hi, so I tried to use this script in Spotify installed by flatpak.
The error was:
Spotify not found in PATH. Searching for Spotify directory...
Spotify directory not found. Set directory path with -P flag.
Exiting...

It might be because flatpak version of Spotify is installed in /var/lib/flatpak/, Instead of /usr/bin/.
So I tried using -P flag in /var/lib/flatpak/app/com.spotify.Client.
Then the output was:
No xpui found in directory provided with -P.
Please confirm directory and try again or re-install Spotify.
Exiting...

I tried to search for xpui, and what I found is xpui.spa inside /var/lib/flatpak/app/com.spotify.Client/x86_64/stable/33a8119a0b42716946ae2bb0ac43c8e34e4522b8623b9dc818bbd6576ac88194/files/extra/share/spotify/Apps.
Then I tried to run the script in that folder, but the script still did not find any xpui file:
No xpui found in directory provided with -P.
Please confirm directory and try again or re-install Spotify.
Exiting...

curl: (23) Failure writing output to destination

🖵 Terminal Output
Spotify not found in PATH. Searching for Spotify directory...
Spotify directory not found. Set directory path with -P flag.
Exiting...

📸 Screenshots
No response

I tried to search for xpui, and what I found is xpui.spa inside /var/lib/flatpak/app/com.spotify.Client/x86_64/stable/33a8119a0b42716946ae2bb0ac43c8e34e4522b8623b9dc818bbd6576ac88194/files/extra/share/spotify/Apps. Then I tried to run the script in that folder, but the script still did not find any xpui file:

@frnmz
you're to set the spotify directory path, not spotify/Apps path. Drop /Apps.

Sorry for necroposting, but I think it would be a good idea to leave the command for flatpak install, so it's easier to check it for new users


Memory leak

The buffer will never be freed.
https://github.com/Dobigthing666/Squirrel/blob/5e81c3f182d0bbb52b5261fe85e5a6eb8735bc9d/srcs/custom_mutator.cc#L58

@zr950624 Please take a look at this commit (https://github.com/Dobigthing666/Squirrel/commit/8380e5cb4ab2ceab56f76a8098d07957b3cbb953) I accidently committed it to master.


Feature packet dispatcher

Isolated the original "dispatcher" functionality and moved it as internal implementation. All the previous PcapDispatcher/PcapReceiver functionality that was intended to break the API appart as normal (Pcap.class) and advanced (PcapDispatcher.class/PcapReceiver.class and PcapTransmitter.class) has been moved as internal implementation and the API updated so that Pcap.class has provides all the neccessary APIs in a single place.
This is less confusing and works well with extensions such as the jnetpcap-pro module which extends the Pcap implementation and replaces the StandardPcapDispatcher (a new internal implementation of dispatcher functionality) with PacketDispacher which provides packet, multi-protocol and IPF reassembly  functionality.

Here is an example of jnetpcap-pro API in the works. Its a separate module that depends on jnetpcap and core-protocol modules (both to be released this week.)
This is working code.
public class PcapExample1 {

	/** The PCAP_FILE constant pointing to the included capture file. */
	private static final String PCAP_FILE = "pcaps/HTTP.cap";

	/**
	 * Offline packet capture using jNetPcap. This is the example start.
	 *
	 * @param args ignored
	 * @throws PcapException any libpcap errors or converted return codes
	 *                       to this exception, including any related messages
	 */
	public static void main(String[] args) throws PcapException {

		/* Automatically close Pcap resource when done */
		try (PcapPro pcap = PcapPro.openOffline(PCAP_FILE)) {

			/* Compile packet filter to capture TCP packets only */
			BpFilter filter = pcap.compile("tcp", true);

			/* Set our packet filter */
			pcap.setFilter(filter);

			/* Cosmetic only, Packet.toString() will pretty print packet details */
			pcap.setPacketFormatter(new PacketFormat(Detail.LOW));

			final int PACKET_COUNT = 1;

			/* nextPacket is packet handler and user obj at the end */
			pcap.loop(PACKET_COUNT, PcapExample1::nextPacket,
					"Hello, this is a no-copy high level Packet");
		}
	}

	static PacketFormat fmt = new PacketFormat(Detail.LOW);

	private static void nextPacket(String message, Packet packet) {

		System.out.printf("%03d: caplen=%-,5d ts=%s%n",
				packet.descriptor().frameNo(),
				packet.captureLength(),
				new Timestamp(packet.timestamp(), packet.timestampUnit()));

		System.out.println(packet);
	}
}

Produces the following output:
Packet:     <IP_ADDRESS> > <IP_ADDRESS>, proto=6, len=74 bytes, info=Tcp
Packet:
Packet:           frameNo = 0
Packet:         timestamp = 176800267-12-06 05:36:22.469000000
Packet:           wirelen = 74
Packet:            caplen = 74
Packet:
Ethernet:   Ethernet II, src: ASUSTekC_B3:01:84 dst=Actionte_2F:47:87 offset=0 length=14
Ethernet:
Ethernet:             dst = 00:26:62:2F:47:87
Ethernet:             src = 00:1D:60:B3:01:84
Ethernet:            type = 0800 (IPv4)
Ethernet:
IPv4:       Internet Protocol Version 4, offset=14, length=20
IPv4:
IPv4:               flags = 2 [DF]
IPv4:                 dst = <IP_ADDRESS>
IPv4:                 src = <IP_ADDRESS>
IPv4:                 ttl = 64
IPv4:            protocol = 6 [TCP]
IPv4:      identification = 52,059 [0xCB5B]
IPv4:        total length = 60 bytes
IPv4:             version = 4
IPv4:       header length = 5 [5*4 = 20 bytes]
IPv4:
TCP:        Transmission Control Protocol, offset=34, length=40
TCP:
TCP:                flags = 2
TCP:                  seq =<PHONE_NUMBER>
TCP:               hdrLen = 10
TCP:              dstPort = 80
TCP:              srcPort = 57678
TCP:                  ack = 0
TCP:             checksum = 36679
TCP:

All jNetPcap API changes for preparation for jNetPcap Pro complete


Fix UnicodeDecodeError while opening txt files on Windows

Hi,
While running the following code snippet on Windows:
from bella_cleaner.cleaner import Cleaner

base_dir = "./"
config_name = "acik_ulasim"

cleaner = Cleaner(base_dir=base_dir, config_name=config_name)
text = "Hello, this is Duygu!"
text = cleaner.clean(text)

I encountered the following error:
Traceback (most recent call last):
  File "C:\Users\Ahmet\workspace\bella-turca-cleaners\t.py", line 6, in <module>
    cleaner = Cleaner(base_dir=base_dir, config_name=config_name)
  File "C:\Users\Ahmet\workspace\bella-turca-cleaners\bella_cleaner\cleaner\engine.py", line 17, in __init__
    self.load_commons()
  File "C:\Users\Ahmet\workspace\bella-turca-cleaners\bella_cleaner\cleaner\engine.py", line 45, in load_commons
    replacements = open(replace_file, "r").read().split("\n")
  File "C:\Users\Ahmet\.pyenv\pyenv-win\versions\3.10.7\lib\encodings\cp1254.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 9: character maps to <undefined>

This error seems to be caused by the default encoding on Windows. I think addding the encoding="utf8" option when opening .txt files would work.
Btw, thank you for your great efforts on Turkish NLP 🙂

Hellos, thanks for the visit!
As you know since Python 3, all Python strings are Unicode strings, Python is supposed to  handle Unicode natively.  The issue above is not related to Python or this library code, it's rather a Windows OS problem.  Afaik Python encoding in Windows is broken, Windows uses some sort of legacy encoding (I don't know why). According to the official Python docs , you can set this env variable PYTHONUTF8=1 and the problem will be gone :grin:  As I said, this is not a code related issue, so I'll pass the PR this time 😇


BNDDIR is both object type and file extension for source, leading to circular dependencies

Need to use BNDDIRSRC for the file extension to avoid make looping

fixed by pull 163


[External] [Feature] Clarify Conda Requirement

Hello,
I'm interested in using tostadas in a multi-user environment that isn't very conda friendly. If Nextflow + Apptainer are already available in my environment is it still necessary to have conda available?
Place an :x: in a Box that Best Matches the Feature's Importance:

[] 1 - Most important (absolutely integral and will not use codebase at all without it)
[] 2-4 - Moderate (still using codebase for other functions but is serving as a blocker for future use-cases)
[ :x: ] 5 - Least important (would like to see but there are no stringent expectations nor urgency for current/future use-cases)

Sorry for the enormous delay on this.
But no you do not need conda, you can run it with docker or singularity using -profile docker or -profile singularity.


Use integer cents in AMAP / Tombola

Description
I change all the amounts in cents (integer) to avoid rounding issues.

Nice one ! You will need to look into migration files to convert float euro database values to new int cent values


Fix importing an SVG with a style tag when another SVG is already present

thanks. I don't think I'll be able to get around with this until this weekend


The word file is highlighted as if it has special meaning

Environment data

VS Code version: 1.47.2
Extension version (available under the Extensions sidebar): v2020.7.94776
OS and version: Windows 10 2004 (Build 19041.388)
Python version (& distribution if applicable, e.g. Anaconda): 3.8.3
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N/A
Relevant/affected Python packages and their versions: N/A
Relevant/affected Python-related VS Code extensions and their versions: N/A
Value of the python.languageServer setting: Microsoft

Expected behaviour
The word file doesn't hold any special meaning in python as far as I know (I opened and interpreter typed file and got NameError).
That being the case I would expect it to be highlighted in the same ways as other variable names (which in my case is default color).
Actual behaviour
The word file is highlighted in light blue, the same as global python variables such as __name__ and __file__.

Steps to reproduce:

Create a new python file
Write the word file in it

We don't control syntax highlighting for Python files. That comes from VS Code which gets it from MagicPython. It's best to report an issue there.

My mistake!
I'll open an issue there.


[Bug] vstshortcuts = 0 but keyboard shortcuts still enabled (and can't use 1, 2, 3, 4, 5 CMD+Z etc)

Describe the bug:

vstshortcuts = 0 but when I open serum, pressing 1, 2, 3, 4 switches the tabs up the top.
Also with Ableton live closed, the same keys don't work in other applications i.e. 1,2,3,4,5. CMD+Z etc are blocked but 6 and onwards work until LES is quit.

To Reproduce:
Steps to reproduce the behavior:

Open LES
Open LES settings and set vstshortcuts = 0
Open Live 11
Insert serum.vst
Press 1,2,3,4

Expected behavior:
Tabs don't switch.
Desktop:

macOS Big Sur 11.2.3 (20D91)
LES v1.3.1-alpha (0.9.78 in mac inspector)
Live 11.0 (2021-02-08_9dc150af94)

Additional context:
I've restarted my mac and problem still persists.
settings.ini
settings.txt
console log
LES Console Log.txt

Have the same issue, lateset version of Live 11, latest stable version of LES. I can't Ctrl + Z, but also pressing 1-4 in any window doesn't work anymore, even with vstshortcuts disabled.

Hey! Sorry for not replying earlier, turns out that I never got notified as issue notifications are opt-in (something I've come around to doing much recently)
We'll take a look into the Cmd+Z and numerical blocking but for vstshortcuts=0 and Serum (which I'll move into a separate issue), there are a few questions, which I'll post in #5.
Thanks for your bug report and thanks for using LES for macOS!


main.py

Changes in texts only and made it even more better and gentle.

Updated kill.py, just edited the texts in the last line to make it even more better.


nslookup throws "nslookup: can't resolve '(null)': Name does not resolve"

Running from a freshly spawned container:
/ # nslookup www.google.com
nslookup: can't resolve '(null)': Name does not resolve

Name:      www.google.com
Address 1: <IP_ADDRESS> dfw28s02-in-f4.1e100.net
Address 2: 2607:f8b0:4000:811::2004 dfw28s01-in-x04.1e100.net
/ #

I did some digging online, and found a couple references to this:

[RESOLVED] Service name resolution broken on alpine and docker 1.11.1-cs1
virtualbox-host-dns-resolver with alpine linux

For the second reference listed above, scroll to the bottom. It appears that the issue might be with how Alpine Linux (at least when run as a container) may be mishandling AAAA records.
It's not yet apparent how best to deal with the can't resolve '(null)': Name does not resolve issue, short of putting a wrapper script around it to filter out the noise.

can I close this one @quadespresso ?

SGTM


Improve and fix issues in the Ballerina bindings generator tool

Purpose
Provides the following improvements and fixes to the Ballerina bindings generator tool for Java APIs.
Improvements:

Add a new array util function for retrieving a handle from a Ballerina object array which is representing a Java object array.
Create empty dependency Ballerina objects to represent failed class generations.
Remove the implementation generation of dependent Ballerina objects. This would prevent the chain generation of dependent Ballerina objects. If a user requires the implementation of one of these classes, it should be explicitly generated using the command.
Automatically update the existing constants file when re-running the command.
Delete the respective empty dependencies if any, when a class is newly generated by re-running the command.

Fixed Issues:

Fixes the incorrect mapping of Java object arrays into Ballerina object arrays. Both when receiving Java objects as return types and when passing them as parameters.
Generating of Ballerina objects for Java child classes.

Fixes #20902
Check List

[X] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #21746 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #21746   +/-   ##
=======================================
  Coverage   14.72%   14.72%
=======================================
  Files          51       51
  Lines        1399     1399
  Branches      214      214
=======================================
  Hits          206      206
  Misses       1177     1177
  Partials       16       16

Continue to review full report at Codecov.

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


Unknow Item is shown while browsing a store

I am logged in a Buyer. Searched an item - say cookies. It showed my item and also the Store. I clicked on 99Store. it displayed all the items of 99 store.
Along with all the item it displayed additional tile - withunkno item. Refer screensho

Oh! this is Buyer catalog in its works. Not yet ready.


RHEL 9 instructions for Joining a RHEL VM to Microsoft Entra Domain Services

Please add RHEL 9 instructions for Joining a RHEL VM to Microsoft Entra Domain Services.
Article link: https://learn.microsoft.com/en-us/entra/identity/domain-services/join-rhel-linux-vm?source=recommendations&tabs=rhel

@crussell52
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

Thanks for your feedback. We need to close all open issues at this time so we can migrate to a new Entra repository. I created a work item to have an expert review this feedback and update docs accordingly. #please-close


flint & steel craft

I noticed that we have now a flint & steel from fire and another from fake fire. do we really need 2 different cafting recipes and 2 different flint&steel?
I think that the flint + steel recipe is nice :)

The flint & steel from fire mod is the latest minetest_game flint & steel, we need to remove the others flint & steel from other mods

Fixed https://github.com/MinetestForFun/server-minetestforfun/commit/e96e52f358e4306f0c953c02a1709cf9874c0e73


Add Playwright tests to console.

We should try to use Playwright to run tests against a running ftl dev command
I think this can be do manually by running npx playwright test while ftl dev is running.
We can also make this an integration test which fires up and deploys a couple modules (probably time and echo for now) then run playwright as part of another integration test action.

There is a Go library for Playwright. We'll have to have a think about where to run these tests though, I assume we'll have a lot of Playwright tests, would each Playwright test correspond to a single integration tests? That might end up being quite slow.
We're going to want to improve the integration testing framework so that it reuses the existing controller without restarting everything, so perhaps once that exists we could do the above.

I think in the future we will definitely have many tests, yeah.  I don't think each test would correspond to a single integration test. In fact, I think for the foreseeable future, we can have all the tests run as a single integration test. If that becomes an issue we can shard them out later.
That's how things are working here now. We start the controller once, then start running all the tests against the running controller. I also want to run the "default" FTL examples (ftl dev --recreate) with this, and probably switch to just running the exemplar once that is ready. Verses having a dedicated set of testdata for the playwright stuff. This way we can stay in sync with our exemplar and get a representative system for freeeeee :)


Add test_file_regex argument.

Addresses https://github.com/SublimeText/syntax-test-action/issues/14. I chose regex because it allows users to easily include multiple directories if desired, e.g.:
./(tests1|tests2)/syntax_test.*

I have tested the pattern on ubuntu:latest, but I don't know how to test the GitHub action itself.

This change won't work as the location where you replaced the existing pattern is used to remove syntax test files from the default packages that are copied over if they are requested via another argument.

As discussed in #14, this behavior is not desired.


Update nl.json

:gear: Release Notes
Dutch language file nl.json updated

Hi @tooh thanks for taking the time to make a pull request.
It looks like your forked version of the UI is a little bit behind the latest code. It looks like in the latest code, some of the text that you have translated has already been done.

It might be easiest if you delete your forked repo from github settings, and then fork the UI again so yours is up-to-date.
Then if you have time, have a look at the updated nl.json file, there are definitely some new strings that need translating!


Configuration example for a light theme

I personally use solarized light, and the default dark theme provided by vuerd was really difficult to look because of the contrast, so I quickly created a config with just inverted colors for most of the theme to make a light version of it.

Wow, thank you for your contribution!


Unable to view hardhat-ethernal transactions in https://app.tryethernal.com/

Hello,
I am having trouble viewing contracts in the block explorer at https://app.tryethernal.com/ with a premium account.
I have tried using both hardhat-ethernal and ethernal and observed the following:
Option 1: hardhat-ethernal
hardhat.config.ts
In my hardhat.config.ts file, I am exporting the following:
  ethernal: {
    email: process.env.ETHERNAL_EMAIL,
    password: process.env.ETHERNAL_PASSWORD,
    workspace: <WORKSPACE_NAME>,
    uploadAst: true
  },

hardhat command
hardhat test <path-to-file>

hardhat logs
I am also seeing the following in my hardhat logs:
[Ethernal]  Logged in with <my_email_address>
...
[hardhat tasks]
[Ethernal]  Tracing transaction...
[Ethernal]  Tracing transaction...
[Ethernal]  Tracing transaction...

app.tryethernal.com Workspace
RPC Server: http://<IP_ADDRESS>:8545/
Chain: Ethereum
Trace on a hardhat network

Option 2: ethernal
For this option, I am able to view the transactions in the app, however, the uploadAst is not working so I cannot interact with the contracts.
hardhat.config.ts
  ethernal: {
    email: process.env.ETHERNAL_EMAIL,
    password: process.env.ETHERNAL_PASSWORD,
    workspace: <WORKSPACE_NAME>,
    uploadAst: true
  }

hardhat node
I run a localhost hardhat node using:
hardhat node

ethernal login
npx ethernal login

ethernal listening
ethernal listen --astUpload

hardhat command
hardhat --network localhost test <path-to-file>

app.tryethernal.com Workspace
RPC Server: http://<IP_ADDRESS>:8545/
Chain: Ethereum
Trace on a hardhat network

Thank you in advance for any suggestions.

Hi!
The uploadAst option is to decode variable storage. Is that what you are looking for? Or are you trying to interact with read/write methods through the UI?
For the latter, you need to call ethernal.push in your deploy script, like this:
import { ethernal } from 'hardhat';
await ethernal.push({
  address: contract.address,
  name: contract.name //This needs to exactly match the name of the contract
});

Ah, thanks @antoinedc! I misunderstood the purpose of the parameter. I will add the push method to my scripts then.

Cool! Let me know if that works! Feel free to ping me on Discord (Antoine | Ethernal) otherwise, it might be easier to debug


Fbp webinspector

first try, missing html/js/css.
Could you guys take a look and see with some of the designers if that could be useful for them? I'll do some static HTML/JS/CSS that will render a table with nodes and connected ports, with that I plan to put the last value and maybe plot a graph of values-over-time.
This is to address #1585

New version at #1802


Setting test reporter

This may be a dumb question, but how would I go about changing the test reporter for ember-mocha? I'm not a big fan of the basic reporter being used by ember test but can't seem to find documentation on how to go about changing it.

:+1: I'm looking for the exact same thing. http://mochajs.org/#reporters states that only this reporter is supported by Mocha. This reporter doesn't work well for me because I can't scroll on the tests page and 'hide passed tests' option has no effect on the output.

@nurazem I did some research on this and found that ember is actually using the testem package to run its tests, which comes with a limited number of reporters.
My testem.json file currently looks like this:
{
  "framework": "mocha",
  "test_page": "tests/index.html?hidepassed",
  "reporter": "tap",
  "launch_in_ci": [
    "PhantomJS"
  ],
  "launch_in_dev": [
    "PhantomJS",
    "Chrome"
  ]
}

The options for reporter are:

tap
xunit
dot
teamcity

I'm using tap, which is the default option and seems to be the best of the available options. dot may be of interest to you because it has way less scrolling.
The takeaway from this is that I would really like to be able to just use mocha's reporters.

@natecox I cannot get the 'dot' reporter to even work :(

So i discovered you can indeed change the reporter by
mocha.reporter('html');

In your test-helper.js. But its still a pain as there is no good html reporters...


Function from useFetcher() should have params first

Is your feature request related to a problem? Please describe.
The ordering of params and body for useFetcher() is inconsistent with the rest of Rest Hooks library. Having params first seems to also match the general outside world.
Describe the solution you'd like
create({}, { title: 'hi', body: 'this content is great' });
update({ id }, { title: 'ho', body: 'this content is mediocre' });
fetchList({});
fetchDetail({ id });

Switch ordering and now body is optional so we don't have awkward undefined being passed.

Totally agree. I think params should come before body.

agree


Readable warning on gamepad value for keyboard binding

Please change the message to "Gamepad constant value XYZ cannot be used as keyboard binding ..." so that the fault is more direct.

Thank you kindly


Vulnerability roundup 85: fuse-7z-ng-git-2014-06-08: 1 advisory [6.5]

search, files

[x] CVE-2019-14860 CVSSv3=6.5 (nixos-20.03, nixos-unstable)

Scanned versions: nixos-20.03: a84b797b28e; nixos-unstable: 22c98819ccd. May contain false positives.

False positive: Red Hat Fuse, not FUSE


Can't import LocationGetLocationServices in android studio

Hello every body,
I can't import import into androidStudio from eclipse. Have you an idea ?

Project LocationGetLocationServices:/home/morgan/Documents/dkit/mobile devlopment/coursera-android/Examples/LocationGetLocationServices/project.properties:
Library reference ../../../../Classes/AndroidOnline/Coursersa-Android002/eclipse/google-play-services_lib could not be found
Path is /home/morgan/Documents/dkit/mobile devlopment/coursera-android/Examples/LocationGetLocationServices/../../../../Classes/AndroidOnline/Coursersa-Android002/eclipse/google-play-services_lib which resolves to /home/morgan/Dropbox/dkit/Classes/AndroidOnline/Coursersa-Android002/eclipse/google-play-services_lib

that scan you copy of the error? try to write clearly..

This comes from a hardcoded reference to the Google Play Services library in the project.properties file of the project you are importing.
Make sure you have downloaded Google Play Services in the SDK manager. Then change the value for 'android.library.reference.1' in the 'project.properties' of the project you're importing to /extras/google/google_play_services/libproject/google-play-services_lib.

@wardweistra , @Nymerea actually you need to change value 'android.library.reference.1' equal to ../google-play-services_lib

Unsubscribe
On Oct 4, 2015 7:14 AM, "Ward Weistra"<EMAIL_ADDRESS>wrote:

This comes from a hardcoded reference to the Google Play Services library
in the project.properties file of the project you are importing.
Make sure you have downloaded Google Play Services in the SDK manager.
Then change the value for 'android.library.reference.1' in the
'project.properties' of the project you're importing to
/extras/google/google_play_services/libproject/google-play-services_lib.
—
Reply to this email directly or view it on GitHub
https://github.com/aporter/coursera-android/issues/27#issuecomment-145337077
.


HDDS-5732 datanode duplicate write when concurrent write

What changes were proposed in this pull request?
when concurrent write,for example,the chunkinfo{offset is 8192000,chunk size is 4096000} write in chunkfile,but the chunkinfo{offset is 4096000,chunk size is 4096000} is not write in chunkfile,so when this chunkinfo write in chunkfile will print warning log datanode duplicate write,but this chunkinfo was not wrote before.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-5732
How was this patch tested?
ci

Thanks @cchenax for the patch. To check the overwrite flag , seek and trying to read something may not be a viable option. With sparse files, read should return 0's not EOF. Do we still see concurrent writes for the same block?

@cchenax , any update?


fix: Security Vulnerability in GitHub Workflows

"github.event.issue.title" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions for more details.
Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] PR is being merged under a feature flag

QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

Thank you very much @arunstar for this contribution. 🙏


Output methods ignore the block when the first argument is non-nil

This is different from the Logger behavior:
$ irb --noecho
irb(main):001:0> require 'logger'
irb(main):002:0> l = Logger.new(STDOUT)
irb(main):003:0> l.info("foo") { "bar" }
I, [2015-04-05T01:45:37.844138 #11084]  INFO -- foo: bar
irb(main):004:0> l.error("foo") { "bar" }
E, [2015-04-05T01:49:18.446210 #11084] ERROR -- foo: bar

Also see http://ruby-doc.org/stdlib-2.1.0/libdoc/logger/rdoc/Logger.html#method-i-info, especially the first example.
This feature is used in the wild: https://github.com/lostisland/faraday/blob/master/lib/faraday/response/logger.rb#L22-L23, and this is an example of a third-party code expecting a Logger value, which I can't simply replace with Syslogger.

Thanks for the report. The code at https://github.com/crohr/syslogger/blob/master/lib/syslogger.rb#L55 should be modified to correctly handle this behaviour, i.e. simply delegate to #add as done in http://ruby-doc.org/stdlib-2.1.0/libdoc/logger/rdoc/Logger.html#method-i-info. I'll have a go at the end of this week, but if you have time to do it before do not hesitate to send a pull request!

Done, I think. See the pull request.


request Authorization header

I have a setup following your node.js example. Creating users, logging in and logging out all works fine. When I try to go to the "Protected" page though I get rejected by the ensureAuthenticated middleware.
The request to /api/me does not have an authorization header. Instead the req.headers.authorization looks like this:
{ host: 'localhost:3000',
  connection: 'keep-alive',
  accept: 'application/json, text/plain, */*',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36',
  referer: 'http://localhost:3000/',
  'accept-encoding': 'gzip,deflate,sdch',
  'accept-language': 'en-US,en;q=0.8,fr;q=0.6' }

So how do I make sure my request has an authorization header when hitting /api/me?
It looks like this part of angular sends the request:
angular.module('MyApp')
  .factory('Account', function($http) {
    return {
      getUserInfo: function() {
        return $http.get('/api/me');
      }
    };
  });

After login the server successfully sends a token, but when trying to access protected resources my requests don't have a req.body.authorization header, so they don't pass the ensureAuthenticated middleware:

I'm getting the same problem as jgentes, in my client local storage i can see token, but req object on server has no authorization header.

same...

Have you used $authProvider.httpInterceptor flag at all?
Default value: httpInterceptor: function() { return true; } which means it will use HTTP interceptor that adds this authorization header to every request.
Here is the source code:
.factory('SatellizerInterceptor', [
      '$q',
      'SatellizerConfig',
      'SatellizerStorage',
      'SatellizerShared',
      function($q, config, storage, shared) {
        return {
          request: function(request) {
            if (request.skipAuthorization) {
              return request;
            }

            if (shared.isAuthenticated() && config.httpInterceptor(request)) {
              var tokenName = config.tokenPrefix ? config.tokenPrefix + '_' + config.tokenName : config.tokenName;
              var token = storage.get(tokenName);

              if (config.authHeader && config.authToken) {
                token = config.authToken + ' ' + token;
              }

              request.headers[config.authHeader] = token;
            }

            return request;
          },
          responseError: function(response) {
            return $q.reject(response);
          }
        };
      }])
    .config(['$httpProvider', function($httpProvider) {
      $httpProvider.interceptors.push('SatellizerInterceptor');
    }]);

I am not sure why it doesn't work for you, but you can easily add this at the application level in your app's config.

@umasgn you're talking express server? Here are some express tips on accessing headers: http://stackoverflow.com/questions/13147693/how-to-extract-request-http-headers-from-a-request-using-nodejs-connect
You using passport for authentication on server side?

@umasgn @mbejda
I have commit below line and my problem solved

// $authProvider.httpInterceptor = false;


Support for Postbox 7

Hello,
As a new feature of Postbox 7, the user can now install third-party add-ons. I tried to install the latest version of Markdown Here, but the add-on isn't compatible with Postbox 7.0.2.
Could this add-on be made compatible for Postbox 7?
Cheers,
Angelo Varlotta

There has been some work from the community on a Markdown Here plugin for Thunderbird 68+. This plugin won't function in Thunderbird 78+, but I have found out that it works almost flawlessly in Postbox 7.0.30. There are at least two plugins for Thunderbird 68+ that work in Postbox 7.0.30:

Markdown Here plugin by @StuntsPT (see issues/577#issuecomment-540011543 on GitHub). Download link: markdown_here.tar.gz.

Markdown Here plugin by @neilmayhew with community fixes (see issues/577#issuecomment-574773225 on GitHub). Download link: markdown-here-v2.13.4-community.xpi.

The later plugin is the more recent one with some community fixes, even though some things still don't work like the preference pane. The only issue I've encountered so far is that links in emails written in markdown and converted into HTML with the plugin won't work by simple click if the Google Safe Browsing warning appears and then ignored. Right clicking on the link and selecting 'Open in browser...' however will work.

There has been some work from the community on a Markdown Here plugin for Thunderbird 68+, which is documented here at Support Thunderbird 68 #577. Even though this plugin doesn't seem to function anymore in Thunderbird 78+, I have found out that it works almost flawlessly in Postbox 7.0.30. There are at least two plugins for Thunderbird 68+ that work in Postbox 7.0.30:

Markdown Here plugin by @StuntsPT (see issues/577#issuecomment-540011543 on GitHub). Download link: markdown_here.tar.gz.

Markdown Here plugin by @neilmayhew with community fixes (see issues/577#issuecomment-574773225 on GitHub). Download link: markdown-here-v2.13.4-community.xpi.

The later plugin is the more recent one with some community fixes, even though some things still don't work like the preference pane. The only issue I've encountered so far is that links in emails written in markdown and converted into HTML with the plugin won't work by simple click if the Google Safe Browsing warning appears and is then ignored. Right clicking on the link and selecting 'Open in browser...' however will work.

@capac Thank you so much for taking the time to share that here!

No problem, glad to help!

The last issue I noticed with the plugin about not opening links after the Google Safe Browsing warning isn't actually related to the plugin itself. Once of warning appears and it dismissed in the email, the links aren't activated by clicks any longer. This must be a recent change in Postbox itself.

The last issue I noticed with the plugin about not opening links after the Google Safe Browsing warning isn't actually related to the plugin itself. Once the warning appears and is dismissed in any email, the links are no longer activated by click. This must be a recent change in Postbox itself.

I'll add that when I installed either of the two above-listed plugins, I didn't get a MarkdownHere icon on my tool bar, nor could I edit the hotkey for toggling between MD and HTML, but the default hotkey -- ctrl-alt-M -- works.

Most of the preference pane options don't work, and @neilmayhew himself says so in the comment where he posts his solution. The Markdown Here icon does appear for me in the toolbar and works without issue for me since version 7.0.30. Currently I'm on version 7.0.42 and I've had no problems.

There has been a new update to the Thunderbird 78+ MDH extension by @jfx2006 which is available at this link, and just out of curiosity I tried to install it on Postbox. Sadly, it doesn't work in the latest Postbox, currently at 7.0.43. The installation of the extension stops at the error message:

It looks like you are running an older version of Thunderird. Open the Markdown Here Options via the message window Tools menu.

It's a pity since the new extension update to Thunderbird seems to have a functioning preference pane as well, which would be the last big feature to implement to the functional extension (markdown-here-v2.13.4-community.xpi) made by @neilmayhew which almost works perfectly in Postbox.

There has been a new update to the Thunderbird 78+ MDH extension by @jfx2006 which is available at this link, and just out of curiosity I tried to install it on Postbox. Sadly, it doesn't work in the latest Postbox, currently at 7.0.43. The installation of the extension stops at the error message:

It looks like you are running an older version of Thunderird. Open the Markdown Here Options via the message window Tools menu.

It's a pity since the new extension update to Thunderbird seems to have a functioning preference pane as well, which would be the last big feature to implement to the functional extension (markdown-here-v2.13.4-community.xpi) made by @neilmayhew which almost works perfectly in Postbox.

jfx2006 said,

I'm part of the Thunderbird core development team and paid staff … As for the browser version, someone else would need to take that on.

It seems like someone else would be needed to fix up a Postbox version, too.
I'm deprecating my version, since the new changes are far superior. It was actually just a hack, made from patches submitted by other people. I didn't realize it was almost working in Postbox. I don't know anything about the Postbox add-on API, but if it's modelled on the previous generation of the Thunderbird add-on API, it wouldn't be helped by jfx2006's changes. Unfortunately, I can't try it in Postbox myself since I'm on Linux and there's no Linux version of Postbox.

jfx2006 said,

I'm part of the Thunderbird core development team and paid staff … As for the browser version, someone else would need to take that on.

It seems like someone else would be needed to fix up a Postbox version, too.
I'm deprecating my version, since the new changes are far superior. It was actually just a hack, made from patches submitted by other people. I didn't realize it was almost working in Postbox. I don't know anything about the Postbox add-on API, but if it's modelled on the previous generation of the Thunderbird add-on API, it wouldn't be helped by jfx2006's changes. Unfortunately, I can't try it in Postbox myself since I'm on Linux and there's no Linux version of Postbox.

The older version of Markdown generally works okay in Postbox, but it has a few rough edges. If anyone would like to work on improving this version, please contact sherman at postbox dash inc dot com and we would be happy to compensate you for your efforts.
Sherman Dickman
Founder - Postbox
@shermandickman

The older version of Markdown generally works okay in Postbox, but it has a few rough edges. If anyone would like to work on improving this version, please contact sherman at postbox dash inc dot com and we would be happy to compensate you for your efforts.
Sherman Dickman
Founder - Postbox
@shermandickman


local and remote testing framework

All tests are located under a /tests directory in the jetty-runtime project.  Each group of tests should exist within the scope of a single maven artifact which contains a deployable docker container (local, remote, or both) and the associated test cases which follow the conventions detailed below.
NOTE: The property ‘jetty.test.image’ will be passed in which is analogous to the FROM Docker directive.  This serves as an effective disconnect between the jetty-runtime project and the specific docker image/tag that the respective tests will be run against.

cd tests;
mvn install -Premote -Djetty.test.image=gcr.io//jetty9:9.3

This will activate a profile and enable remote testing. For each test artifact the appengine-maven-plugin will be used to deploy an instance of the application and the appropriate test cases will be run.  The webapps that will be built will be done through the cloud builder mechanism so the image to be tested (as linked in the jetty.test.image property) will need to be deployed to the appropriate gcr.io location.

cd tests;
mvn install -Plocal -Djetty.test.image=jetty:9.x

This will activate a profile and enable local testing.  The tests activated under this profile will make use of the locally installed image and tag.  The docker-maven-plugin is used to build the test docker container and the io.fabric8 plugin is used to manage the integration test lifecycle..  Local tests have a much smaller scope as they are not able to make use of many of the features of the jetty-runtime project.

hm, 503 from the test itself?  the image is being created ok using that gcr.io/google-engine/jetty line right? typically I have to use jetty:9.3 for the local image, it won't download the one it needs from a remote afaik

figure it out, need to increase the time a bit on the test to give the container time to properly startup
fixing an issue with the lifecycle not stopping the docker container in post-integration-test phase before verify and then I'll push a new branch for issue-72 and drop this PR (since it got messed up with the update and picked up TESTING.md)


Device is a kind of endpoint but only has an IP address, no Port

See PR #657 - questions have come up on EDR as to when to use endpoint vs device.  Endpoint is _endpoint from which both network_endpoint and device extend, however only network_endpoint has the port attribute.  Presumably the Device also is addressable due to ip and so it makes sense to also have port' - either as a client or server (e.g. Device as a server would listen on port` while client devices would have ephemeral ports).

On further analysis: Can handle this with the Host profile on Network Activity.  Separate approach for Servers.  Will need a Listen activity but otherwise can represent a server with multiple IPs and Ports.


Backports_lnbits_changes

Backports changes that we made in lnbits/nostrclient

Looks good. Any reason not to merge?