Uncapitalize error messages

As suggested by https://google.github.io/styleguide/go/decisions.html#error-strings

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

Project coverage is 91.66%. Comparing base (40984e6) to head (3740b77).
Report is 1 commits behind head on master.

Files
Patch %
Lines

bloomfilter.go
80.00%
2 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #18   +/-   ##
=======================================
  Coverage   91.66%   91.66%
=======================================
  Files           3        3
  Lines         168      168
=======================================
  Hits          154      154
  Misses          8        8
  Partials        6        6

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


Added the test case for IDENTITY-4291

Don't merge this until the Carbon next version released.

Closing since we can have a better test solution for this use case without uploading an existing database.


Fix Tomcat Versions wiki url

If approved, I'll open PR's with the same change for the 10.0.x, 9.0.x and 8.5.x that have the same issue.

This should be changed to the canonical URL which is:
https://cwiki.apache.org/confluence/display/TOMCAT/Tomcat+Versions
In the meantime, I have added a redirect so users don't see a 404.

FYI, no need for one PR per branch unless the patch doesn't apply cleanly for some reason. Generally, we merge PRs ot main and then cherry-pick them to the earlier branches.

Thanks for spotting this. I did a more global update of wiki URLs to use the new wiki location.


implement the PintMetaIndex

As mentioned in #162, it is possible to get the indexing functions to work, although there still is no public API.
I also still don't quite understand how other methods work since the refactor, so this only implements sel.
Usage, for anyone who wants to play around with it
import xarray as xr
from pint_xarray.index import PintMetaIndex

ds = xr.tutorial.open_dataset("air_temperature")
arr = ds.air

new_arr = xr.DataArray(
    arr.variable,
    coords={
        "lat": arr.lat.variable,
        "lon": arr.lon.variable,
        "time": arr.time.variable,
    },
    indexes={
        "lat": PintMetaIndex(arr.xindexes["lat"], {"lat": arr.lat.attrs.get("units")}),
        "lon": PintMetaIndex(arr.xindexes["lon"], {"lon": arr.lon.attrs.get("units")}),
        "time": arr.xindexes["time"],
    },
    fastpath=True,
)
new_arr.sel(
    lat=ureg.Quantity([75, 70, 65], "deg"),
    lon=ureg.Quantity([200, 202.5], "deg"),
)

This will fail at the moment because xarray treats dask arrays differently from duck-dask arrays, but passing single values works!

[x] Closes #162
[ ] Tests added
[x] Passes pre-commit run --all-files
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

I also still don't quite understand how other methods work since the refactor, so this only implements sel.

Here are a few comments. Happy to answer questions if any.
There are some Index methods of like isel, stack, rename that I guess do not depend on units and where you could just forward the call + args to the wrapped index.
For some other methods like concat, join, equals, reindex, the easiest would probably to require that the other indexes given as arguments must have the same units (and raise an error otherwise). An alternative option would be to implicitly convert the units of those indexes, but it's difficult to do that in an index-agnostic way unless we define and adopt in Xarray some protocol for that purpose.
The general approach used in the Xarray indexes refactor heavily relies on the type of the indexes (at least when we need to compare them together). That's not super flexible with the PintMetaIndex solution here, but I think it's reasonable enough. For example, alignment will only work when the indexes found for a common set of coordinates / dimensions are all PintMetaIndex objects. This might behave weirdly when the PintMetaIndex objects do not wrap indexes of the same type, although this would be easy to check.
I wonder whether whether PintMetaIndex should accept one unit or a map of units. The latter makes sense if, e.g., you want to reuse it to wrap multi-indexes where the corresponding coordinate variables (levels) may have different units.
Regarding Index methods like from_variables and create_variables, I guess PintMetaIndex would implement a lightweight wrapping layer to respectively get and assign a pint quantity from / to the Xarray variables.
You should also be careful when converting the units of indexed coordinates as it may get of of sync with their index. As there's no concept of "duck" index, the easiest would probably be to drop the index (and maybe reconstruct it from scratch) when the coordinates are updated.

@keewis I have been looking into this once again and now I think I better understand what you'd like to achieve with the PintMetaIndex wrapper. A few other suggestions:
Wrap index coordinate variables as unit-aware variables
I'm not familiar with pint, but if a pint.Quantity works with any duck-array without coercing it into a specific type, I think that something like this may work:
class PintMetaIndex:

    def create_variables(self, variables=None):
        index_vars = self.index.create_variables(variables)

        index_vars_units = {}
        for name, var in index_vars.items():
            data = array_attach_unit(var.data, self.units[name])
            var_units = xr.Variable(var.dims, data, attrs=var.attrs, encoding=var.encoding)
            index_vars_units[name] = var_units

        return index_var_units

We cannot use IndexVariable since (if I remember well) it coerces the data as a pd.Index. I think it is fine to stick with Variable for now, it will work in most cases except for, e.g., xr.testing.assert_identical() that maybe checks for the variable type (although maybe check_default_indexes=False may disable it). We'll need to change that in Xarray anyway.
Set new Pint index(es)
Since PintMetaIndex is meant to wrap any existing index, it could be done via the accessors while quantifying the variables. Something like this might work:
@register_dataset_accessor("pint")
class PintDatasetAccessor:

    def quantify(self, units=_default, unit_registry=None, **unit_kwargs)):
        ...

        ds_xindexes = self.ds.xindexes
        new_indexes, new_index_vars = ds_xindexes.copy_indexes()

        for idx, idx_vars in ds_xindexes.group_by_index():
            idx_units = {k: v for k, v in units.items() if k in idx_vars}
            new_idx = PintMetaIndex(idx, idx_units)
            new_indexes.update({k: new_idx for k in idx_vars})
            new_index_vars.update(new_idx.create_variables(new_index_vars))

        new_coords = xr.Coordinates(new_index_vars, new_indexes)

        # needs https://github.com/pydata/xarray/pull/8094 to work properly
        ds_updated_temp = self.ds.assign_coords(new_coords)

        ...

It is still useful to implement PintMetaIndex.from_variables() with the common PandasIndex case so that it also works with Dataset.set_xindex:
class PintMetaIndex:

    @classmethod
    def from_variables(cls, variables, options):
        index = xr.indexes.PandasIndex.from_variables(variables)
        units_dict = {index.index.name: options.get("units")}
        return = cls(index, units_dict)

ds = xr.Dataset(coords={"x": [1, 2]})

ds_units = ds.set_xindex("x", PintMetaIndex, units="m")

Data selection
Beware that Index.sel() may return new index objects along with the dimension integer indexers. the PintMetaIndex wrapper will need to wrap them before returning the query results.

nit: I would rename PintMetaIndex to just PintIndex.

Further comments:
Implementing Dataset.pint.dequantify() would look very much the same than in Dataset.pint.quantify() except that it would extract the wrapped index: new_idx = self.index.
For Dataset.pint.to(), I think it is possible to convert the variables first, then re-create the underlying index with converted_idx = type(self.index).from_variables(converted_vars) and then wrap the latter with PintMetaIndex(converted_idx, new_units). I don't think it is always a good idea, though, as re-building the underlying index from scratch may be expensive and may load lazy coordinate data.

@benbovy, with slight tweaks I got this to work :tada: :
In [1]: import xarray as xr
   ...: import pint_xarray
   ...:
   ...: ureg = pint_xarray.unit_registry
   ...: ds = xr.tutorial.open_dataset("air_temperature")
   ...: q = ds.pint.quantify({"lat": "degrees", "lon": "degrees"})
   ...: q.sel(lat=ureg.Quantity(75, "deg").to("rad"))
.../xarray/core/indexes.py:473: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
  index = pd.Index(np.asarray(array), **kwargs)
Out[1]:
<xarray.Dataset>
Dimensions:  (time: 2920, lon: 53)
Coordinates:
    lat      float32 [deg] 75.0
  * lon      (lon) float32 [deg] 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
  * time     (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
    air      (time, lon) float32 [K] 241.2 242.5 243.5 ... 241.48999 241.79
Indexes:
    lon      PintMetaIndex
    time     PintMetaIndex
Attributes:
    Conventions:  COARDS
    title:        4x daily NMC reanalysis (1948)
    description:  Data is from NMC initialized reanalysis\n(4x/day).  These a...
    platform:     Model
    references:   http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly...

The only hickup is that somehow we seem to call safe_cast_to_index, which gives us the warning above. This doesn't seem to affect the functionality of the index, though (at least for sel).

(the failing tests are expected, I will have to update some of the workaround code)

Regarding all the errors in CI TypeError: <pint_xarray.index.PintMetaIndex object at ...> cannot be cast to a pandas.Index object, an easy fix would be to implement PintMetaIndex.to_pandas_index() and just call that method for the wrapped index. This could be done for most of the rest of the Index API I think.

would that just delegate to the underlying index, or also wrap it?
In any case, I wonder if we should just fix diff_* to not make use of obj.indexes? That way, we could avoid the conversion.

would that just delegate to the underlying index, or also wrap it (probably the former, but I wanted to make sure)?

In the case of .to_pandas_index() just delegate is enough. For other methods (.rename, .roll, .isel, etc.) wrapping the result will also be needed. For .sel it might also be needed to check and wrap any index returned within the IndexSelResults.

In any case, I wonder if we should just fix diff_* to not make use of obj.indexes? That way, we could avoid the conversion.

Yes definitely, I think I fixed it in one of my open PRs in the Xarray repo.

Not sure if this was addressed:

For some other methods like concat, join, equals, reindex, the easiest would probably to require that the other indexes given as arguments must have the same units (and raise an error otherwise).

Isn't it addressed by pint.Quantity.to_base_unit?

Isn't it addressed by pint.Quantity.to_base_unit?

No, because to_base_unit will convert the index to the base units (i.e. combinations of the base units m, s, kg, ...). Instead, the idea is to require exactly matching units for now, which can be relaxed at a later point.

@benbovy, something I just noticed: where do we need PintIndex.from_variables? As far as I understand it, this is used for set_xindex, but since PintIndex is a meta index (or rather, a index that wraps other indexes) it might not really make sense to pass it to set_xindex... Would it be justified to not implement it, even though the base class says otherwise ("Every subclass must at least implement Index.from_variables")?

what we also need to figure out is how to handle set_xindex on top of a quantified dataset (so a PintIndex would be overwritten – if that makes sense?)

(or an object of the default index type used by Xarray)

is there a way to access this default index type? Otherwise it's probably fine to hard-code PandasIndex for now and fail if that doesn't work.

(I think that currently this is not even possible to overwrite an existing index and .drop_indexes must be called first)

Makes sense, though in that case to be extra friendly I wonder if we can customize the error message? Instead of recommending .drop_indexes I'd like to recommend .pint.dequantify (though it's probably fine if we keep that for later or just rely on the docs)

How about issuing a user warning instead?

This is what pint does when cast to a numpy array, but I'm not really happy with that, warnings are just too easy to ignore.
I'll see how far I can get without .to_pandas_index, and if anything that truly wants to cast to a PandasIndex I may have to reconsider.

couldn't PintIndex already support multiple units?

That might be true, I might have been too tired yesterday when writing this. I'll still postpone the implementation to a later PR, though.

now that I have more time to work on this, I think the only things left to fix right now is:

[ ] figure out what to do with assert_identical. The point of using assert_identical was to make sure the units on dimension coordinates survived, but now that they are on indexes we can maybe just remove that check / use assert_equal after applying strip_units to actual
[ ] figure out how to get rid of the UnitsStrippedWarning emitted by .pint.to, which happens because Dataset / Coordinates tries to create default indexes on quantified variables when assembling the converted variables back into a dataset in dataset_from_variables. To resolve this, I think we need to somehow figure out how to recreate the underlying index from the converted variables.

The remaining methods I think we can leave to separate PRs: concat, stack, unstack, join, reindex_like.

figure out how to get rid of the UnitsStrippedWarning emitted by .pint.to, which happens because Dataset / Coordinates tries to create default indexes on quantified variables when assembling the converted variables back into a dataset in dataset_from_variables.

For this one it would be nice if dataset_from_variables could be refactored to allow passing a Coordinates object (coordinate variables + indexes) that we can then pass the the Dataset constructor (maybe after updating it) so that it will skip the creation of new default indexes. The only thing is that I don't remember if Coordinates was already part of Xarray's public API before this new behavior was implemented (you might need to temporarily rely on importing from xarray.core).

we're already using some part of the private API of xarray (Coordinates._construct), so I would be fine to use Coordinates either way. However, from my experiments it appears just passing the variables to the constructor of that class still creates the default indexes. Do you have any hints on how to avoid that? Is that Coordinates._construct again?

You'd need to pass Coordinates(variables={...}, indexes={}) to skip the creation of default indexes, or Coordinates._contruct_direct should work too (see https://github.com/pydata/xarray/pull/8107).

a couple more notes:

the diff called by assert_identical appears to "work" just by changing a.indexes to a.xindexes (it doesn't raise, at least). However, Dataset.equals and Dataset.identical don't compare the indexes, yet, and the diff doesn't display differing indexes, either.
looking at dataset_from_variables, I think we can make that a lot simpler by passing along the original dataset, the new variables and the new indexes (if any)

looks like @TomNicholas' efforts to allow creating xarray objects from Coordinates objects without indexes fixed a lot of the issues I had here, as well. One of the few things left is to get the diff to not convert everything to pandas indexes.

with this, all the tests pass locally (except the doctests, which I didn't try yet). For them to pass in CI as well, we need a released version of xarray's main branch (otherwise the indexes will be cast to pandas indexes in the tests).

with the recent commits, this should be ready for reviews (cc @TomNicholas, @benbovy, @jthielen).
Note that even though the index implements a couple of the methods of the custom index base class, the wrapper methods (.pint.*) should still be preferred. The reason for that is these implementations are not yet complete: for example, PintIndex.sel should modify the IndexSelResult object returned by the wrapped index. This can be fixed in follow-up PRs (this PR is already big enough).

So right now indexes is a valid argument to the DataArray constructor but not to the Dataset constructor?

What exactly are you referring to? The entire codebase is built upon call_on_dataset, which (just like much of the methods on DataArray) converts to a temporary dataset, applies the function, then converts back.

What exactly are you referring to?

I was actually referring to your top-level example in your github comment:
Usage, for anyone who wants to play around with it
import xarray as xr
from pint_xarray.index import PintMetaIndex

ds = xr.tutorial.open_dataset("air_temperature")
arr = ds.air

new_arr = xr.DataArray(
    arr.variable,
    coords={
        "lat": arr.lat.variable,
        "lon": arr.lon.variable,
        "time": arr.time.variable,
    },
    indexes={
        "lat": PintMetaIndex(arr.xindexes["lat"], {"lat": arr.lat.attrs.get("units")}),
        "lon": PintMetaIndex(arr.xindexes["lon"], {"lon": arr.lon.attrs.get("units")}),
        "time": arr.xindexes["time"],
    },
    fastpath=True,
)
new_arr.sel(
    lat=ureg.Quantity([75, 70, 65], "deg"),
    lon=ureg.Quantity([200, 202.5], "deg"),
)

This will fail at the moment because xarray treats dask arrays differently from duck-dask arrays, but passing single values works!

But that seems to be the case when I look at the DataArray source.

So right now indexes is a valid argument to the DataArray constructor but not to the Dataset constructor?

Yes but this is really for internal use along with the fastpath argument. Ideally we might want to remove both and have a fast-path factory instead for DataArray, but last time I checked it looked less straightforward to refactor than it seemed.

Great to see this ready @keewis ! I went through the changes and it looks good to me (cannot tell much about the pint-specific logic, though).

I was actually referring to your top-level example in your github comment:

Yes but this is really for internal use along with the fastpath argument

that comment is also two years old, you'd use the Coordinates object now

right now .pint would still be necessary, with the big advantage that indexed coordinates can carry units.
In new PRs, we can step by step extend the index and deprecate most of the workaround methods in the .pint namespace (I'd have to look into which ones can actually be replaced).

Again unrelated, but speaking about deprecation. I have played around with warnings.deprecated with the backport to typing-extensions. It works wonderfully, highly recommend it.

thanks all, I'll merge this now and we can continue improving upon this.
The only thing I was slightly worried about is backwards-compatibility, but given that this is such a major improvement I guess we can get away with it (also, we have been recommending .pint.quantify as a way to construct quantified objects, so we might be breaking less code than expected).


fix missing fragment portion of LocalPath

Summary of the Pull Request
Indexer does not return the complete path to files and folders where the name contains the '#' symbol.
PR Checklist

[x] Applies to #4759
[x] CLA signed. If not, go over here and sign the CLA
[x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #4759
[x] Tests added/passed
[ ] Requires documentation to be updated

Info on Pull Request
In the URI make up, the '#' symbol is the syntax to indicate the fragment part of the URI:

We replace the symbol with the encoded syntax %23 so it is escaped and LocalPath property returns the full path.
Validation Steps Performed

Create folder called 'C# In Depth'
Create file called 'Transitioning from C# to F#'
Search in PT Run for the newly created file e.g. 'transitioning'

Before PR:

After:

Hell yeah @jjw24!

Let's hold for .22 on this


Text Offset in search bars when enabled

Using the extension on edge from chrome store since the edge store version isn't updated to latest version.
Without using extension-

Using extension-

Can this be fixed?

Both are the same extension, the same version. <IP_ADDRESS>. Have you sure it is the Modern Scrollbar that is causing this?
Edge version

Chrome version

Default scrollbar, Modern Scrollbar disabled

@luandersonn 100% because of the extension.
1 thing I forgot to mention, it may be caused by the new chromium build.
My primary browser is edge canary, which has chromium v90.
Facing issues in Edge canary, edge dev.
Not reproducible in edge stable. I just checked it.

Oh, okay. They probably changed something on preview version (canary, dev). Maybe will be fixed on consumer version.

Possible.
I use the dev build as my daily driver. If you have time, please try and see what's causing this problem. I understand you not prioritizing this, and it's totally fine if you don't. Just a small request that's all. No need to devote a lot of time, just a little is fine if you want.
Thank you for replying. Have a nice day. :)

Looks normal (Edge Canary). Can you confirm if the bug persists?

Looks normal (Edge Canary). Can you confirm if the bug persists?

Yes, it still exists. It's everywhere, even in Github, see,

This is confusing me 🤯

What version is? Canary or Dev? Can you check if it's the lastest version?

My version: 90.0.806.0 canary (64 bits)

I don't believe it.
I just received the 90.0.806.0 update and the issue is fixed. Like about 10 mins back. It was present yesterday, today the update seems to rectify the problem.
Good job Microsoft I guess...

Great news :)


Duplicate files in vendor folder

Monolog version 1.12
Write your bug report here.
When I run composer update I get a list of warnings as Ambiguous class resolution.
When I check vendor folder there are 2 files of each class as Classname 2.php
AbstractHandler 2.php			FilterHandler.php			LogglyHandler 2.php			RollbarHandler 2.php AbstractHandler.php			FingersCrossed				LogglyHandler.php			RollbarHandler.php AbstractProcessingHandler 2.php		FingersCrossedHandler 2.php		MailHandler 2.php			RotatingFileHandler 2.php AbstractProcessingHandler.php		FingersCrossedHandler.php		MailHandler.php				RotatingFileHandler.php AbstractSyslogHandler 2.php		FirePHPHandler 2.php			MandrillHandler 2.php			SamplingHandler 2.php AbstractSyslogHandler.php		FirePHPHandler.php			MandrillHandler.php			SamplingHandler.php AmqpHandler 2.php			FleepHookHandler 2.php			MissingExtensionException 2.php		Slack AmqpHandler.php				FleepHookHandler.php			MissingExtensionException.php		SlackHandler 2.php BrowserConsoleHandler 2.php		FlowdockHandler 2.php			MongoDBHandler 2.php			SlackHandler.php
My Composer file is ;

{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.4",
"laravel/framework": "5.8.*",
"laravel/tinker": "^1.0",
"predis/predis": "^1.1"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.2",
"facade/ignition": "^1.4",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^3.0",
"phpunit/phpunit": "^7.5"
},

Any idea why this is happening?

where are these files in the vendor folder ?

@UdyW
@stof
i've double check everything but i can't reproduce it !
are u sure that it was not temporarily or composer related ?


Figure out how to make it easier to work with external packages

Right now it's possible to add directories to the search path using PYTHONPATH when executing extism-py, it would be nice to have a more complete story around how to integrate with pip/virtualenv.

For anyone interested, there is some additional documentation added in #39


Discrepancy between oaDOI and unpaywall?

Dear Heather & Jason,
is there a data discrepancies between oaDOI and unpaywall?
Example:  10.1017/jns.2017.43
Bronze OA tab:

But the oaDOI API only reports it's closed: http://api.oadoi.org/10.1017/jns.2017.43
{
  "results": [
    {
      "algorithm_version": 1,
      "doi": "10.1017/jns.2017.43",
      "doi_resolver": null,
      "evidence": "closed",
      "free_fulltext_url": null,
      "is_boai_license": false,
      "is_free_to_read": false,
      "is_subscription_journal": true,
      "license": null,
      "oa_color": null,
      "reported_noncompliant_copies": [],
      "url": "http://doi.org/10.1017/jns.2017.43"
    }
  ]
}

... in the meantime, I'll contact CUP and request them to report license information to CrossRef ;)
Thanks for you marvelous work,
inga

Yes, Unpaywall queries Google Scholar if oaDOI does not find any open
copies.  The Google Scholar check can be disabled in a user's Unpaywall
settings.  We may also remove the Google Scholar check in future versions
of Unpaywall as oaDOI keeps getting better :)
Sincerely,
Heather
--
Heather Piwowar
cofounder of Impactstory http://impactstory.org/: share the full story of
your research impact.
working from Vancouver, Canada
@researchremix http://twitter.com/#!/researchremix and @Impactstory
https://twitter.com/ImpactStory
On Thu, Sep 14, 2017 at 6:38 AM, ioverka<EMAIL_ADDRESS>wrote:

Dear Heather & Jason,
is there a data discrepancies between oaDOI and unpaywall?
Example: 10.1017/jns.2017.43
Bronze OA tab:
[image: cup-bronze-tab]
https://user-images.githubusercontent.com/8920469/30432564-58f8342c-9962-11e7-9291-def3174ad5f8.png
But the oaDOI API only reports it's closed: http://api.oadoi.org/10.1017/
jns.2017.43
{
"results": [
{
"algorithm_version": 1,
"doi": "10.1017/jns.2017.43",
"doi_resolver": null,
"evidence": "closed",
"free_fulltext_url": null,
"is_boai_license": false,
"is_free_to_read": false,
"is_subscription_journal": true,
"license": null,
"oa_color": null,
"reported_noncompliant_copies": [],
"url": "http://doi.org/10.1017/jns.2017.43"
}
]
}
... in the meantime, I'll contact CUP and request them to report license
information to CrossRef ;)
Thanks for you marvelous work,
inga
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Impactstory/unpaywall/issues/21, or mute the thread
https://github.com/notifications/unsubscribe-auth/AANngetrvYeLaP_wFRtOE_vBD5NRmJvaks5siSxJgaJpZM4PXmJJ
.

@hpiwowar @jasonpriem Querying Google Scholar appears to have already been removed in the latest commits. This is very interesting. I would have thought this would have a significant negative impact on unpaywall, most notably because it will no longer find ResearchGate material. Could you say a little bit more about the rationale? Perhaps oaDOI is simply getting to be comprehensive enough? Thanks,
Eoghan

Yep, you said it right. It does hurt our recall a bit, but not as much as it once would've, since oaDOI is becoming a lot more comprehensive.
Based on our log analysis, oaDOI (which includes no RG or Academia) is delivering OA copies for 47% of papers that actual users view. You can read lots more detail about this in our recent paper here: https://peerj.com/preprints/3119v1/
So, the improvement in oaDOI made us feel pretty good about removing the GS calls. And we've been getting more feedback from folks that the inclusion of RG/Academia results was confusing or problematic for users (esp potential institutional users), and so we figure now's a good time to remove them.
All that said, leaving this issue open because oaDOI is still reporting the example at the top of the thread wrong. This will probably resolve itself in the next month or two as everything moves to data_standard=2 (see the v2 API docs for more details).

worth reading https://twitter.com/Protohedgehog/status/909053304042336256 on RG news.

Thanks @jasonpriem. That is very interesting & great that oaDOI is reaching this point of maturity. The discussion and definition in the peerj preprint are very useful. The update from @jibe-b re RG is also very relevant. Thanks

Today I encountered just the reverse - this DOI was listed as open in the OADOI API, while the Unpaywall plugin correctly listed it as not open.
10.1142/S0192415X08005916
When will it be removed from the OADOI database?
Also: is there a place we should be reporting issues like this, when OADOI says an article is free but it isn't?
Thanks for your help!

I'm not able to reproduce the last reported issue, see https://api.oadoi.org/10.1142/S0192415X08005916 as well as https://api.unpaywall.org/10.1142/S0192415X08005916. Where have you found the problem?
Note: The name oaDOI has been retired recently (see https://twitter.com/unpaywall_data/status/957384991360667648) - so I believe that there shouldn't be a huge discrepancy any longer.

Also, the v2 API shows this as closed: https://api.unpaywall.org/v2/10.1142/S0192415X08005916

Closing since the underlying functionality has changed substantially and the examples are now being reported correctly.
Note that it's still possible to see a discrepancy between the plugin and API as described here.


[firebase_dynamic_links]  iOS resolveShortLink method not exposed

The current firebase_dynamic_links SDK exposes the following method to get a dynamic link from a given URL:

getDynamicLink(url)

Which in iOS calls handleUniversalLink(_:completion:) under the hood.
However, that method from the iOS SDK is not able to resolve a short dynamic link. If you try, you get the following exception:
The operation couldn’t be completed. Universal link URL could not be parsed by Dynamic Links.

For that the iOS SDK provides a specific method:

resolveShortLink(_:completion:)

Would it be possible to expose this method?

@davidmigloz according to documentation:
Convenience method to handle a Universal Link whether it is long or short.

Are you sure your URL is properly formed?

Actually, the long version doesn't work either in iOS:
final dynamicLink = await FirebaseDynamicLinks.instance.getDynamicLink(
  Uri.parse('https://app.dev.brxs.com/referral/?link=https://app.dev.brxs.com/referrals-invitation?referralCode%3D7F1E4C6%26referralName%3DDavid%26shareId%3D743f811c-eacc-4172-a280-1f0175b49b0c&apn=com.brxs.test&isi=6443703266&ibi=com.brxs.test&st=Invest+in+BRXS+with+me!&sd=Easily+invest+in+real+estate.&si=https://assets-global.website-files.com/6182ab7c3f9983c2bc2a8485/61a6bb0b2bd3b47420db2bce_Brxs_WebThumbnail.png&utm_campaign=referrals&utm_medium=referrals&utm_source=app&ct=referrals'),
);

Android:

iOS:

(Firebase is properly configured in the iOS app. As the app is also generating the short dynamic links and the generation is workibg fine in both Android and iOS).

It might be, I'll check this

I cannot reproduce this bug on iOS. Can you try without specifying a custom domain?

Indeed, it seems to be related to custom domains.
I tried with:
final dynamicLink = await FirebaseDynamicLinks.instance.getDynamicLink(
  Uri.parse('https://brxsstage.page.link/zNHN43nUAyfqJbfYA'),
);

And it worked fine on both platforms.
Android:

iOS:

Sorry, the exception was caused because I was missing https:// in the custom domain specified in FirebaseDynamicLinksCustomDomains.
Before:
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>app.dev.brxs.com/referral</string>
</array>

After:
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://app.dev.brxs.com/referral</string>
</array>

Now an exception is not thrown anymore, but I still get null when calling getDynamicLink().
final dynamicLink = await FirebaseDynamicLinks.instance.getDynamicLink(
  Uri.parse('https://app.dev.brxs.com/referral/NJFFkPY6f3Ft16Xc8'),
);


Cannot set property 'groupid' of undefined

Azure Data Studio Version:

Steps to Reproduce:

duplicated from #8401


Laravel 5.1

I'm new to laravel. Hope there is a section for laravel 5.1.

You can use laravel 5 section for 5.1 version without any trouble.

Are there any example to test?? I can't get simple "Cart::add...." in my controller to pass to my view . Help! please :S


Add connectivity matrix controls

closes: #51

Closing because #56 addresses this functionality of a UI for creating a connectivity matrix


Configure the Airflow default worker to run on an EC2 instance

The default worker should run on an EC2 instance instead of an ECS Fargate task
Acceptance criteria:

[ ] Ensure the EC2 instance has appropriate configurations (e.g., instance type, storage, network settings) for optimal performance.
[ ] Test the EC2 instance to confirm it can handle typical workloads and preserve files for subsequent tasks.

Won't do because we will lose the flexibility of using ECS Faregate


[1.18.2] /yigd grave [player] not working

Describe the bug
Players cannot run self view using /yigd or /yigd grave
Admin can, but admin cannot run /yigd grave playername

self view and adminview are enabled in the config.

To Reproduce
Steps to reproduce the behavior:

Try commands above, as OP try /yigd grave player
as player; try /yigd grave

Expected behavior
to allow grave to open
Desktop (please complete the following information):

OS: [e.g. Windows, MacOS] windows
Minecraft Version: [e.g. 1.16.5, 1.17.1] 1.18.2
Version: [e.g. 1.0.0, 1.0.3] 1.3.3

Problem has been located and will be fixed in an update either in a few hours or tomorrow. However I did manage to execute /yigd grave [playername] when I tested this. Anyway that should be fixed too. Thanks for reporting!

Just pushed a new update. Also just adding to last message, the reason why it worked with /yigd grave [playername] is because I was testing it on myself. It should work on others now, as long as you're an OP on the server.
The update can be done only on the server for it to work, just keep in mind you have to change the config file for enchantments, since the format of them changed (see the wiki for how it's setup now).
Also just as a sidenote, I noticed in your discord when you tried to help someone and found this issue, you mentioned you'd have to wait until the mod updated to execute that command. I think I found out that you found the grave and everything was good, but there's also a command /yigd moderate that will show all players. Here you can find the person you're looking for as well and see their graves. Not that I think you'll have this problem again but would have worked as a temporary fix. Idk why I want to point that out, but it may become useful in the future, somehow.
Anyway I hope this helps, and that there won't be any more problems with the commands!

Thank you!
Also yes I used the moderate command and learned that it showed all players! one thing that was rather.. time consuming was going through the page and also the green font on the players name (It's really saturated) any chance on changing that color for a later update? also, a search bar would be amazing!
Thank you again for the help on this

Just pushed a new update. Also just adding to last message, the reason why it worked with /yigd grave [playername] is because I was testing it on myself. It should work on others now, as long as you're an OP on the server. The update can be done only on the server for it to work, just keep in mind you have to change the config file for enchantments, since the format of them changed (see the wiki for how it's setup now).
Also just as a sidenote, I noticed in your discord when you tried to help someone and found this issue, you mentioned you'd have to wait until the mod updated to execute that command. I think I found out that you found the grave and everything was good, but there's also a command /yigd moderate that will show all players. Here you can find the person you're looking for as well and see their graves. Not that I think you'll have this problem again but would have worked as a temporary fix. Idk why I want to point that out, but it may become useful in the future, somehow.
Anyway I hope this helps, and that there won't be any more problems with the commands!

Looks like there is a mixin issue with the new update
1.18.2\crash-reports\crash-2022-05-15_11.25.41-server.txt
---- Minecraft Crash Report ----
// Hey, that tickles! Hehehe!

 I made the enchantments more configurable, and now the game will expect something else (an object) rather than a boolean which is in your config currently. As I mentioned you can see the github wiki to see how the enchantments are configured now.
But other than that, I'll make the text less saturated or just change the color completely to make it easier to look at. I have an idea about making every color customizable as well, but that might have to wait for 1.19 as I can redo the configs without any major compat issues (realized now that I should probably not make another update that gives this error). I'll definetly try to implement a search bar as well!


Fix no-triple-slash-reference

Trying this rule, I had to fix it by replacing getComments with getCommentsBefore.
Anyway, getComments seems deprecated.

Small change after which this should be OK, thanks for the contribution @mightyiam!!

Thanks a lot for contributing, @mightyiam!
Seems like you are planning on making one more change, so I won't merge just yet.

Awesome, thanks for taking care of this.
LGTM

LGTM

@mightyiam Can you close and reopen this PR to restart the CI builds? They should be passing now.

@j-f1 done. Passing.

Thanks so much for your patience on this, @mightyiam!


Trimming blank lines from end of file in configmaps/secrets breaks some use cases

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Generate an ssh key on a local machine
Paste it into rancher as a secret
Mount into container and try to SSH from inside that container

Result:

SSH returns: Load key "/root/.ssh/id_rsa": invalid format
id_rsa is missing trailing EoF line

Other details that may be helpful:

Base64 encoding the keys by hand and then pasting them into the yaml works fine, but is not an ideal solution.

 We need fix it in UI and server


[python] Removetiledb_ctx references from _soma_tiledb_context.py

Follow-up from #2752. Issue: #1632.

Your documentation corrections are good for how TileDBSOMAContext currently works, but I am doing some refactoring in #3335 which might nullify these changes.

BTW https://github.com/single-cell-data/TileDB-SOMA/pull/3335 has been merged to main. I cleaned up the documentation which fixes the issue reported in https://github.com/single-cell-data/TileDB-SOMA/issues/1632.

I'm guessing this is no longer relevant, will reopen if it is


It doesn't get IP since nodejs v0.9.4

Since nodejs v0.9.4, wwidd doesn't capture the network IP and use the loopback instead.
It works on nodejs v0.9.3.
The change in v0.9.4 that result this behavior was the update of a new version of libuv, and the new version of libuv remove the libev depedence and create an own implementation.
As you can see on this commit:
https://github.com/joyent/libuv/commit/1282d64868b9c560c074b9c9630391f3b18ef633

For some reason on version v0.9.4 and above are executing in different sequence.
the file tool.js called by ifconfig.js in some part of the code should enter on function onData(data) { however it doesn't go there at the time, leaving the wwidd without the ip.

Useful links:

nodejs v0.9.4 documentation
nodejs v0.9.3 documentation
nodejs releases

First try by: @jeanlopes
https://github.com/jeanlopes/wwidd/commit/d09098648f67b6a382aae29b95a0873a1b907956
With this commit it's possible to fix the IP issue and also the video start to play on 0.9.4 and newers.
However generate the issues on the user's iteration, as example: to select a video's folder, just have stopped to work.

https://github.com/NDVM/NDVM/commit/3074be270fbc8374b63aeb2bd73e800ba4fe2d81


Add method to get locales that have loaded translations

TranslationServer::get_all_loaded_locales returns an array of all locales with a loaded Translation.
Closes #28358

Thanks!

Cherry-picked for 3.1.2.


KeyError: junction

Hi ,I try to use outrigger(version 1.1.1, installed using conda) to calculate the PSI value from bam files. But enconter some error, here is the information about the error
Traceback (most recent call last):
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2646, in get_loc
return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'junction'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/bin/outrigger", line 11, in
load_entry_point('outrigger==1.1.1', 'console_scripts', 'outrigger')()
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/commandline.py", line 1071, in main
cl = CommandLine(sys.argv[1:])
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/commandline.py", line 344, in init
self.args.func()
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/commandline.py", line 348, in index
index.execute()
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/commandline.py", line 757, in execute
event_maker = self.make_graph(junction_exon_triples, db)
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/commandline.py", line 663, in make_graph
event_maker = events.EventMaker(junction_exon_triples, db)
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/outrigger-1.1.1-py3.7.egg/outrigger/index/events.py", line 288, in init
junction_col].str.split(':').str.get(1)
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/pandas/core/frame.py", line 2800, in getitem
indexer = self.columns.get_loc(key)
File "/home/wbguo/apps/anaconda3/envs/outrigger-env/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2648, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'junction'
Do you have any idea how to solve this?
Thanks in advance

The exact same problem was encountered with bam files produced by hisat2.

I am also having this problem. I am using sj.out files as input... has anyone found a solution to this problem?


Debugging documentation

I'd like to add some debugging documentation on our empty Operator Guide. I think it should include at least:

How to check up on system components from a controller node
How to use kubectl from a controller node against localhost
How to run etcdctl from a etcd node against localhost

Any other suggestions?

Rotate certs

How about "How to gather information about failed systemd units"?


Add optional CancellationToken to Async methods

Especially the ones calling the SDK.

PR merged. Closing issue.


Handle at least one operation between quantum types translating the qutes code to qiskit quantum circuit operations

done 9cebab4d7e627266ba657969adf44ea2ae08ffee


[vincentlaucsb-csv-parser] Fix gcov linking errors on linux.

On linux programs using this port in debug mode fail because the library is being compiled with coverage rigging.
This patch disables that unused instrumentation.

On linux programs using this port in debug mode fail because the library is being compiled with coverage rigging.

As this problem would also exist in upstream, so it is recommended to contribute this patch upstream.


[Docs] Update docs-gen to allow for inheritdoc usage in API ref docs.

See: https://github.com/graycoreio/daffodil/pull/1428#discussion_r614389418_

Closed by https://github.com/graycoreio/daffodil/pull/1568


Remove multiple VEP interfaces in VEP

The VEP module takes a mandatory argument of a whole-genome/exome VCF, and optionally several subdivided VCFs. The latter is what we use in the pipeline, as these VCFs have already been subdivided by prior stages according to scatter_count.
The VEP module contains a lot of bloat - it allows for a single VCF but a high scatter count to be provided, in which case it generates a set of intervals and subdivides the input VCF.... This shouldn't be the remit of the VEP task.
This PR removes this option and takes a single argument - a list of VCFs. This list can be of length 1, equivalent to a full VCF and scatter == 1.

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

Project coverage is 78.41%. Comparing base (1f99507) to head (7a99776).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #949   +/-   ##
=======================================
  Coverage   78.41%   78.41%
=======================================
  Files          10       10
  Lines        1793     1793
=======================================
  Hits         1406     1406
  Misses        387      387

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


Make RabbitMQ exchange type configurable

This changes makes the exchange type configurable with a default to use a topic exchange.
This is done simply by declaring the exchange through a different Bunny API:
not using the channel.topic() shortcut but initializing a new Bunny::Exchange.new()
Though Hutch is opinionated on the exchange/message types used. (which is good!) this makes it possible to for example use Hutch in combination with the delayed message exchange RabbitMQ plugin which defines a new exchange type but can act like a topic exchange.
Example usage:
Hutch::Config.set(:mq_exchange_type, 'x-delayed-message')
Hutch::Config.set(:mq_exchange_options, { arguments: { 'x-delayed-type': 'topic' } })

I don't know much about RabbitMQ internals and the internals of the RabbitMQ plugins but considering this minor change I thought it is worth to consider it?

This feature is of limited use right now but indeed it can work with the delayed message exchange and its subsequent replacement. So let's get it into 1.0.


Markdown: deal with bold + italics

Light Viridis.
When doing *__bold-italic text__* the syntax highlitghting works perfectly as expected.
But if I do ***bold-italic text*** it doesn’t. Is there a way to fix this? I noticed that the One Light theme can’t either.

This is  because both language-gfm and language-markdown have poor detection of bold/italics. I think your solution is generally the way to go, although it requires to mix _ and *.

Thank’s anyway, I’ll try to look at the language packages


Bug/optimize oauth shrink size

Description

Refactor optimize oauth dependencies to shrink jar size.
Reference
Issues: #808
Check-List

[ ] Internal Review is maintained
[x] Smoketest successful (Manual E2E-Test depending on Change)
[ ] No waste on Branch left (e.g. console.logs)
[ ] Board is up-to-date

Replaced with #1659


Loop scroll

Hello guys, are two days that bot doesn't work. It opens app and cannot scroll the post but it is locked on the same post trying to go on the next without success. I have also uninstalled the app and memu, but nothing.
How could I fix this problem?

Are you talking about feed job?

Are you talking about feed job?

Also like post recent and like place recent

Are you talking about feed job?

Also like post recent and like place recent.
In my case, it doesn't work with any activity. It doesn't scroll

I have tried again but nothing, I have installed the previous version without success. I have this problem with all activity!,  I

Yeah, the feed(and other jobs) for you is the same as in explore section (if you don't scroll enough it gets back to the current post). I think everyone will get this update soon. Maybe just increasing the scroll length will fix it.

Helo Mastrolube, when an update come out?

I still don't have this...
Have you consider to downgrade the Ig app?


Dependent methods to std::vector parameters do not generate

Brief Description
In my C++ code I have a simple constructor that takes a std::vector and a getter and setter for the private m_data variable. In my C# output I however have no getter/setter block generated and the constructor taking the vector has vanished.
C++ input: https://pastebin.com/KUvDX55L
Generated C# output: https://pastebin.com/CXdXA6ev
CppSharp log: https://pastebin.com/PkbrPyX9
OS: Windows
Target: MSVC
Driver: https://pastebin.com/vAWeTgua

@mattparks templates are still work in progress, so anything that uses them is ignored.


Make created filters in Datastores visible and fix commiting filters

fixing
https://bugzilla.redhat.com/show_bug.cgi?id=1398748
https://bugzilla.redhat.com/show_bug.cgi?id=1382768
Make created filters (not global) in Compute -> Infrastructure -> Datastores
visible under My Filters in accordion, no need to refresh the page
after creating a new filter.
Fix commiting a new filter which is related to its creating and saving.
Commiting filters was broken by
https://github.com/ManageIQ/manageiq/pull/12998
Before:

After:

No need to refresh the page after creating a new filter:

@miq-bot add_label ui, bug
@miq-bot assign @mzazrivec

@hstastna after i saved a filter in Datastores accordion that worked and refreshed the tree to show the newly added filter in it, but when i tried to add a new filter Datastore Clusters accordion, after i save the filter it blanks out the whole tree in the left accordion, see screenshot below:

I think advanced search should not be available on the Datastore Clusters accordion, this should only have regular search box, and advanced search should only be available on Datastores accordion that displays filters in tree.

This pr fixes broken commit and discart buttons.
However, the and, or, and not buttons are still borked.
I vote for merging this pr early, so we have at least something working.

This PR has conflicts because of UI split, I am closing this PR and creating the new one and better: https://github.com/ManageIQ/manageiq-ui-classic/pull/98


Update bindings to 25.1.1

https://developer.android.com/topic/libraries/support-library/revisions.html#25-1-1

v25.1.1-beta1 nuget packages are out.  Just need them to go through some QA and we'll release stable versions.

Released.


Check feature branch name format

Branch name should comply to format (master)|(feature/#\d+/[a-z0-9\-]+)

Done.


V1.4.1 add predicate push down

What is this PR?
This is a:

[ ] documentation update
[ ] bug fix with no breaking changes
[x] new functionality
[ ] a breaking change

All pull requests from community contributors should target the main branch (default).
Description & motivation

Checklist

[ ] I have verified that these changes work locally on the following warehouses (Note: it's okay if you do not have access to all warehouses, this helps us understand what has been covered)

[x] BigQuery
[ ] Postgres
[ ] Redshift
[ ] Snowflake
[ ] Databricks

[ ] I have updated the README.md (if applicable)
[ ] I have added tests & descriptions to my models (and macros if applicable)
[ ] I have added an entry to CHANGELOG.md

Tenets to keep in mind

A metric value should be consistent everywhere that it is referenced
We prefer generalized metrics with many dimensions over specific metrics with few dimensions
It should be easier to use dbt’s metrics than it is to avoid them
Organization and discoverability are as important as precision
One-off models built to power metrics are an anti-pattern

I've tested this in dev, and it works with all the metrics we have defined (including those that don't pass in the base_filter and base_filter_field arguments


[Bug]: App import flow is breaking via the import option present within an application

Is there an existing issue for this?

[X] I have searched the existing issues

Description
App import flow is breaking via the import option present within an application. The pages show up only after refresh.
Steps To Reproduce

Create an app
Within the app, navigate to the import option within settings
Import any application's json
Notice that the pages do not show up unless the app is refreshed

Expected behaviour: The app should've auto-refreshed and displayed all the pages without the need for the user to refresh
Public Sample App
No response
Environment
Production
Severity
High (Blocker to building or releasing)
Issue video log
https://www.loom.com/share/c2a95b73aa8a465b914c239c23e26bfe?sid=daab3030-955f-42d8-9b20-ce74a8f9ea13
Version
Cloud

@laveena-en @rahulbarwal I believe this was fixed here. Can we verify and close this issue?

Closing as fixed like Ashit mentioned, please re-open if that is not the case.


Error when using the as prop on

Background
The component and render props are deprecated in Formik in favor of as: https://github.com/formik/formik/pull/1406
Issue
I tried to use as like this:
import { Field, Form, Formik } from 'formik';
import { TextField } from 'formik-material-ui';

...
  <Field
    as={TextField}
    ...

which produces this error:

Not really sure what's going on here. Using as with plain Formik and MUI works without errors.

Try
<Field
    component={TextField}

@cliedeman , component does work, but I was intentionally trying to switch to as since component is being deprecated in Formik.

@ZizhengTai I think only render is deprecated based on the docs - https://formik.org/docs/api/field
But it does not seem to be clear at all
I dont think we can support as unfortunately as the mergine of field and props
will cause the material ui onChange and onBlur to always overwrite the formik onChange and onBlur functions which we need

#2618 might be worth following here as it'll confirm whether the component-being-deprecated note was just a mistake or not. I'm not getting any warnings for it unlike render.

Thanks @dsgriffin, I dont think there is anything to be done here in the library


188 redo display to settable

Fixes #188, fixes #239, fixes #240, fixes #237. Test with these docs:
Tested with:

unmap_suffixes.docx
unmap_suffixes.pdf

@plocket  I'm assuming it's okay to remove this note: (or make it a YAML comment instead of a level 1 heading in the Markdown?)
  - Edit: other_parties[0].name.first
    button: |
      # NOTE: a question block with 'other_parties.revisit'
      # lets the user edit all of the items at once
      **other_parties**

I don't know, that's not the code I edited.

I'm assuming it's okay to remove this note: (or make it a YAML comment instead of a level 1 heading in the Markdown?)

  - Edit: other_parties[0].name.first
    button: |
      # NOTE: a question block with 'other_parties.revisit'
      # lets the user edit all of the items at once
      **other_parties**

That was intended to be a YAML comment. Just moving it up two lines would be good. I can change that really quick (here or in another PR)

That was intended to be a YAML comment. Just moving it up two lines would be good. I can change that really quick (here or in another PR)

I have it open already, no worries.


fix: always set JsInfo.declarations on npm_link_package_store targets

This way it will be a valid ts_project dep like we were discussing.
This PR currently does the same as what js_library does for directories but 100% of the time. Here js_library does this only when finding a directory with unknown content: https://github.com/aspect-build/rules_js/blob/2bc5e8622b9509b370fbbd44e9022900d15b5244/js/private/js_library.bzl#L126-L129

One other command case is ts_project depending on a js_library but the library having no dts/json/directory so it has empty declarations. Is that ok? That means a js_library might change and then any ts_project depending on it needs to drop the dep? Or the opposite...


Delete unnecessary spaces

When copying from the web page, there is an unnecessary space after the code.
The indentation will be incorrect when using tabs and half-width spaces mixed.

@changeworld : Thanks for your contribution! The author, @ecfan, has been notified to review your proposed change.

@changeworld : Thanks for your contribution! The author, @ecfan, has been notified to review your proposed change.

@GitHubber17: Here's another PR that needs merging to the private repo, thanks!

@changeworld @ecfan - We're in the process of pulling these commits to the private repo, so we can verify the content on staging. We'll post a new PR # shortly and then close this PR.

@changeworld @ecfan - The commits in this PR were moved to the private repo (PR 65158) for validation and staging. We'll close this PR now.


Alpha bug: Make view bar scrollable for long names

Make the view bar scrollable for long names

Unable to find fix. To update in UG


Text colors are no longer correct after latest update

Issue Type: Bug
I updated to the latest version and the text coloring is no longer correct.   For example "await" usually appear as purple.  Now it sometimes also appears as white.   Another example is "let".  It is sometimes light blue (correct) and at other times white.   (See screen shot)
VS Code version: Code 1.26.0 (4e9361845dc28659923a300945f84731393e210d, 2018-08-13T16:29:31.933Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz (4 x 2904)

GPU Status
2d_canvas: unavailable_softwarechecker_imaging: disabled_offflash_3d: unavailable_softwareflash_stage3d: unavailable_softwareflash_stage3d_baseline: unavailable_softwaregpu_compositing: unavailable_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: unavailable_softwarevideo_encode: unavailable_softwarewebgl: enabled_readbackwebgl2: unavailable_off

Memory (System)
15.85GB (2.49GB free)

Process Argv
C:\DevTools\VSCode\Code.exe

Screen Reader
no

VM
0%

Extensions (13)

Extension
Author (truncated)
Version

Bookmarks
ale
9.0.3

markdown-preview-github-styles
bie
0.1.2

npm-intellisense
chr
1.3.0

vscode-markdownlint
Dav
0.20.0

tslint
eg2
1.0.34

vscode-npm-script
eg2
0.3.5

vscode-azureappservice
ms-
0.9.0

python
ms-
2018.7.1

azure-account
ms-
0.4.3

debugger-for-chrome
msj
4.8.2

markdown-preview-enhanced
shd
0.3.5

python
tht
0.2.3

vscode-adaptivecards
tom
1.1.3

I'm not able to reproduce
@LarsLiden Can you share the full code example? Maybe there is something special above the line that  causes this?

Attached the file.  It's a .ts file, but had to rename it to .txt to upload.   Bad text rendering starts at link 183.   Thanks.
CLRunner.txt

Seems fixed in current insiders:

@mjbvz - I just updated to the new build and I'm still seeing the coloring issue.
Version: 1.26.1
Commit: 493869ee8e8a846b0855873886fc79d480d342de
Date: 2018-08-16T18:38:57.434Z
Electron: 2.0.5
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

Try insiders

ah.  thx!


Support read type hints from the method in add_node

#1950

Add function to read type hints from the __call__ method to resolve issue #1950.

Looks good, thanks for adding the support!


Use custom runners

This PR migrates package builds for Linux to GHA custom runners.
The runners have less software installed by default, which resulted in the need make changes in some build scripts and requirements lists.

fyi @proppy


Run step

This PR combines the email step and the run button into a run step.
Issue: https://github.com/Autodesk/molecular-simulation-tools/issues/184
Also part of doing dynamic steps: https://github.com/Autodesk/molecular-simulation-tools/issues/204

Hey Justin, I'll on reviewing this until the conflicts are resolved.

@dionjwa Resolved!  Thanks.


Adjust display of test function failure to entire function

Currently on test failures, the failed line is hightlighted +-3 lines. In the default pytest TerminalRunner, the entire test function (including any marks) up to the failed line is displayed.
I believe this is the correct DX as it gives the entire context for the failure without having to jump back to the source code.
Screenshots: pytest vs pytest-rich

Question, what is those ??? coming from ? (The first line of the traceback)

There's a helper function to get the name of the function that the failure occurred in. If it doesn't find the name, it returns '???' To avoided errors.
It was quick solution and isn't properly tested yet.


Windows compatibility

Hi and thanks for exhale! I've tried to make it work on Windows and ran into issues so here are 3 commits regarding windows compatibility:

On windows, not closing a file handler before removing the file raises an error as the file is still in use
The use of os.sep conflicted with paths using / in configuration files, so I attempted to add some consistency
os.sep was used in a chunk of code to populate a variable that was never used afterwards. I took the liberty of deleting that chunk

Feel free to comment/request amendments!

As noted earlier, here is another issue: on Windows, XML_OUTPUT apparently needs to be set to . otherwise doxygen generates the XML files in an xml subdirectory ... and exhale cannot find them!

Update: https://ci.appveyor.com/project/svenevs/exhale-testing-ci/build/1.0.40/job/opwc4rncxainb265#L1104
Ugh.  So something is definitely really fishy about the tempfiles.

Oh wait sorry I just realized that I never actually did anything about the doubly open file.  Sorry!

Fixes here present in this commit.


BUG: Content overflow on Home page

Is there an existing issue for this?

[X] I have searched the existing issues

What went down?
The Home page has a content overflow below 1024px
home.webm
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[ ] I'm a VSoC'24 contributor
[X] I want to work on this issue

@Amruta7203 go ahead and try to also implement this on responsive of homepage make sure there should not be any problem with desktop view.

hi @Amruta7203 did you start working on it or I should have to give it to another one

hi @Amruta7203 did you start working on it or I should have to give it to another one

I have started working on it..


Support for Javascript output format

What I'm looking for is ability to shape response in the following manner:
GlobalVariable = {
    success: true,
    data: [
        // ... response objects
    ],
    total: 123
}

GlobalVariable would be configurable.
This format is useful for effectively injecting data form a restful end point directly into html page (by way of a <script src="/path/to/rest/endpoint"></script>.
Not sure i care if this goes into an adapter or becomes a core feature.
Let me know what you think.

In addition to accepting all of the standard linkrest parameters, it should also allow us to define the name of the variable in the response.
?variableName=MyGlobalVariable

Doesn't have to be in LinkRest. Just create a custom (but reusable) JAXRS interceptor or MessageBodyWriter that does JSONP-like processing.

My apologies for not chiming in sooner.
Custom (even reusable) rest method implementation means that output format has to be known at implementation time.
We'd like to defer (as is the philosophy of LR) the control over output format to the client such that output format is decided at request time by the client.
This functionality can be made part of core LR protocol or it could be implemented inside Sencha Adapter or a separate adapter, either of these options would work fine for our purposes.


Improved the style and tips for node edit dialog.

Improved the style and tips for node edit dialog.

Current coverage is 41.64% (diff: 100%)

No coverage report found for master at 8359ede.

Powered by Codecov. Last update 8359ede...e7b8ac2

@merryfox  , give a review please

retest this please

CSS +1

LGTM

how about add a unique css class for this specific usage instead of change it globally.

I add a new css style for it.

LGTM


Issues with best_effort_wfe_or_timeout and WFE in SDK 2.0.0

Background
We are trying to achieve good idle power consumption on RP2350 in MicroPython.  Idle here means sitting at the REPL (with either UART or USB serial) doing nothing.  In this case the CPU should be able to gate its clock via WFI/WFE to reduce power consumption.
Eg on a standard Pico with RP2040, connected to a USB port and a terminal port program open, the Pico draws about 15.2mA (at 5V).  Then running a simple while-True busy loop that increases to about 18mA.  This is expected behaviour.
Summary of problems
Things seem to have changed in SDK 2.0.0 (the tag 2.0.0).  There are a few issues that seem to be related:

best_effort_wfe_or_timeout() now seems to return immediately, on both RP2040 and RP2350
best_effort_wfe_or_timeout() calls __sev(); __wfe() to clear any existing event, which potentially misses events
on RP2350 spin locks are implemented in software using ldaexb and strexb exclusive-access instructions, and these seem to set the event flag (equivalent to __sev()), meaning that spin_lock_blocking sets the event
due to the above, functions like hardware_alarm_set_target set the event flag, making these functions unusable for making a timer to wake from WFE

Details
best_effort_wfe_or_timeout() now seems to return immediately
Running the following on RP2040:
absolute_time_t timeout_time = make_timeout_time_us(1000000);
while (!best_effort_wfe_or_timeout(timeout_time)) {
}

With pico-sdk 1.5.1 that will consume about 15.2mA on a Pico board.  With pico-sdk 2.0.0 that code consumes about 18mA on a Pico board.
Timing how long the best_effort_wfe_or_timeout function lasts, on pico-sdk 2.0.0 it always returns pretty much immediately (eg within 5us), so the above loop is effectively a busy loop, hence the higher power consumption.
This looks like a regression with pico-sdk 2.0.0 on RP2040.
best_effort_wfe_or_timeout() calls __sev(); __wfe()
Inspecting the code for best_effort_wfe_or_timeout in pico-sdk 2.0.0, there's a new bit:
            // the above alarm add now may force an IRQ which will wake us up,
            // so we want to consume one __wfe.. we do an explicit __sev
            // just to make sure there is one
            __sev(); // make sure there is an event sow ee don't block
            __wfe();
            if (!time_reached(timeout_timestamp))
            {
                // ^ at the point above the timer hadn't fired, so it is safe
                // to wait; the event will happen due to IRQ at some point between
                // then and the correct wakeup time
                __wfe();
            }

This sev/wfe pair will clear any existing event flag.  But what if that event was from a user interrupt, and was the event the user was waiting for?  Eg:
void my_irq_handler(void) {
    my_event_flag = true;
    __sev();
}

int main(void) {
    ...
    for (;;) {
        if (my_event_flag) {
            break;
        }

        // <-- IRQ fires here and calls my_irq_handler

        best_effort_wfe_or_timeout(make_timeout_time_us(10000));
    }
    ...
}

In principle (I don't have code to show this behaviour) the __sev() from the my_irq_handler will be cleared by the best_effort_wfe_or_timeout and that latter function will wait the entire 10ms if no other IRQs come in.
ldaexb and strexb set the event flag
According to the datasheet for RP2350:
Processors also receive an event signal from the global monitor if their
reservation is lost due to a write by a different master, in accordance with
Armv8-M architecture requirements.

From my testing it seems that executing a pair of ldaexb and strexb instructions on RP2350 does indeed do an effective __sev().  This means spin_lock_blocking() sets the event flag, and hence any function that calls this.
It would be great to instead use the hardware spin locks on RP2350.  According to the errata it's still possible to use some of them, those which don't have aliases for writable registers.
hardware_alarm_set_target set the event flag
In MicroPython we implement low power idle by setting up a callback using hardware_alarm_set_target(<id>, <timeout>) and then execute __wfe() to either wait for an event or the timeout.  But this does not work on RP2350 because hardware_alarm_set_target() sets the event flag, meaning that the subsequent __wfe() wakes immediately.
It's unclear how to use __wfe() effectively in the pico-sdk because of this issue of the event flag being set in many locations.
Final thoughts
Ideally we'd be able to use __wfe() to implement low-power idle on RP2350.  If anyone has any pointers on how to do this that would be much appreciated.
Regardless, I think there are a few bugs with best_effort_wfe_or_timeout as mentioned above.

Regarding the ldaexb/strexb pair setting the processor event flag: I tested these instructions (the exact SW_SPIN_LOCK_LOCK code from this repo) on:

a different Cortex-M33 MCU (an STM32H5xx)
a multi-core Cortex-M55 (an Alif E7).

On both these MCUs the ldaexb/strexb pair do not set the processor event flag on the processor executing these instructions.
So it seems to be a quirk of the RP2350 -- which has the processor event flags cross-wired between the CPUs -- that the ldaexb/strexb pair set the event flag on the current processor.

Speaking just to the monitor behaviour:

Regarding the ldaexb/strexb pair setting the processor event flag: I tested these instructions (the exact SW_SPIN_LOCK_LOCK code from this repo) on:
* a different Cortex-M33 MCU (an STM32H5xx)

* a multi-core Cortex-M55 (an Alif E7).

On both these MCUs the ldaexb/strexb pair do not set the processor event flag on the processor executing these instructions.

This is specified behaviour on Armv8-M, see DDI0553B.y section B9.3.1 (page 275):

We implemented this (useless) behaviour because it is strictly required by the spec. I haven't looked into the intricacies of the global monitor implementations on the systems you mentioned. It's possible this is their bug, and they missed that part of the spec. It's also possible they don't retire reservations on a PE's exclusive store to its own reservation, which is implementation-defined as per B9.3.2:

We do take this arc, as per <IP_ADDRESS> "Implementation-defined Monitor Behaviour" in our datasheet:

I think the intended use here is to leave a reservation open and get pinged when someone writes to it, but it causes unnecessary events on RMW.

fixed in develop

@Wren6991 thanks for the details regarding the silicon implementation of the RP2350.

It's also possible they don't retire reservations on a PE's exclusive store to its own reservation

Yes, it seems to be that this is the difference between the other MCUs I tested and the RP2350.  In particular it looks like:
StoreExcl(Marked_address, n)*

is the key difference, that the RP2350 will go from exclusive to open access (and hence generate an event) when the PE stores back to the marked address using strexb in the spin lock code (the n meaning that the same PE doing the ldaexb generates the event).

Anyway, thanks for fixing the issues with best_effort_wfe_or_timeout()!
Although it seems that hardware_alarm_set_target() still sets the event flag (it uses spin locks) and so is still going to cause issues for MicroPython, we still won't be able to go into a CPU-gated mode.

Although it seems that hardware_alarm_set_target() still sets the event flag (it uses spin locks) and so is still going to cause issues for MicroPython, we still won't be able to go into a CPU-gated mode.

The suggestion is to use the alarm pool code which hopefully now works correctly in all cases

The suggestion is to use the alarm pool code which hopefully now works correctly in all cases

Yes, we will do that, move back to using the alarm pool code.  But we will need a pico-sdk release for that :smile:  do you know when that might be?

The implementation of mp_wfe_or_timeout always sets an alarm (actually it mostly modifies an existing alarm). If we avoid doing that we can avoid generating a sev? I was going to suggest a temporary change like this - but it's not fully tested yet https://github.com/peterharperuk/micropython/commit/9ed4a1d35b23320cea53e7ec806141f0ff0bf569

The suggestion is to use the alarm pool code which hopefully now works correctly in all cases

Yes, we will do that, move back to using the alarm pool code. But we will need a pico-sdk release for that 😄 do you know when that might be?

some time this month hopefully


The post background image takes half the screen!

People go to a blog post to read it not to watch the background picture, the image is just too wide makes it very inconvenient to read.

If you read the Readme file,  you will see.  This is a port. Just don't use it,  if you don't like. It means this is not a right theme for you. Thanks.


Set USER env variable so installation can complete successfully.

In testing startup on Ubuntu/Debian, it seems the USER environment variable is not present when Gogs is running using the default init script.
There may be a better way to fix this and make sure start-stop-daemon preserves the preconfigured environment, but I was at least able to complete installation (instead of getting an annoying Run user isn't the current user: git -> message (note the empty string for the 'CurrentUsername()' as picked up by the environment).

Thanks again!


Fixed commit hash in the bisect demo 🦗

Using the default git clone, original f0ea950 was returning various forms of
fatal: 'f0ea950' is not a commit
(depending on a git command)
Replaced with a commit (7e14f28a) recent in history,
so that the demo can be carried on until success.
Question/option: Do you prefer 7-char prefix (as in GH and originally), or an 8-char prefix like in git log --oneline/git graph? Please update if 7-char 😉 THANKS!

I am surprised that f0ea950 does not work: https://github.com/coderefinery/git-bisect-exercise/commit/f0ea95

It's the first commit from the exercise afterwards :)
(not from networkx)

We are talking about the git bisect exercise, right? And in this one the commit does exist. But perhaps I am looking at the wrong thing.

The idea as it sounds to me from the lecture materials, is that the https://github.com/coderefinery/git-bisect-exercise is left as an exercise, without spoiling it while explaning (by demoing) git bisect, isn't?
I also understood from the exercise plan for this workshop that the https://github.com/coderefinery/git-bisect-exercise exercise will be done in BORs.

But maybe I misunderstood, and we should first do the first exercise in BORs (https://coderefinery.github.io/git-intro/10-archaeology/#exercise-basic-archaeology-commands). Then I could demo git bisect afterwards in the end of the day using your https://github.com/coderefinery/git-bisect-exercise example. Whichever option is fine by me ;)

In recent workshop we did not manage to do it as exercise but did it as demo. If time permits, it can be a nice BOR exercise. It is good to mention that those who are quick with the previous exercise can have a go at it. I think already managing the previous exercise is a success and it is good to give enough time for it. If there is no time left, it can be good to explain for which situation it can be good and mention that the exercise is there if somebody wants to try it out.

But maybe I misunderstood, and we should first do the first exercise in BORs (https://coderefinery.github.io/git-intro/10-archaeology/#exercise-basic-archaeology-commands). Then I could demo git bisect afterwards in the end of the day using your https://github.com/coderefinery/git-bisect-exercise example. Whichever option is fine by me ;)

Yes this is how I have done that. I find the first exercise more important if time is tight. Bisecting is bonus.

Ok great, that sounds very good! Fair enough, I was also a bit worried wrt time.
Then it's fine with the f0ea950 commit in the notes ;)


enable autocomplete to accept dropdown options

Proposed changes

This PR implements https://github.com/Dogfalo/materialize/pull/6602 to enable the autocomplete component to take dropdown options.

Note: This does not implement the styling piece of that PR which alters the dropdown style if the container is document.body.

This is also mentioned on the list of PRs to merge and in https://github.com/materializecss/materialize/issues/35.

Types of changes

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

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

@Smankusors - I didn't notice that it. I used the select component as a reference when making this change and did notice that "dropdownOptions" is used for different purposes and is only differentiated by location / scope. Below is where the options that are passed to the dropdown component are used. The dropdownOptions in the documentation you linked are a property of the select component itself, not it's options, if that makes sense.
https://github.com/materializecss/materialize/blob/88fa44ab4182a11558d96fb78eb1f38ebc6b2ece/js/select.js#L243
In any case, it probably would be good to rename one of those "dropdownOptions" on the select component to clear up confusion. Maybe something for a new release since that would probably be a breaking change?

In any case, it probably would be good to rename one of those "dropdownOptions" on the select component to clear up confusion. Maybe something for a new release since that would probably be a breaking change?

:+1:

@Smankusors - I didn't notice that it. I used the select component as a reference when making this change and did notice that "dropdownOptions" is used for different purposes and is only differentiated by location / scope. Below is where the options that are passed to the dropdown component are used. The dropdownOptions in the documentation you linked are a property of the select component itself, not it's options, if that makes sense.
https://github.com/materializecss/materialize/blob/88fa44ab4182a11558d96fb78eb1f38ebc6b2ece/js/select.js#L243
In any case, it probably would be good to rename one of those "dropdownOptions" on the select component to clear up confusion. Maybe something for a new release since that would probably be a breaking change?

This confused me for a long time but actually, they named it perfectly - dropdownOptions are in fact ‘the options of the dropdown’, as opposed to say, selectOptions, which might refer to setting the <option> programmatically.
This would be a good feature add, along with allowing extra data to be passed to autocomplete - two use cases I come up against fairly frequently in the Gitter channel.

In any case, it probably would be good to rename one of those "dropdownOptions" on the select component to clear up confusion. Maybe something for a new release since that would probably be a breaking change?

that would be a documentation improvement, and IMO should be a separate PR for that.

This confused me for a long time but actually, they named it perfectly - dropdownOptions are in fact ‘the options of the dropdown’, as opposed to say, selectOptions, which might refer to setting the <option> programmatically.
This would be a good feature add, along with allowing extra data to be passed to autocomplete - two use cases I come up against fairly frequently in the Gitter channel.

hmm makes sense.

aside from that, is this PR okay to merge?

Not sure who you are asking but, from my perspective, this PR is ok to be merged.

Not sure who you are asking but, from my perspective, this PR is ok to be merged.

Thanks for the reviews, I'll merge it now.

Thanks for the reviews, I'll merge it now.


Resource exhausted error

I'm working on S3DIS dataset (4.8GB) with all pre requisites installed. Running Ubuntu 18.04 with GTX 2080 and 16gb ram.
After training model, it shows at some point error-  Resource exhausted error: OOM when allocating tensor with shape [1029, 33 ,64].....
Maybe memory is exhausted.
How to resolve this issue.
Additionally, instructions use a single GPU, GPU visible 0. Can I use my 2 GTX 2080 parallelly?

Training over multiple GPU is not supported currently. I suggest using 1080Ti or 2080Ti for training. If you only have 2 GTX 2080, I recommend you lower down the batch size.


Prevent suggestionproviderfix:test_air from being added to the registry in production builds. Also removed the artificial version limitation in fabric.mod.json.

Prevent suggestionproviderfix:test_air from being added to the registry in production builds.
This should never occur for a pure client-side mod, and it is only useful for development/testing purposes, anyway.
I've also backported this change to 1.17.1 in the 1.17.1 branch of my fork!
That being said, GitHub doesn't support being able to create new branches on the upstream repo of a PR, so please just manually create a branch named 1.17.1 (from commit SHA-1 f619c1d1c3180b15a81122ac8a6a7f8c0c2d443d) and merge in the changes from my fork. (Or I can open another PR if you'd prefer.)

I've also removed the artificial version limitation in fabric.mod.json, as the single mixin in this mod is so simple that updates are unlikely to break it. This allows users to try to load SuggestionProviderFix into future versions. (I've confirmed that this mod works with 1.19.)

All these commits look good, thanks a lot!


Check dApp/pool/validator/collator name display

Describe the task
Check dApp/pool/validator/collator name display
Actual: Many dApps/collators/validators/pools cannot decode to display the correct name

@S2kael please check in some validators:

Example: CpRu1U13GaBdSxd4tqw3jjCGCpRgte5v8sLkaXcqtzAxFRG

Version test: http://<IP_ADDRESS>:8900/s/iGWZ3Q4cHWx9JFp
Please check the issue:

[ ] Same pool but showing 2 different names in the Details screen and stake screen

Version test: http://<IP_ADDRESS>:8900/s/g8fapzGQ5qDeQs2
Validation passed in these cases


Make g:ale_virtualtext_cursor buffer local

It'd be nice to be able to selectively disable virtualtext in some buffers. My use case is that I'm writing prose in markdown, and while writegood's suggestions are handy, they're not something I want to see while writing, and are better viewed in the quickfix list/status menu.
Something like the ability to set b:ale_virtualtext_cursor for specific buffers would be nice.

Disabling it if enabled globally should be easy, like b:ale_enabled. The global variable has the dual purpose of enabling the autocmd commands and show the messages, so it won't be possible to disable it globally and enable it locally, but it will be possible to enable it globally and disable it locally.

Enabled globally and disabled locally was what I wanted anyway, so that would work.


feat: add footer for social media icons

Please assign this issue under hacktoberfest

Please assign the issue of adding social media icons to the footer to me. I’m ready to get started!

@realvishalrana You can proceed with your contribution.
Before you start working on your PR, please make sure to:

⭐ Star the repository if you haven't already.
Pull the latest changes to avoid any merge conflicts.
Include the issue number in your PR description for better tracking.

I'm excited to see your contribution as part of Hacktoberfest 2024! 🎉
Don't forget to follow me on GitHub for more updates.
Happy open-source contributing! 🚀

@neerajrathore can you please add hacktoberfest accepted label


why is ovs-kubernetes implemented in python?

It seems that this project has nothing to do with openstack, so why using python stack. With python, there is so much dependences to be solved, with golang , only one binary file is OK. So I can not find any advantages to use python over golang. Anybody can answer this question? Thank you!

2 reasons:

When we started this project, one of the goals was to integrate with OpenStack APIs. And since all OpenStack helper libraries are Python, Python was easier to start with.  Now, it looks like OpenStack Kuyr will do that part of the integration, so the reasoning is no longer valid.

official OVSDB bindings are available in C and Python. OVS also has many helper libraries in python. Though, we currently do not use OVSDB bindings for python, the transition would be easier.

Using golang has many advantages.

We can reuse a lot of libraries that kube-proxy already uses.
Obvious errors will be caught  while compiling.

For golang, I've seen this ovsdb library used, but have not looked closely at it myself: https://github.com/socketplane/libovsdb

For golang, I've seen this ovsdb library used, but have not looked closely at it myself: https://github.com/socketplane/libovsdb

From what I understand, it does not support a few OVSDB features that Python does. We will have to pick it and make it full feature.

It seems that this project has nothing to do with openstack, so why using python stack
There are plenty of python projects that have nothing to do with OpenStack (or that OpenStack uses but have a happy life outside of OpenStack)
Moreover, as @shettyg mentioned, initially we were looking at integrating with OVN via Openstack networking.

So I can not find any advantages to use python over golang
Indeed there is probably no advantage. In the choice of the programming language for a project there are technical and non-technical considerations. Among the non-technical considerations there could be constraints (such as OpenStack accepting only python atm) and human factors.
I personally believe human factors played a role here, as it is fair to state that when the project was started initial contributors were more familiar with python than golang.

Thank you, guys. So whether it is possible or is there any plan to reimplement in golang?

There is an issue when using libovsdb. All the constraints that are provided within ovs-vsctl tool should be implemented manually. For example, ovn-kubernetes relies heavily on uniqueness of switch and router names, but this is not the case for golang lib. I was able to create multiple switches with the same name.

Thank you, guys. So whether it is possible or is there any plan to reimplement in golang?

The short term goal is to get a full feature, stable integration and we are not going to attempt moving to golang, unless we start facing problems that would be solved by going to golang.
Over the long term, if there are performance issues with Python or it becomes a maintenance headache, golang is an option.  But the first step before anything is to get golang bindings for OVSDB - which I am not aware of anyone working on.


Pass processing step to worker

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

The CI error is treated here: https://github.com/huggingface/datasets-server/pull/778. We will have to wait for it to be fixed before merging this PR.


schema: extracting some missed gloss

This PR adds/extracts some previously missed gloss entries.

Thx @rettinghaus, looks good to me.