Add back netstandard2.0 support

Yesterday I could not update this NuGet, it was very annoying. I quickly added polyfills to the released tag. Today there are some other changes that make it more complicated, but the base idea is simple.
I haven't heard that .NET 4.8 reached end of life, so dropping support for netstandard2.0 looks somewhat lazy.
Could you probably split the library into 1-to-1 .NET friendly wrapper over LibSodium and all the rest? Or just add #if-defs to stuff that is hard to do in netstandard2.0?

Thanks for bringing up this issue.
NSec has targeted .NET Core (i.e., .NET Core 1.0-3.1 and .NET 5+) from the start. Once .NET Core 3.1 eol's later this year, there will be literally no version left that would use the netstandard2.0 or netstandard2.1 assemblies from the NuGet package, so I see no reason to include those.
NSec has never officially supported .NET Framework, mostly because .NET Framework initially didn't support Span<T> or even loading native libraries from NuGet packages. Of course, now that the most recent versions do, the scope of NSec could be extended to add official support, and your PR shows that this shouldn't be too much work (although I was just quite happy to get rid of some code tbh). What's missing is a GitHub Actions workflow that compiles and runs the unit tests on .NET Framework to show that it actually works.

.NET Framework initially didn't support Span or even loading native libraries from NuGet packages

System.Memory and and conditional targets in NuGet make it work. For the later mathdotnet could be an example. Full old .NETs starting from net462 should work with netsdardard2.0, no need to target la specific framework. Tests pass locally with manual copy of the native lib.
What's left is to deal with the latest changes from Sunday and configure NuGet and GH actions.

If you take care of the GH Action, I'll deal with the rest 🙂

Hm, it looks like I may drop net4xx requirements for myself as well. It used to be a painful hosting model that depended on a pre-installed old .NET 4.x, but it looks it may work with net6-windows, a custom .NET host and x-copy of the framework. Tested a POC, still do not know if that will work for complex stuff. So will proceed with this PR anyway.

GH Actions do not run on PR, I have no idea what to do with CircleCI.
Any .NET 4.8 consumer will have to copy native libs to output or add this to a consumer project (note GeneratePathProperty on libsodium NuGet ref):
  <ItemGroup>
    <PackageReference Include="libsodium" Version="[<IP_ADDRESS>,1.0.19)" GeneratePathProperty="true" />
    ...
  </ItemGroup>

  <ItemGroup>
    <Content Include="$(Pkglibsodium)\runtimes\win-x86\native\libsodium.dll">
      <Link>runtimes\win-x86\native\libsodium.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Content Include="$(Pkglibsodium)\runtimes\win-x64\native\libsodium.dll">
      <Link>runtimes\win-x64\native\libsodium.dll</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <CopyToPublishDirectory>Always</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

I added a module initializer to resolve native libs on Windows: either in the working directory directly or in runtimes/win-xXX/native subdirectories.
I've noticed frequent usage of static ctors. If performance is important they could be replaced with static initializers to ensure beforefieldinit flag.

With recent versions of .NET Framework (I think starting from somewhere around 4.7.x, not sure; 4.8 is definitely recent enough), the copying of native libraries is done automatically, so that workarounds with CopyToOutputDirectory are no longer necessary. Unfortunately, the documentation is a bit sparse on the exact conditions to make this work. It seems that the consumer at least needs to use <PackageReference> (not Packages.config) and have the target platform set to x64 or x84 (not AnyCPU). I think it would be great if the GH Action would do it this way.
Where did you see the static constructors?

I'd still be happy to add support for .NET Framework. For this there should be a GitHub Action that executes the unit tests with .NET Framework without any CopyToOutputDirectory hacks; I'll take care of the rest. I'm not sure if this PR is still active, so I'm closing it for now.


Introduce dataframe to ExperimentData (step1)

Summary
Executing approved design proposal in https://github.com/Qiskit/rfcs/blob/master/0007-experiment-dataframe.md. Introduction of the Artifact will be done in the followup.
This PR introduces dataframe to ExperimentData and replaces the conventional AnalysisResult with it. With this PR, experimentalist can visualize all analysis results with a single html table by dataframe=True.

Once can control the degree of details to show with verbosity:

By default, it returns conventional List[AnalysisResult] for backward compatibility.

Details and comments
Experiment analysis is a local operation on client side, and data generated there must be agnostic to the payload format of remote service. In the current implementation, AnalysisResult appears in the BaseAnalysis and the data generated by the analysis is implicitly typecasted to this class. Note that AnalysisResult not only defines canonical data format but also implements the API for the IBM Experiment service. This tight coupling to the IBM Experiment service may limit data expressibility and an analysis class author always need to be aware of the data structure of the remote service.
In this PR, internal data structure is replaced with the flat dataframe, and one should be able to add arbitrary key-value pair to the analysis result without concerning about data model. Added key creates a new column in the table, which must be internally formatted and absorbed by extra field of the payload at a later time when these results are saved. This is implemented by qiskit_experiments.framework.experiment_data._series_to_service_result.

Thanks @coruscating @itoko for your review. I updated the PR in response to your comments. Please read following replies to your review comments.
@coruscating

I think it would be helpful to add a label for the short analysis ID index column, otherwise it may look like a random string to a new user.

The short UUID corresponds to a pandas dataframe index, and index doesn't have a column name. We could update the stylesheet to show some name, but I feel this is overengineering. By default index is incremental number, but I like current format by analogy of the github commit hash.

Should the display style for CurveFitResults be updated? Right now the newlines are showing as \n literals in the dataframe. If we keep the string representation the same, the default dataframe display style can be updated to render the newspaces (but then we should truncate the output or the cell will be very long).

Yes, this object is very noisy in the table, but will be moved to artifact in the followup.

This may be outside the scope of this PR, but when I run a BatchExperiment of ParalleExperiments of T1s, the results are difficult to distinguish from each other because the experiment IDs are all the same. What do you think about including an extra field that has the experiment ID of the innermost child experiment?

Good point. If I understand your request correctly, user doesn't need to distinguish the difference of entry itself. However, if an experiment generates multiple results, there is no convenient label to group the results from the same experiment instance together. Since this is sort of an edge-case, I'll probably go with current implementation, and update in followup if there is any user feedback.
@itoko

Why don't we add a new method like add_analysis_result (without s) and deprecate add_analysis_results instead of upgrading add_analysis_results? (The new API seems to support only addition of single analysis result and have completely different arguments.)

I was thinking of the same thing, but I couldn't come up with reasonable method name. I think analysis_results vs analysis_result is very confusing and I can imagine a user always needs to check code or docstring to choose proper method. I think current implementation with kwargs is much more intuitive.

In my understanding, result_id is a unique key of the table. Do we really need to have index as a yet-another key? (Note: I'm talking about index in pd.DataFrame not index argument of analysis_results method.)

Yes, result ID is unique, but full hexadecimal UUID is too long. I was thinking to use result_id as a dataframe row index, but this creates very wide table which may hurt user experience (i.e. our browser is not friendly for horizontal scroll).

information on the structure of experiments will be dropped from AnalysisResult expecting it is not usually used during analysis. Also the information is still reconstructable from other data stored in an ExperimentData

Yes, this is what I intended to. Because this becomes a massive logic change in composite analysis in addition to the introduction of dataframe, I decided to do this cleanup in followup PR.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@coruscating Thanks for testing save with the real service. Fix is here c2cd090. This is not a serialization issue. The code generated the analysis result id with uuid4().hex and this generates a string without dash. However, likely IBM Experiment service expects str(uuid4()) which is a string including dash. I added regex to check this pattern. Another error of Unexpected token N in JSON at position 1792 is due to np.nan in the table. This must be replaced with None. These are very IBM specific but must be handled on client side. I also found a convenient function in the service, but this converter likely assumes column names in my draft branch, and doesn't work with current PR as-is. Anyways save/load work now.
It would be great if you could also check 665ff8f. This is related to figure name generation.
@itoko We cannot create dataframe without index, and we cannot remove index column without hacking the html representation of the dataframe. Adding short id as a new column just consumes extra horizontal space in the web browser, and this doesn't make sense. One thing we could do would be creating index with dataframe.loc[len(dataframe)], but we still need to consider the uniqueness of the index because ExperimentData allows users to delete entries, and hence the table length doesn't guarantee the uniqueness of index. Alternatively we can just give up the uniqueness of the index and just always use first 8 digit regardless of collision, but this will eventually require that user should check the length of returned entry (if there is collision they may get multiple unrelated entries) even though they filtered the table with a particular ID.
Here is the result of very casual performance test. Time consumption in the unique index generation is just 1.75%, so this logic is not critical to the entire performance.
exp_data = ExperimentData()

def add_100_entries():
    for i in range(100):
        exp_data.add_analysis_results(name=f"data_{i}", value=i)

Regarding the base class design, I plan to use this dataframe for curve data. Currently the curve data is represented by a handful CurveData object. This takes arbitrary circuit metadata in addition to the fixed columns of xdata, ydata, yerr, etc..., so current base class implementation also fit in with this case.

index or short_id column

I thought it's sufficient to tweak _repr_html_ to return self._container.to_html(index=False). That said, looking at the profiling results, as you pointed out, the unique index generation seems not a bottleneck. The test adding 1000 (10K) rows takes 1.4 (18.4) seconds in my env while _unique_table_index takes only takes 2.2% (7.3%) of the time. It's negligible in practical regime (~10K). So I don't stick to using a column for short ID for now.
FYI: During my profiling, I encountered a weird performance regression in Pandas Dataframe when adding rows including a None entry in a column (e.g. quality in my example below). If rows have a column with None, the time scales super-linear to n_rows while it scales almost linear if they have no None. I don't think this is not an issue for now since we are assuming ~3000 rows (~ batched three parallel experiments for a 1000-qubit system) for analysis result data size. But if we want to handle more rows in future, we may need to revisit this issue.

Script I used:
import time
from qiskit_experiments.framework import ExperimentData
def add_n_rows(nrows, none_quality=True):
    exp_data = ExperimentData()
    for i in range(nrows):
        exp_data.add_analysis_results(name=f"data_{i}", value=i,
                        quality=None if none_quality else i,
                        components="",
                        experiment=i,
                        experiment_id="",
                        result_id="",
                        tags="",
                        backend=i,
                        run_time=i,
                        created_time=i
                )
times_nona=[]
for nrows in [1000, 2000, 3000, 4000, 5000]:
    elapsed_time = time.time()
    add_n_rows(nrows, none_quality=False)
    elapsed_time = time.time() - elapsed_time
    times_nona.append(elapsed_time)
times_withna=[]
for nrows in [1000, 2000, 3000, 4000, 5000]:
    elapsed_time = time.time()
    add_n_rows(nrows, none_quality=True)
    elapsed_time = time.time() - elapsed_time
    times_withna.append(elapsed_time)

ThreadSafeDataFrame

Good to know you designed it with two concrete subclasses, now I'm fine to have it. I see the doc says
This object is expected to be used internally in the ExperimentData.

Thank you @itoko san! <1K entries is indeed a target of current implementation, i.e. running parallel experiment on few 100s qubits and batching them (e.g. combining T1 and T2) would generate ~1K entries. For future I also consider to switch to Polar.
Just fyi:
Main branch (I cannot run 3000 entries. Only 500 entries)
import time
from qiskit_experiments.framework import ExperimentData
from qiskit_experiments.framework import AnalysisResult

def add_n_rows(nrows, none_quality=True):
    exp_data = ExperimentData()
    data_list = []
    for i in range(nrows):
        data = AnalysisResult(
            name=f"data_{i}",
            value=i,
            quality=None if none_quality else i,
            device_components=["Q0"],
            experiment_id="",
            result_id="",
            tags="",
        )
        data_list.append(data)
    exp_data.add_analysis_results(data_list)

%timeit add_n_rows(500, none_quality=True)
# 25.5 s ± 322 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In this branch with your code
%timeit add_n_rows(3000, none_quality=True)
# 8.83 s ± 391 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

There is already a drastic performance improvement (more than expected).


PayIn needs a PaymentType

Hi,I am trying to make transaction using customer cardId already added to Mango Pay.
My code -
` let data={
    "AuthorId" : "24704378",
    "CreditedUserId" :"24704378",
    "DebitedFunds" : {"Currency":"EUR","Amount":5000},
    "CreditedWalletId":"24704381",
    "CardId":"24704387",
    "SecureMode":"DEFAULT",
    "SecureModeReturnURL":"http://localhost"
}`

MANGO_PAY_API.PayIns.create(data).then(function(data){         console.log(data);     },function(err){         console.log("errr")         console.log(err);     })
Error is coming - "PayIn needs a PaymentType"
Please help in this issue

im having the same issue. I am adding in PaymentType in the object but it still returns this error


Feature Request: Show / List Connected or Active Users.

$ takyclistatus

FreeTAKServer Active Users:
________________________________________________________________________________________________________
|   Health      |     CALLSIGN       |    IP Address    | Last Report                 | TAK Client     |
|  	Good		|   Field Mapper 	 |   <IP_ADDRESS>  | 2021-04-21 07:00:01 +0000   | ATAK-CIV 4.3.2 |
⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻⎻

Feature Request:
Above is just an example. Would be particularly useful to those who run FTS without a UI. Especially those who run lightweight installations - Raspberry Pi Zero, etc.

I think this is an important feature -- I would also like to output various info about the server. Memory usage, number of open sockets, number of objects tracked in persistence.
However, right now, takyctl has no way of communicating with the host process. I think I'll need to add a unix control socket or something to achieve that... but it would also have the benefit of being able to kick off users, or send global announcements over chat (or something).
Since I'm already planning to add another server socket in 0.9, I'm going to assign this to that release.

Some initial work in bba4169 and d1915cdd7.
Not all the fields are printed out in the table -- though I do have a command line option to output the status report as JSON which contains everything!


Update SAP Cloud SDK dependency [5.12.0]

Update Cloud SDK

We could (should?) also make use of the new unknown enum feature, but we can also add it later in a separate PR ofc.


[OPT-54] to OPT-2

The origin branch of this PR was named OPT-51 because of a mistake. Actually, it is related to the task OPT-54, so the PR has been renamed to match this task ID.


Add schema for Kubernetes node taint

What does this PR do?
Adds a "nodetaint" schema to specify a Kubernetes node taint.
An almost identical schema is already used in two providers:

GCP - difference: GCP defines value as required
Azure - difference: Azure defines value as required

Any background context you can provide?
The cluster-azure app schema already provides an almost identical schema. The idea is to make this available for all cluster apps.
Have you also followed these requirements?

[ ] I have requested reviews from several teams.
[x] I updated CHANGELOG.md.
[x] I checked/maintained the README.md within the schema folder.

cluster-aws, cluster-azure and cluster-gcp all requirevalue, as I see it.
Why do we leave it out of the required array?
It also seems plausible that value is required regarding the Kubernetes docs.

cluster-aws, cluster-azure and cluster-gcp all requirevalue, as I see it. Why do we leave it out of the required array? It also seems plausible that value is required regarding the Kubernetes docs.

Because, according to the API docs, the value is actually not required to specify a taint.

We should still clarify this with the provider teams.


Namespace not specified issue in flutter 3.27.0

FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring project ':maps_launcher'.

Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.

 If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to https://d.android.com/r/tools/upgrade-assistant/agp-upgrade-assistant for general information about using the AGP Upgrade Assistant.

Duplicate of #44

Hey, sorry for the wait. This problem should be fixed in 3.0.0, could you check if it works? If not, please open another issue.


anki: 2.0.33 -> 2.0.35

Things done:

[x] Tested using sandboxing (nix-build --option build-use-chroot true or nix.useChroot on NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Travis timed out. I see nothing in the changelog to indicate that updating should be a problem, however.


SNOW-1569005: Deduplicate queries and post actions with building queries from binary plan

Which Jira issue is this PR addressing? Make sure that there is an accompanying issue to your PR.

Fixes SNOW-1569005

Fill out the following pre-review checklist:

[x] I am adding a new automated test(s) to verify correctness of my new code

[ ] If this test skips Local Testing mode, I'm requesting review from @snowflakedb/local-testing

[ ] I am adding new logging messages
[ ] I am adding a new telemetry message
[ ] I am adding new credentials
[ ] I am adding a new dependency
[ ] If this is a new feature/behavior, I'm adding the Local Testing parity changes.

Please describe how your code solves the related issue.
When building plans from binary or set statements, we currently simple merge all queries. This PR fixes by deduplicating the queries.

@sfc-gh-aalam can you trigger the snowpark daily test with your pr to see if it passed with sql simplifier off

https://github.com/snowflakedb/snowpark-python/actions/runs/10395188222


How does one sign up for Otomi's community slack channel?

Describe the bug: (a clear and concise description of what the bug is)
This is not really a bug with otomi-core, however I did not find a better place to ask this. I am new to Otomi and was looking to give it a try, however was running into problems getting Otomi successfully running in my EKS cluster or get a new cluster running by following Otomi's quickstart guide. I found your community page and links to Gitter and Slack for chat, however did not receive a response on Gitter and could not sign up on Slack via Google.
Is the Slack channel open for community where users discuss their problems/questions regarding Otomi? If so, how can I get access to Slack for the same?
To Reproduce
Steps to reproduce the behavior:

Go to Community Portal
Click on slack icon on top right corner besides 'Articles'
On the slack sign up page, click on "Continue with Google" to sign up (as you don't have a<EMAIL_ADDRESS>email ID)
Follow Google authentication process and you should see the following error message (refer screenshot below):

The email address must match one of the domains listed below. Please try another email.

Expected behavior: (a clear and concise description of what you expected to happen)
Sign up with Google is successful for users not having<EMAIL_ADDRESS>email ID.
Screenshots: (if applicable, add screenshots to help explain your problem)

Cluster(s):

Cloud: [e.g. aws]
Cluster: [e.g. demo]

Versions: (seen in console's /settings)

Core Version [e.g. 0.12.34]
Console Version: [e.g. aws]
API version: [e.g. 0.4.56]

Desktop: (if relevant)

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone: (if relevant)

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context: (add any other context about the problem here)

Hi @rohitkothari:  Thank you for bringing this to our attention. We will look into it and get back to you asap.

Somehow that link to Slack was posted by one of our content moderators, but we don't offer Slack as a community channel. We will remove the link asap.

@rohitkothari: We have fixed our Slack channel. Feel free to reach out to us.

The slack link seems broken again.


Re render

Build for the new proj.4 pin.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Update changelog for 1.4.0

:+1:

Conflicts with #19

@shadowhand Is there anything blocking #19 from being merged?

@elazar nope.

These changes are already in #19. You can release 1.4.0 now.


cannot login

Hello!
I downloaded the code zip into my Windows 11 machine, added my domain and clientid, then ran the app
i got the universal login page asking me to login to my dev domain using email and password (the Welcome message is correct)
the email and password i entered are the same ones i use to login to my auth0 dashboard (the data center is in japan because i'm in southeast asia) but for some reason those credentials are not accepted in the universal login page that shows up when i run the app in debug mode.
i'm using Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.9.5, and tested with both Firefox and Google Chrome browsers.
any suggestion on what to do next to perhaps troubleshoot?

thanks! problem solved :-)


Minor README changes - spelling, grammar, etc

Just a couple of minor grammar, spelling, and formatting changes in the README.md

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


arch/arm64/lspi: improve spi initialization

Hardware initialization is based refcount, not
spi enable bit. Interface to disable selected bus
added
Summary
Impact
Testing

The priv->refcount doesn't actually work as a reference counter, since the bus can't be uninitialized and refcount doesn't count downwards there. Maybe also add an "uninitialize" function to count down priv->refcount, and from there call the disable when the count goes to 0. Just to have the refcount fully implemented.... Then work this to upstream


WFLY-16313 MP OpenAPI subsystem should not register OpenAPI endpoint for non-JAX-RS WAR unless spec requires it

https://issues.redhat.com/browse/WFLY-16313

Thanks @pferraro


(PUP-9303) Reapply earlier revert for heredoc locator problems and drop text in margin error

This was fixed earlier but reverted because the fix was not bug-compatible wrt handling of heredoc with text in margin.
The specification says that white space up to margin should be removed for lines that extend into the margin but the implementation does nothing for such lines.
This PR adds back the reverted fixes for the original locator problems where seemingly random positions in the text affects the outcome - with mysterious syntax errors as the result.
(See commit messages).

CLA signed by all contributors.

Ping @Magisus / @justinstoller - can we get this merged now?  Implementation is now compatible with the specification.


add assignment operator for std::string_view to glz::json_t

It would be neat if one could directly assign std::string_view to glz::json_t. It saves a few key strokes compared to making the copy outside ...
thx

Good suggestion. I'll plan to add this soon.

Support has been added into main to construct and assign from std::string_view. Will be included with the next release.


addContext with urls doesn't generate a link in the report.

https://github.com/adamgruber/mochawesome-report-generator/blob/master/src/client/components/test/context.js
just checked code in above link, there's no way that i can pass a url to match below regex. Can you have a look, and provide some url samples for us?
const urlRegEx = /^(?:(?:https?|ftp)://)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:.\d{1,3}){3})(?!(?:169.254|192.168)(?:.\d{1,3}){2})(?!172.(?:1[6-9]|2\d|3[0-1])(?:.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-)[a-z\u00a1-\uffff0-9]+)(?:.(?:[a-z\u00a1-\uffff0-9]-)[a-z\u00a1-\uffff0-9]+)(?:.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S)?$/; // eslint-disable-line

Fixed.
I was using:
http://phx11-mtvws-001:8080/view/Nemo-Automation
now changed to:
http://phx11-mtvws-001.xxxxxcorp.com:8080/view/Nemo-Automation
It works.

Fixed.
I was using:
http://phx11-mtvws-001:8080/view/Nemo-Automation
now changed to:
http://phx11-mtvws-001.xxxxxcorp.com:8080/view/Nemo-Automation
It works.


Use serialize_field without requiring static lifetime?

I'm trying to write a custom Serialize implementation for the results of a database query, where I do not have the table structure upfront (I cannot just use a struct and #[derive(Serialize)]).
I want to write the output in csv, so I'm using the csv crate. Unfortunately csv doesn't support serializing maps (https://github.com/BurntSushi/rust-csv/issues/98), so I'm trying to use serialize_struct. Unfortunately, serialize_field requires the key to be &'static, but the key is the column name which comes from the database at runtime and therefore is not static. I don't see any particular reason that serialize_field must have a static lifetime on the key (I guess performance), is there a way around this?
This is my Serialize implementation thus far:
impl<T> Serialize for ScrubbableRow<T>
where
    T: Scrubber,
{
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: serde::Serializer,
    {
        let cols = self.row.columns();
        let mut state = serializer.serialize_struct(Some(cols.len()))?;

        for col in cols {
            state.serialize_field(
                col.name(), // Uhoh
                &T::scrub_column(&self.row, col).map_err(serde::ser::Error::custom)?,
            )?;
        }

        state.end()
    }
}

I'm running into almost the same thing, although in this case it's to serialize to XML and I'm trying to add extra fields that were originally deserialized into a hash map into the struct.

https://github.com/serde-rs/serde/issues/708#issuecomment-274200533 this resolved my issue actually. I was able to just use serializeMap() and serializeEntry() instead which doesn't require static lifetimes.

I'll close this in favor of https://github.com/BurntSushi/rust-csv/issues/98. I'm not familiar with the csv crate but from skimming the docs I'm sure you could get this working today by handling the conversion from serialize_map to ByteRecord in your own code regardless of what the csv crate does for serialize_map, and then Writer::write_byte_record to write the already serialized records.

I have a workflow that would be helped by this: https://github.com/serde-rs/serde/issues/2218#issuecomment-2523876811


Location not available for Android

I tried to use nativescript-geolocation plugin together.. but not working

Same problem. tns add nativescript-geolocation results in an error with nativescript-mapbox plugin.
Error: java.lang.UnsatisfiedLinkError: No implementation found for void com.mapbox.mapboxsdk.net.NativeConnectivityListener.initialize() (tried Java_com_mapbox_mapboxsdk_net_NativeConnectivityListener_initialize and Java_com_mapbox_mapboxsdk_net_NativeConnectivityListener_initialize__)

Android geolocation should be working.  See doGetUserLocation in the demo.

Thanks for your reply. I my situation, I need to have access to the geolocation even if when no map is displayed so I get the conflict when I try to display the map. I found this issue that might be related. The doGetUserLocation in the demo is only using mapbox solution for geolocation. For now I downgraded my nativescript-mapbox package to an old version and the map displays fine even with the nativescript-geolocation plugin on.

Do you need geolocation data when the app is in the background?

No, the app will always be opened. There are various ways around this issue like I could update my location service locations from mapbox when map is displayed and from the native plugin when it's not, but that would not be very clean for a fix and since both plugins are very popular, I tought it would be better to address the issue itself.

I need to package up and release my background geolocation plugin which works nicely with this plugin, but i agree that the nativescript-geolocation foreground plugin should work. Unfortunately, I don't have the spare cycles to look into it right now but I will be happy to accept a pull request if you can figure out fix.


Please update the problems windows as the build is ongoing

The 'problems' outputpane is now only updated at the end of a build, and the output windows is not 'clickable'.
This means that if I see a warning occur, I have to start searching manually for the corresponding line of code, instead of just clicking on it to navigate to the offending line.
Alternatively, I could wait until the end of the build, go to the problems windows, navigate from there, fix the problem, only to re-start the build.
Proposal: update the problems window 'live' as the build is ongoing instead of at the end.

What build do you mean? Is it a build ran by extension or task?

I think its the cmake-extension doing the building in this case, but does that matter ? couldn't filenames that occur in the output window be clickable? or would that be another extension?

Yes, I would think so, because its the extension that has to generate the problems.
Files in output panel should be clickable given that they are valid links. Please file an issue against cmake-extension.


Deprecation warning in 3.9

Remove a deprecation warning

This was merged in master, we can backport it to 0.14


Terrain texturing samples incorrectly

Terrain texturing doesn't seem to respond to the TEXTURE_WIDTH parameter like one would expect.

Fixed by 5c443c3c6151670193d12283040603ab067206c0.


Use wrapped model for reference completions in WinRateCallback and set default freq to eval_steps in LogCompletionsCallback`

What does this PR do?

While training some models with GKDTrainer I ran into an issue with ZeRO-3 and WinRateCallback where the initial model provided by the callback is unwrapped and this incompatible with unwrap_model_for_generation(). I also realised that using eval_steps is far more intuitive for both WinRateCallback and LogCompletionsCallback because we usually reserve logging for fast computations like the loss, and LogCompletionsCallback produces a major bottleneck in the logging if we generate every logging_steps.
This PR fixes both issues
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[x] Did you read the contributor guideline,
Pull Request section?
[ ] Was this discussed/approved via a GitHub issue? Please add a link
to it if that's the case.
[ ] Did you make sure to update the documentation with your changes? Here are the
documentation guidelines.
[ ] Did you write any new necessary tests?

Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


[WIP] Improve docs for file adapters and field

Ignore the first commit, it's just what yarn format wants to do.
@MadeByMike little confused how to explain src and path in LocalFileAdapter. I ran a test project locally with these options:
const fileAdapter = new LocalFileAdapter({
  src: './files',
  path: '/public',
});

keystone.createList('FileTest', {
  fields: {
    name: { type: Text },
    file: { type: File, adapter: fileAdapter },
  }
});

And the uploaded file goes into files/. But the thumbnail in the admin UI doesn't show up - it's looking in public/. How exactly does one utilize the value of path? Would like to document this.
Also - is adapter mandatory for the File field? The code doesn't enforce it, but is it usable without?

@Vultraz path is the public url used to retrieve the image and src is the location to upload the file.
Although they will often match with a static server, they can differ. For example you might have a path configured on your webserver to resolve files from the root /photo.jpg even though the source is /uploads/images/photo.jpg
Perhaps you can suggest different names? I'm open to that if it's clearer. Although we should do so in a way that path and src continue to work.
You are correct in assuming that an adapter is required and maybe this should be enforced with code. I'm also open to PRs on this.

What about uploadTo and serveFrom?

What about uploadTo and serveFrom?

Maybe uploadDir and publicPath /shrug

I noticed those keys were actually renamed recently, so I think I'll leave them be.
Anyway, I added a few non-doc commits (made adapter mandatory, fixed a deprecation warning).

Ok why are these tests not running...

Ok, I've dropped the general prettier commit since this does need some review. Updated the first post with a summary of changes.

We can merge these changesets - you only need one

One changeset it is!


Plugin doesn't work in the Chromium browser with audio files

Plugin doesn't work with native HTML5 audio features. I found problem in the mediaelement-and-player.js, line 1038. I don't understand why check video formats only. Chromuim browser successfully support audio formats.

@serapol Is this still an issue?

@serapol Thanks for your patience. I created a PR that solves this issue (#1843). Please test it and let me know.


Possible Hex MarkerColors

Is there anyway you can think of that I could use hex colors for markerColor instead of the predefined colors listed?

I think you have a couple of options here.
Option: 1
Edit the adobe illustrator file to change the colors and then burn a new sprite image. (I simply export the Illustrator Artboards as PNGs)
Option: 2
I have not had time to gracefully create an SVG implementation but the feature that was merged in #18 give you a lot of flexibility.

@coryasilva Thank you very much for your reply and your guidance I initially thought of doing the first option but had no idea about the 2nd option I will have to do some more research... but thank you very much for your great contribution

No problem man, yeah that pull request from @ccoenen is pretty useful.


add prop missing

handle add prop children missing in type AdsProviderProps is bug when run project with typescript

Hi @iamtun, first of all thank you very much for your first contribution! We're glad to see people interested in contributing to improve the package.
I will start reviewing and sending some feedback.

Hey @iamtun! I've released the v0.4.1 with your change, congratulations 👏 .
You can install the latest version by doing:
npm i<EMAIL_ADDRESS>
Again, thank you very much for your contribution! Looking forward to see more collaborations if possible.

Hey @iamtun! I've released the v0.4.1 with your change, congratulations 👏 .
You can install the latest version by doing:
npm i<EMAIL_ADDRESS>
Again, thank you very much for your contribution! Looking forward to see more contributions soon if possible.

I'm glad to be recognized by you. It's my pleasure.


Fixed JS partial replace

Resolves #1983

This is pretty crazy ;-) I would vote for simplifying both the places where we call this helper function.
But this fixes the issue, that actually blocks me from finishing the #1378


Google Sign In 4.5.1 - ServerAuthCode returns null value for Web

ServerAuthCode returns null in case of web.
try {
  final _googleSignIn = GoogleSignIn(
    scopes: [
      'email',
      'https://www.googleapis.com/auth/contacts.readonly',
    ],
  );
  final googleSignInAccount = await _googleSignIn.signIn();
  final googleSignInAuthentication = await googleSignInAccount.authentication;
  final code = googleSignInAuthentication.serverAuthCode;
  print(code);
} catch (error) {
  print(error);
}

for android https://github.com/flutter/plugins/pull/2792lutter/plugins#2792
for iOS https://github.com/flutter/plugins/pull/2788
these pulls fixes the issues but on web it still shows null.

Hi @lrhn
I see there's an open issue addressing the case you described. https://github.com/flutter/flutter/issues/57712
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you

Hi @TahaTesser this open issue is regarding android.
I follow up with this #57712 and got ServerAuthCode fix on android but on web its still an issue

Hi @Zaheer6110
I see there's an open issue addressing the case you described. #57712
Added web and other labels to better describe the issue
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you

@Zaheer6110
added web label

Hi @TahaTesser this open issue is regarding android.
I follow up with this #57712 and got ServerAuthCode fix on android but on web its issue still exists.

I'm reopening this to track progress of this new feature in the web implementation of the plugin. I'll remove the "platform-web" from the parent issue.

As you can see here:
https://github.com/flutter/plugins/blob/master/packages/google_sign_in/google_sign_in_web/lib/google_sign_in_web.dart#L135-L146
Web has never had this feature (although it seems it may be implemented, if you can request offline access after authenticating).

@ditman
Thanks, i just wanted track all platform issues in parent issue and i wasn't aware that web never had this :)

@TahaTesser no problem! I just revived this issue so it can be added to the Web Plugins project, so we don't lose track of these odds and ends!

I've created a pull request with a fix against @aseef17's fork which has other required fixes
https://github.com/aseef17/plugins/pull/1/files

did anyone get Access Token in Flutter web

In Flutter version 3.3.4 serverAuthCode is still null on web. It is very important to fix, otherwise it makes impossible to use server-side validation which is required in many cases.

The mobile version of the plugin retrieves all the authentication credentials (idToken, accessToken and serverAuthCode) in a single flow, but AFAIK this cannot be done in the web (it's becoming harder to even get idToken AND accessToken at the same time).
The API of the plugin needs to be modified so the programmer can tell what authorization type they want: either the accessToken or the serverAuthCode (they use different mechanisms).

@ditman & contributors any further thoughts on this? Is there a best practice for retrieving a serverAuthCode from a Flutter web app?

@T-P-F the documentation you're linking is from a deprecated/obsolete SDK. Here's the flow that needs to be used now:

https://developers.google.com/identity/oauth2/web/guides/use-code-model

I haven't looked much into this (I don't have a server-side app to do proper testing), but I suspect we could implement the "code" client similarly to how we implement the "token" client here:

https://github.com/flutter/packages/blob/main/packages/google_sign_in/google_sign_in_web/lib/src/gis_client.dart#L127-L128

Since the mobile API doesn't make a distinction between client-side and server-side authorization (and it just fetches all the possible tokens at once), it's hard to achieve a nice implementation on the web.
(One option could be to expose two versions of the web plugin, one for client-side flows, and another for server-side flows, but there might be a more graceful way of implementing this!)

@ditman I'm thinking something like this which appears to be returning a valid server auth code: PR5227 (draft)

@ditman I'm thinking something like this which appears to be returning a valid server auth code: PR5227 (draft)

@T-P-F yes! that's the wiring we'd need to enable this feature. The problem I see is that it is "hard" to call requestServerAuthCode code from your (potentially) multi-platform app.
We may be able to reuse the forceCodeForRefreshToken configuration variable to decide whether to call the TokenClient or the CodeClient when doing requestScopes, or we might want to make the requestServerAuthCode visible on all platforms.
Is there any case where a client is going to be using both the TokenClient and CodeClient at the same time?

Hi @ditman, ok, nice.
Since this PR only touches google_sign_in_web it seems out of scope to consider here how other platforms pull a server auth code. Whether they do it through CodeClient or some other mechanism, at a minimum this PR makes it possible via google_sign_in_web, which seems a win ;)
My understanding is that Android can get it through GoogleSignIn.forceCodeForRefreshToken.
I've not looked into iOS or desktop cases.

decide whether to call the TokenClient or the CodeClient

As for web, the way I implemented it in the PR leaves it to the implementer to decide what they need.
If the web app needs an access token 'locally', the implementation would use a combination of GoogleSignIn.signInSilently(), sign_in_button.buildSignInButton(), GoogleSignIn.onCurrentUserChanged(), GoogleSignIn.canAccessScopes(), and GoogleSignIn.getTokens().
And if the web app needs a server auth code the implementation would just use the GoogleSignInPlugin.requestServerAuthCode() from my PR. I completed testing this yesterday all the way through server-side token exchange for access & refresh tokens and it works, at least for my fairly narrow test case.

it is "hard" to call requestServerAuthCode from your (potentially) multi-platform app.

My app is multi-platform but for now I'm only showing the affordance for connecting to Google to users on web with if (UniversalPlatform.isWeb) ...
Super-minimal implementation

import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:google_sign_in_platform_interface/google_sign_in_platform_interface.dart';
import 'package:google_sign_in_web/google_sign_in_web.dart' as web;

class TGCalLinkWidget extends StatefulWidget {
  const TGCalLinkWidget({super.key});

  @override
  State<TGCalLinkWidget> createState() => _TGCalLinkWidgetState();
}

class _TGCalLinkWidgetState extends State<TGCalLinkWidget> {
  late final GoogleSignIn _googleSignIn;
  final List<String> _scopes = [
    'https://www.googleapis.com/auth/calendar.events',
  ];

  @override
  void initState() {
    super.initState();
    _googleSignIn = GoogleSignIn(
      scopes: _scopes,
      clientId: ' < YOUR CLIENT ID >',
    );
  }

  @override
  Widget build(BuildContext context) {
    return TextButton(
      onPressed: _requestServerAuthCode,
      child: const Text('Link with Google Calendar'),
    );
  }

  void _requestServerAuthCode() async {
    web.GoogleSignInPlugin googleSignInPlugin = GoogleSignInPlatform.instance as web.GoogleSignInPlugin;
    String? authCode = await googleSignInPlugin.requestServerAuthCode();
    if (authCode != null) {
      bool isAuthorized = await _googleSignIn.canAccessScopes(_scopes);
      print('isAuthorized: $isAuthorized');
      // Send authCode to your Firebase Function for token exchange / or whatever...
    }
  }
}

See any issues with proceeding with review/merge?

@T-P-F super quick question about the requestServerAuthCode flow: Do you need to sign-in previously and obtain an IdToken, or do you get everything you need both authentication and authorization from the authCode?
@stuartmorgan what do you think about adding a new web-only API to cover this gap? Should we attempt to integrate it with the old behavior of the plugin? (In mobile, the plugin returns all possible types of tokens at once, but on the web, each token requires user interaction + separate call to the plugin).

@ditman No other auth is needed.

If it is a completely stand-alone flow, I wouldn't mind adding a web-only method, like Widget renderButton({configuration}).
(Especially because it seems that the new "AuthorizationResponse" for Android is going to continue exposing all tokens, so I don't foresee any significant changes to the architecture of the core plugin because of it moving to the GIS SDK)

(cc/ @stuartmorgan to weigh in on adding an additional web-only method to allow for server-side Oauth flows, and solve this ancient issue!)

When we don't expect something to be relevant for any other platform, adding it to a single platform's implementation package as a API is fine; we have other examples of that in other plugins.
I would recommend giving it some kind of convenient affordance to call it other than GoogleSignInPlatform.instance.foo (e.g., a stand-alone function that internally calls that), since we don't necessarily want to encourage people to interact with the platform interface directly. We have some cases where we do that, but I prefer to avoid it since once someone is using SomePlugin.instance in their code their IDE is going to auto-complete a lot of methods that they almost certainly should not call (but which are often going to sound very similar to the app-facing object's methods, making it confusing).

I would recommend giving it some kind of convenient affordance to call it other than GoogleSignInPlatform.instance.foo (e.g., a stand-alone function that internally calls that), since we don't necessarily want to encourage people to interact with the platform interface directly.

Good call, let me try modifying @T-P-F's code review to expose his new method (and renderButton) from a separate method / import or similar.

@stuartmorgan I ended up with something like this:
// web_only.dart

GoogleSignInPlugin get _plugin {
  assert(GoogleSignInPlatform.instance is GoogleSignInPlugin,
      'The current GoogleSignInPlatform instance is not for web.');

  return GoogleSignInPlatform.instance as GoogleSignInPlugin;
}

/// Render the GIS Sign-In Button widget with [configuration].
Widget renderButton({GSIButtonConfiguration? configuration}) {
  return _plugin.renderButton(configuration: configuration);
}
...

That lets me rewrite this as:
import 'package:google_sign_in_web/web_only.dart' as web;

/// Renders a web-only Sign-In button.
Widget buildSignInButton({HandleSignInFn? _}) {
  return web.renderButton();
}

Instead of having to fish on the methods of the cast Platform.instance. I think this works well for this package!
(If I were to wrap a non-static instance of the platform interface, I'd have the user do something like: SomePluginWebFacade.of(_somePluginInstance) and call methods on the wrapped value that just forward calls to the appropriate method of the _somePluginInstance.)

@ditman New PR submitted from my personal account now with 'allow edits' enabled.

@T-P-F please use a branch on your repo, I cannot push to your main (bad things happen with the PR)

@ditman done, new PR

Thanks @T-P-F! I'll rebase my local changes with your new PR and push directly there. (We'll need a 2nd review to land your change since it's your first contribution)

Publishing this broke the incredibly simple integration test we have in google_sign_in that creating a GoogleSignIn() with no parameters works:
Failure in method: Can initialize the plugin
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════
The following NativeError object was thrown running a test:
  Error: Missing required parameter scope.

When the exception was thrown, this was the stack:
https://accounts.google.com/gsi/client 226:367                      new Vp
https://accounts.google.com/gsi/client 218:179                      Wp
https://accounts.google.com/gsi/client 278:395                      fr
https://accounts.google.com/gsi/client 281:336                      new kr
https://accounts.google.com/gsi/client 286:634                      initCodeClient
packages/google_sign_in_web/src/gis_client.dart.js 181:83           [_initializeCodeClient]
packages/google_sign_in_web/src/gis_client.dart.js 380:52           new
packages/google_sign_in_web/google_sign_in_web.dart.js 214:61       initWithParams
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50  <fn>
dart-sdk/lib/async/zone.dart 1407:47                                _rootRunUnary
dart-sdk/lib/async/zone.dart 1308:19                                runUnary
dart-sdk/lib/async/future_impl.dart 162:18                          handleValue
dart-sdk/lib/async/future_impl.dart 838:44                          handleValueCallback
dart-sdk/lib/async/future_impl.dart 867:13                          _propagateToListeners
dart-sdk/lib/async/future_impl.dart 643:5                           [_completeWithValue]
dart-sdk/lib/async/future_impl.dart 713:7                           callback
dart-sdk/lib/async/schedule_microtask.dart 40:11                    _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5                     _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 181:7  <fn>

Given that, I have retracted that version. @ditman We need to either fix this forward today, or I'll have to revert the PR to make sure it doesn't get incidentally re-published with some other change.
We'll also need to figure out what this wasn't caught by implementations package integration tests.

The underlying issue for the Cocoon crash is that when we attempt to initialize a CodeClient without scopes, the GIS SDK throws the exception that @stuartmorgan found above:
Error: Missing required parameter scope.

The plugin is seemingly swallowing the error at some indeterminate point; the external symptom (reported by cocoon) is that the button gets stuck in "Getting ready", which is the fallback for the FutureBuilder when the "initialization" future does not complete.
I've published a small patch for this breakage, and will link it to this PR.


feat: event replacement for sending crypto rewards via a saga

Changes

What has changed?

docs

https://legendaryum.atlassian.net/jira/software/projects/LE/boards/1?assignee=712020%3A71750ee7-8648-475c-99c7-c39c60a8e3fc&selectedIssue=LE-2839


Using larastan without artisan

Larastan Version: 0.3.18
--level used: max

Description
Sometimes we don't have avaiable php artisan, for example when we are building another library. Then, we can include on .neon config file vendor/nunomaduro/larastan/extension.neon file.
But, larastan extension uses services that call config of laravel.
Laravel code where the issue was found
php -d memory_limit=4G ./vendor/bin/phpstan analyse -l 7 -c myphpstan.src.neon app --debug

/app/app/ExternalApp.php

Fatal error: Uncaught Error: Call to a member function get() on null in /app/vendor/nunomaduro/larastan/src/Methods/Pipes/Mixins.php:71
Stack trace:
#0 /app/vendor/nunomaduro/larastan/src/Methods/Pipes/Mixins.php(42): NunoMaduro\Larastan\Methods\Pipes\Mixins->getMixinsFromClass(Object(PHPStan\Broker\Broker), Object(PHPStan\Reflection\ClassReflection))
#1 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): NunoMaduro\Larastan\Methods\Pipes\Mixins->handle(Object(NunoMaduro\Larastan\Methods\Passable), Object(Closure))
#2 /app/vendor/nunomaduro/larastan/src/Methods/Pipes/Macros.php(91): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(NunoMaduro\Larastan\Methods\Passable))
#3 /app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(163): NunoMaduro\Larastan\Methods\Pipes\Macros->handle(Object(NunoMaduro\Larastan\Methods\Passable), Object(Closure))
#4 /app/vendor/nunomaduro/larastan/src/Methods/Pipes/SelfClass.php(34): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}( in /app/vendor/nunomaduro/larastan/src/Methods/Pipes/Mixins.php on line 71

If you don't override the bootstrap in your phpstan.src.neon then it will work.
The solution would be to move Larastan's bootstrap from bootstrap key to autoload_files.

Thanks @ondrejmirtes!
Solution
// my-phpstan-bootstrap.php
require 'vendor/nunomaduro/larastan/bootstrap.php';

By the way, could the HasContainer.php file could be have an uncontrolled error?
For example when ReflectionException, BindingResolutionException or NotFoundExceptionInterface ocurr.
Check this code (with a proposed solution) https://github.com/pablorsk/larastan/commit/9532519dab9463ce756f05b23b23eec0f249417c#diff-fbf6f38400be348eeeea812bc383eb0bL63

See https://github.com/nunomaduro/larastan#usage-in-packages-for-laravel

Thanks @szepeviktor, I see that text, my problem was like @ondrejmirtes says: bootstrap overwrited.