Unable to pull RC40-Snapshot

Hey Shawn,
Where are you publishing your snapshot releases?  I get
[ERROR] Failed to execute goal on project apache-fortress-demo: Could not resolve dependencies for project fortressdemo3:apache-fortress-demo:war:1.0-RC40-SNAPSHOT: Failure to find org.apache.directory:fortress-realm-impl:jar:1.0-RC40-SNAPSHOT in https://ci.psu.edu/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of ci has elapsed or updates are forced -> [Help 1]
When trying to run mvn javadoc:javadoc.
Thanks,
Shawn

Hi Shawn - nice name ;-)
Until the first apache fortress release (in the next week or two) you'll
need to first build fortress core locally and then you can run the demo's
javadoc step.  Apologize for this oversight.  The readme's been updated
with the additional steps needed.
Thanks for letting me know.
Shawn
On Thu, Jan 29, 2015 at 10:25 AM, Shawn Eion Smith<EMAIL_ADDRESS>
wrote:

Hey Shawn,
Where are you publishing your snapshot releases? I get
[ERROR] Failed to execute goal on project apache-fortress-demo: Could not
resolve dependencies for project
fortressdemo3:apache-fortress-demo:war:1.0-RC40-SNAPSHOT: Failure to find
org.apache.directory:fortress-realm-impl:jar:1.0-RC40-SNAPSHOT in
https://ci.psu.edu/nexus/content/groups/public was cached in the local
repository, resolution will not be reattempted until the update interval of
ci has elapsed or updates are forced -> [Help 1]
When trying to run mvn javadoc:javadoc.
Thanks,
Shawn
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1.

At first did not realize it was Shawn @ penn state - good to hear from you
again.  Let me know if you have any more problems.  Once we get that first
release to maven this whole procedure will be much simpler.  Rather than
downloading source code snapshots, the steps will pull directly from maven
(like the old quick start).  That is what I am working on now and should be
ready soon.
On Thu, Jan 29, 2015 at 12:19 PM, Shawn McKinney <
<EMAIL_ADDRESS>wrote:

Hi Shawn - nice name ;-)
Until the first apache fortress release (in the next week or two) you'll
need to first build fortress core locally and then you can run the demo's
javadoc step.  Apologize for this oversight.  The readme's been updated
with the additional steps needed.
Thanks for letting me know.
Shawn
On Thu, Jan 29, 2015 at 10:25 AM, Shawn Eion Smith <
<EMAIL_ADDRESS>wrote:

Hey Shawn,
Where are you publishing your snapshot releases? I get
[ERROR] Failed to execute goal on project apache-fortress-demo: Could not
resolve dependencies for project
fortressdemo3:apache-fortress-demo:war:1.0-RC40-SNAPSHOT: Failure to find
org.apache.directory:fortress-realm-impl:jar:1.0-RC40-SNAPSHOT in
https://ci.psu.edu/nexus/content/groups/public was cached in the local
repository, resolution will not be reattempted until the update interval of
ci has elapsed or updates are forced -> [Help 1]
When trying to run mvn javadoc:javadoc.
Thanks,
Shawn
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1.

I was glad to see this demo go up.  It'll help some of the folks here get
their head around the concepts.  We're getting ready to start writing our
skin for the admin console, I'll let you know how progress goes.
On Thu, Jan 29, 2015 at 2:02 PM, Shawn McKinney<EMAIL_ADDRESS>wrote:

At first did not realize it was Shawn @ penn state - good to hear from you
again. Let me know if you have any more problems. Once we get that first
release to maven this whole procedure will be much simpler. Rather than
downloading source code snapshots, the steps will pull directly from maven
(like the old quick start). That is what I am working on now and should be
ready soon.
On Thu, Jan 29, 2015 at 12:19 PM, Shawn McKinney <
<EMAIL_ADDRESS>wrote:

Hi Shawn - nice name ;-)
Until the first apache fortress release (in the next week or two) you'll
need to first build fortress core locally and then you can run the
demo's
javadoc step. Apologize for this oversight. The readme's been updated
with the additional steps needed.
Thanks for letting me know.
Shawn
On Thu, Jan 29, 2015 at 10:25 AM, Shawn Eion Smith <
<EMAIL_ADDRESS>wrote:

Hey Shawn,
Where are you publishing your snapshot releases? I get
[ERROR] Failed to execute goal on project apache-fortress-demo: Could
not
resolve dependencies for project
fortressdemo3:apache-fortress-demo:war:1.0-RC40-SNAPSHOT: Failure to
find
org.apache.directory:fortress-realm-impl:jar:1.0-RC40-SNAPSHOT in
https://ci.psu.edu/nexus/content/groups/public was cached in the local
repository, resolution will not be reattempted until the update
interval of
ci has elapsed or updates are forced -> [Help 1]
When trying to run mvn javadoc:javadoc.
Thanks,
Shawn
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1.

—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72083237
.

I think the link you provided to pull the package is incorrect.  I was able to clone with https://git-wip-us.apache.org/repos/asf/directory-fortress-core.git successfully.
Cheers,
Shawn

You're right.  Made a few more changes to readme.  Should be ok now.
On Tue, Feb 3, 2015 at 8:22 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

I think the link you provided to pull the package is incorrect. I was able
to clone with
https://git-wip-us.apache.org/repos/asf/directory-fortress-core.git
successfully.
Cheers,
Shawn
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72657991
.

You're right on the realm dependency.  Here's how to build that:
git clone
https://git-wip-us.apache.org/repos/asf/directory-fortress-realm.git
cd directory-fortress-realm/
$M2_HOME/bin/mvn install -DskipTests
finally after that the apache fortress demo's javadoc should build.  I've
got a clean vm (redhat) and testing it now.  I'll update the corresponding
doc as well go.
On Tue, Feb 3, 2015 at 10:55 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

We're getting closer. The fortress-realm-impl is also required. I'm
currently failing on the build with a
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process
(default) on project fortress-realm-impl: Execution default of goal
org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process failed:
For artifact {null:null:null:jar}: The groupId cannot be empty. -> [Help 1]
[ERROR]
I'll poke around and see if I can figure out what's going on.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72687953
.

I did pull realm down, but I'm geting the maven-remote-resource-plugin error listed above.  I'm digging around now.  Nothing obvious in the effective pom.  I'm wondering if it's a transitive dependency problem but the error messages are too useful.

That is strange.  I just tried on a clean vm so it should work for you
too.  I said 'should'  ;-)  Shot in dark;  could be a maven 'problem' - are
you using 3?
On Tue, Feb 3, 2015 at 11:36 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

I did pull realm down, but I'm geting the maven-remote-resource-plugin
error listed above. I'm digging around now. Nothing obvious in the
effective pom. I'm wondering if it's a transitive dependency problem but
the error messages are too useful.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72696283
.

Yup, Maven 3.0.5.  There's nothing simple like when eclips helps you by putting an empty dependency in.  If I execute in full debug the last artifact I see it pull is
Using mirror ci (https://ci.psu.edu/nexus/content/groups/public) for apache.snapshots (https://repository.apache.org/content/repositories/snapshots/).
[DEBUG]     org.apache.directory.jdbm:apacheds-jdbm1:jar:2.0.0-M3:compile (selected for compile)
Though I don't know if that has anything to do with it.  I'll keep poking at it.

Which pom.xml are you executing?  Should be the one in the root folder.
Not the ones under proxy or impl folders.
On Tue, Feb 3, 2015 at 11:52 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Yup, Maven 3.0.5. There's nothing simple like when eclips helps you by
putting an empty dependency in. If I execute in full debug the last
artifact I see it pull is
Using mirror ci (https://ci.psu.edu/nexus/content/groups/public
https://ci.psu.edu/nexus/content/groups/public) for apache.snapshots
(https://repository.apache.org/content/repositories/snapshots/
https://repository.apache.org/content/repositories/snapshots/). [DEBUG]
org.apache.directory.jdbm:apacheds-jdbm1:jar:2.0.0-M3:compile (selected for
compile)
Though I don't know if that has anything to do with it. I'll keep poking
at it.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72699485
.

Another shot in dark...
Are you executing pom from inside eclipse?  Wonder if somehow this is a nested project pom is creating problems.  Wouldn't expect it but I don't use eclipse very often and have not tested this project with it.
Might be worth a try to execute maven from command line?

Yup, I'm at the root on all projects. I just cleared all of the Apache Directory stuff from my .m2 directory and am going to try to start with a clean slate.
All my maven commands are being done command line, but you're right, eclips handles the nesting fine.

Another point of reference, I moved to my mac (against my will) and got a clean build.  My Ubuntu 14.04 box is having a problem the mac's not seeing.

OK that is good info.  I have an ubuntu 14 vm, let me give that one a
spin...
On Tue, Feb 3, 2015 at 12:47 PM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Another point of reference, I moved to my mac (against my will) and got a
clean build. My Ubuntu 14.04 box is having a problem the mac's not seeing.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72709635
.

I'm also going to update maven to the latest on my Ubuntu box and completely wipe my .m2/resources directory (I only did Apache last time)

Completely wiping my .m2/resources seems to have gotten it.  I have no idea what dependency got corrupted.  On to the next step...

There might be a rough patch getting apache ds hooked up.  I'm going to
keep updating doc as you go...
On Tue, Feb 3, 2015 at 12:55 PM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Completely wiping my .m2/resources seems to have gotten it. I have no idea
what dependency got corrupted. On to the next step...
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72710930
.

Under Create new SSL Keys, in step 4 & 5 I'd recommend adding some wording describing the import and export passwords.

Also, in step 6 you set JAVA_HOME to get a path to keytool, but you'd already used it in step 5 without the environment variable being set.  Personally, I'd suggest taking the JAVA_HOME export out entirely, I can't think of any packaging tools that don't install the java toolkit somewhere in the classpath by default.

When attempting to download the Apache DS 64 bit debian installer
Not Found
The requested URL /apacheds/dist/2.0.0-M19/apacheds-2.0.0-M19-amd64.deb was not found on this server.

testing now...
On Wed, Feb 4, 2015 at 8:52 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

When attempting to download the Apache DS 64 bit debian installer
Not Found
The requested URL /apacheds/dist/2.0.0-M19/apacheds-2.0.0-M19-amd64.deb
was not found on this server.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72867264
.

I used the binary installer and it seemed to work fine.

Another observation, Step V is set up to install fortress-core, which is step one in the new README instructions.  Step one in the README doesn't describe the changes to fortress.properties or refreshLDAPData.xml.  Might be useful to Change Step 5 to reference the mvn way of pulling and building the project too.

Meaning don't pull the tar.gz, do a clone instead.  Sorry, wasn't clear there.

agreed.  did you get past the apacheds and studio installation?
On Wed, Feb 4, 2015 at 9:31 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Another observation, Step V is set up to install fortress-core, which is
step one in the new README instructions. Step one in the README doesn't
describe the changes to fortress.properties or refreshLDAPData.xml. Might
be useful to Change Step 5 to reference the mvn way of pulling and building
the project too.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72875302
.

I did by using the binary installer, the .deb location was the 404.

A couple more things.

There's nowhere that tells you that you that you have to run sudo service apacheds..ver start
I've attached some images that might help folks navigate through setting up the Directory Studio Connection
I'm not sure what level you want me to import the ldif at.  I'm assuming either the Root or dc=example,dc=com, but it's not clearly spelled out.

I imported the schema into ou=schema.  Agree it needs to be spelled out
better including how to start, stop, connect with studio and import the
schema.
On Wed, Feb 4, 2015 at 11:35 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

A couple more things.

There's nowhere that tells you that you that you have to run sudo
service apacheds..ver start
I've attached some images that might help folks navigate through
setting up the Directory Studio Connection
I'm not sure what level you want me to import the ldif at. I'm assuming
either the Root or dc=example,dc=com, but it's not clearly spelled out.
[image: newldapconnection]
https://cloud.githubusercontent.com/assets/3867553/6045702/440cab98-ac6a-11e4-8f87-765d948d9fb1.png
[image: newldapconnection2]
https://cloud.githubusercontent.com/assets/3867553/6045701/440bb7ce-ac6a-11e4-9b77-9a1524c233e0.png
[image: newldapconnection3]
https://cloud.githubusercontent.com/assets/3867553/6045703/44472ec6-ac6a-11e4-8ed8-8f9f72958b7b.png

—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72900024
.

Some more pictures for the ldif import

understood
On Wed, Feb 4, 2015 at 9:32 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Meaning don't pull the tar.gz, do a clone instead. Sorry, wasn't clear
there.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72875478
.

Cool.  My plan is to split the doc in two:

fortress ten minute guide - will have the instructions to install the
core, realm, web and rest components along with apache tomcat, directory
and studio.  This is mostly done and already includes your screenshots.
There is a new README that describes the setup:

https://git-wip-us.apache.org/repos/asf?p=directory-fortress-core.git;a=blob;f=README-TEN-MINUTE-GUIDE.txt;h=1b31827af23e590c5c47a2e7f68217cda27be835;hb=2075c28f4e9871c87830d424195573ced67441bf

apache fortress demo - will have the instructions to setup the keys,
install mysql and setup the demo app.

Once I get #1 finished, I'll fix #2.
Thanks for the help and let me know if you have any other questions.
Shawn
On Wed, Feb 4, 2015 at 11:48 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

Some more pictures for the ldif import
[image: ldifimport]
https://cloud.githubusercontent.com/assets/3867553/6045971/20a37be4-ac6c-11e4-934f-471623a9000a.png
[image: ldifimport2]
https://cloud.githubusercontent.com/assets/3867553/6045974/20a5ba1c-ac6c-11e4-9bd4-5cf641722548.png
[image: ldifimport3]
https://cloud.githubusercontent.com/assets/3867553/6045972/20a4d8ea-ac6c-11e4-98f4-e0511addaca2.png
[image: ldifimport4]
https://cloud.githubusercontent.com/assets/3867553/6045973/20a4eaba-ac6c-11e4-916d-60c69f6968e2.png
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-72902585
.

I'm going to have to expose my ignorance here a bit.  I'm not an LDAP admin, so I'm not sure what the instruction:
Setup partition in ApacheDS server matching ldap server params in config/fortress.properties file.
is asking me to do.

It's confusing nomenclature for sure.  I am in the process of cleaning this
up - specifically the directory server and studio aspects.  Based on the
screen shots you have sent already you should be good here already and so
disregard.
On Fri, Feb 6, 2015 at 2:49 PM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

I'm going to have to expose my ignorance here a bit. I'm not an LDAP
admin, so I'm not sure what the instruction:
Setup partition in ApacheDS server matching ldap server params in
config/fortress.properties file.
is asking me to do.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-73309694
.

I'm going through step 11 and 12 of the Install fortress core page and getting
unable to bind connection: Cannot connect on the server: Connection refused
At every step.    Is there a step that sets up user auth that I'm missing?

sounds like the ldap connection params in fortress.properties are not
correct.  Can you send the contents of that file?
On Mon, Feb 9, 2015 at 9:22 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

I'm going through step 11 and 12 of the Install fortress core page and
getting
unable to bind connection: Cannot connect on the server: Connection refused
At every step.  Is there a step that sets up user auth that
I'm missing?
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-73526221
.

Actually, ignore my last, I'm going to try a few things

apacheds had died but left a pid in the pid file so service activeds status thought it was alive.  All's good now.

Tests run: 83, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 296.562 sec <<< FAILURE! - in org.apache.directory.fortress.core.rbac.FortressJUnitTest
testCreateSession(org.apache.directory.fortress.core.rbac.AccessMgrImplTest)  Time elapsed: 0.065 sec  <<< FAILURE!
junit.framework.AssertionFailedError: org.apache.directory.fortress.core.rbac.AccessMgrImplTest.createSessions failed negative test
at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.TestCase.fail(TestCase.java:227)
at org.apache.directory.fortress.core.rbac.AccessMgrImplTest.createSessions(AccessMgrImplTest.java:382)
at org.apache.directory.fortress.core.rbac.AccessMgrImplTest.testCreateSession(AccessMgrImplTest.java:340)
Results :
Failed tests:
AccessMgrImplTest.testCreateSession:340->createSessions:382 org.apache.directory.fortress.core.rbac.AccessMgrImplTest.createSessions failed negative test
Tests run: 83, Failures: 1, Errors: 0, Skipped: 0

Ran the same test directly in eclipse and it succeeded, don't know exactly why it died in mvn.

By the way, I was looking at your test setup and I think you may get some good run from JUnitParams.  It lets you do things like
@Test
@Parameters({"17, false",
"22, true" })
To set up a series of test cases with different parameters.  You can also do things like
@Parameters(method = "getInputs")
On you're test methods where getInputs is a method that return the series of arguments that you want to test
I can set a couple up for you if you want to see how they work.

Good catch, created new issue to track:
https://issues.apache.org/jira/browse/FC-57
On Mon, Feb 9, 2015 at 10:36 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

By the way, I was looking at your test setup and I think you may get some
good run from JUnitParams. It lets you do things like
@Test https://github.com/Test
@Parameters https://github.com/Parameters({"17, false",
"22, true" })
To set up a series of test cases with different parameters. You can also
do things like
@Parameters https://github.com/Parameters(method = "getInputs")
On you're test methods where getInputs is a method that return the series
of arguments that you want to test
I can set a couple up for you if you want to see how they work.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-73540673
.

Interesting.  Yes I'd like to see how that can work here.
On Mon, Feb 9, 2015 at 10:36 AM, Shawn Eion Smith<EMAIL_ADDRESS>wrote:

By the way, I was looking at your test setup and I think you may get some
good run from JUnitParams. It lets you do things like
@Test https://github.com/Test
@Parameters https://github.com/Parameters({"17, false",
"22, true" })
To set up a series of test cases with different parameters. You can also
do things like
@Parameters https://github.com/Parameters(method = "getInputs")
On you're test methods where getInputs is a method that return the series
of arguments that you want to test
I can set a couple up for you if you want to see how they work.
—
Reply to this email directly or view it on GitHub
https://github.com/shawnmckinney/apache-fortress-demo/issues/1#issuecomment-73540673
.


u forgot to add the jars in the latest release? (1.2.15)

You didn't include the jar files, only the source files, in the 1.2.15 release

Next time spam me on Discord, also jar takes a few minutes cause I use jitpack for releases jar.


support for other HTTP methods

I'm investigating switching from ASIHTTPRequest to STHTTPRequest for our REST connection.  But it appears hat STHTTPRequest offers no control over the HTTP method used (it looks like it's always POST if there's any data attached, and otherwise perhaps GET?).
REST services require use of other methods — in particular, PUT to create a new resource.
How hard would it be to add that as an optional property on STHTTPRequest?

Are other HTTP methods are supported now? For example "PUT"?

Yes, use the HTTPMethod property:
r.HTTPMethod = @"PUT";


trainer Fails When xcodebuild Quits With Exit Status 65

Even though I have the fail_build setting set to false, occasionally if xcodebuild returns an exit status of 65, trainer will fail.
A snippet from the log
** TEST FAILED **
[09:13:18]: Exit status: 65
+--------------------+-----+
|       Test Results       |
+--------------------+-----+
| Number of tests    | 202 |
| Number of failures | 1   |
+--------------------+-----+

[09:13:18]: ---------------------
[09:13:18]: --- Step: trainer ---
[09:13:18]: ---------------------

+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                Summary for trainer 0.8.0                                                                                |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| output_directory | ./fastlane/test_output                                                                                |
| extension        | .junit                                                                                |
| fail_build       | false                                                                                |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

[09:13:18]: `Helper.gem_path` is deprecated. Use the `ROOT` constant from the appropriate tool module instead.
Successfully generated './fastlane/test_output/TestSummaries.junit'
+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                Lane Context                                                                                |
+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DEFAULT_PLATFORM           | ios                                                                                |
| PLATFORM_NAME              | ios                                                                                |
| LANE_NAME                  | ios pr                                                                                |
| BUILD_NUMBER               | 81.289                                                                                |
| SCAN_DERIVED_DATA_PATH     | /Users/jenkins/Library/Developer/Xcode/DerivedData/REDACTED-euytkosnmedfedgjjjodqbkwmzhe                                                                                |
| SCAN_GENERATED_PLIST_FILES | ["/Users/jenkins/Library/Developer/Xcode/DerivedData/REDACTED-euytkosnmedfedgjjjodqbkwmzhe/Logs/Test/Run-REDACTED-2018.09.07_09-09-41--0400.xcresult/TestSummaries.plist"] |
| SCAN_GENERATED_PLIST_FILE  | /Users/jenkins/Library/Developer/Xcode/DerivedData/REDACTED-euytkosnmedfedgjjjodqbkwmzhe/Logs/Test/Run-REDACTED-2018.09.07_09-09-41--0400.xcresult/TestSummaries.plist     |
+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[09:13:18]: Unit tests failed

+------+-----------------------------------------+-------------+
|                       fastlane summary                       |
+------+-----------------------------------------+-------------+
| Step | Action                                  | Time (in s) |
+------+-----------------------------------------+-------------+
| 1    | default_platform                        | 0           |
| 2    | Verifying fastlane version              | 0           |
| 3    | default_platform                        | 0           |
| 4    | import_from_git                         | 0           |
| 5    | xcversion                               | 1           |
| 6    | cocoapods                               | 15          |
| 7    | Switch to ios incrementBuildNumber lane | 0           |
| 8    | increment_build_number                  | 2           |
| 9    | Switch to ios runTestsWithCoverage lane | 0           |
| 10   | reset_simulator_contents                | 20          |
| 11   | swiftlint                               | 1           |
| 12   | scan                                    | 237         |
| 💥   | trainer                                 | 0           |
+------+-----------------------------------------+-------------+

[09:13:18]: fastlane finished with errors

[!] Unit tests failed

Looking at the code, I’m not sure how the “Unit tests failed” message appears when fail_build is set to false. Here’s what the relevant portion of my Fastfile looks like:
    scan(
      scheme: ENV["SCAN_SCHEME"],
      workspace: ENV["SCAN_WORKSPACE"],
      configuration: 'Debug',
      output_types: '',
      device: ENV["DEVICE"] || 'iPhone 8 (12.0)',
      code_coverage: true,
      fail_build: false
    )

    trainer(
      output_directory: './fastlane/test_output',
      extension: '.junit',
      fail_build: false
    )

Having the same issue.. although Status 65 appears to be a fastlane bug with scan

Same here @SlaunchaMan. I've dug through the trainer gem logic and I can't find where the fail_build option is actually used. It's certainly specified in options.rb, but it doesn't look like it's being pulled out. Design flaw?
Are you also using the fastlane-plugin-trainer like I am @SlaunchaMan? After more investigation, I think the issue is there. It's throwing a Unit tests failed error if any of the tests failed in trainer_action.rb. That's probably the core issue.
@KrauseFx does that line up? If yes, I'd be happy to put together a PR to fix the issue. I'd assume we'd just want to avoid throwing that error if fail_build is false.

@cnoon Yes, I am using it with the Fastlane plugin. Fingers crossed on a fix! 😄

Okay, looks like this issue was fixed in 8b8a7555. What's super weird is that the fix is in master and what looks like would be 0.8.1, but that's definitely not in 0.8.1 when you look. Almost looks like the rubygem released as 0.8.1 is not correct.

I bet if you pointed your Gemfile at the repo and not at the release it would work. I'm going to give that a go now. I've never released a gem before, but I wonder if it's possible to release the wrong commit. It doesn't appear that this project uses git tags for tracking.

Okay, more updates. I was off on my versioning a bit mentioned above. It appears that the trainer gem has been released as 0.8.1, but the fastlane-plugin-trainer gem has not been released since April 2017 and is still at 0.4.0. That's why it does not contain the fixes. Essentially, we need a new tag cut of the fastlane-plugin-trainer gem and we'd be all good to go. @KrauseFx is that something you could help out with? Or someone else with access?
In the meantime @SlaunchaMan, you can work around the issue by updating your Pluginfile to this:
gem "fastlane-plugin-trainer", :git => "https://github.com/KrauseFx/trainer.git", :ref => "28ddc18b"

That will pick up the fail_build logic and stop failing if there are failed tests. I've verified that this does fix the issue locally. Good luck!

Will push a new release, thanks

New release is live, let me know if it works

Will do!

we still experience the same issue with fastlane-plugin-trainer 0.4.1 and Fastlane 2.108.0 - see also https://github.com/KrauseFx/trainer/issues/13#issuecomment-442078986

Still seeing this issue as well. Looking in the plist file I see that xcode is outputting a FailureSummaries block for the entire test target, including the error message. Other test target summaries get output normally. Trainer should be able to generate an <error> block from this in the relevant test suite.

Still seeing this issue. fastlane-plugin-trainer 0.4.1, fastlane 2.165.0


OLS-680: Read API token from default file if just directory is specified

Description
Read API token from default file if just directory is specified
Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)

Related Tickets & Documents

Related Issue #OLS-680
Closes #

/retest

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

Project coverage is 95.23%. Comparing base (de85e97) to head (486bcf5).
Report is 62 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1045      +/-   ##
==========================================
- Coverage   95.34%   95.23%   -0.11%
==========================================
  Files          54       54
  Lines        2211     2288      +77
==========================================
+ Hits         2108     2179      +71
- Misses        103      109       +6

Files
Coverage Δ

ols/app/models/config.py
96.17% <100.00%> (+0.06%)
:arrow_up:

ols/constants.py
100.00% <100.00%> (ø)

/lgtm

/approve

/hold
sorry i have a review i'm still working on

/hold cancel
/lgtm

/approve


No write_kafka plugin in EPEL 6

why there is no write_kafka plugin in epel 6 repo
[2015-11-09 21:52:39] Found a configuration for the `write_kafka' plugin, but the plugin isn't loaded or didn't register a configuration callback.
[2015-11-09 21:52:39] There is a `Topic' block within the configuration for the write_kafka plugin. The plugin either only expects "simple" configuration statements or wasn't loaded using `LoadPlugin'. Please check your configuration.

@haomingz librdkafka isn't available in EPEL6, not much we can to about it. You might want to ask the EPEL people if they can backport it for EL6 ?


Identifier with the wrong timestamp

import ULID
print(ULID().ulidString)

Running this results in an identifier with a timestamp in the year 1970. I realised this happens because the precision is in seconds and not milliseconds. Thus, I am currently using the other initializer for ULID.
ULID(timestamp: Date().timeIntervalSince1970, generator: { return UInt.random() })

Fixed with 2b167d4bc5f5afdbb4865a8432d190857d0ea3b9.


DRILL-4539: Add support for Null Equality Joins

@amansinha100 @jacques-n Could you please review the patches?

@amansinha100, can you take a look?

Added few more tests:
SELECT * FROM t1, t2, t3 WHERE t1.a = t2.a OR (t1.b is null and t3.b is null) to test it throws CannotPlanException
SELECT * FROM t1, t2 WHERE t1.a = t2.a OR (t1.a is null and t2.a is null) to test null-equality filter is pushed into join condition. Had to make some changes to DrillFilterJoinRules to handle this case.
Also few more tests around 3 table join that involve null-equality condition in WHERE clause and JOIN ON
4 tests from extended regression suite failed, because now we generate a join condition that involves =`` and IS NOT DISTINCT FROM```.
SELECT * FROM cp.`jsonInput/nullableOrdered1.json` t1 JOIN cp.`jsonInput/nullableOrdered2.json` t2 ON t1.key = t2.key WHERE t1.data IS NOT DISTINCT FROM t2.data
It looks like HashJoin/MergeJoin operators are not handling mixed comparator in join condition. Looking at the ChainedHashTable and MergeJoinBatch code briefly, it seems like we should be able to generate code for handling mixed comparators case. @amansinha100: Let me know if I am not correct.

Right, the HashJoin and MergeJoin currently can handle one type of comparison, not mixed...this is why when we have a join condition such as  t1.a1 = t2.a2  AND t2.b1 < t2.b2  then Drill planner currently will split it up into equality join and the non-equality conditions.  The equality is handled by the join operator while a new Filter node is added after the join to process the non-equality.   I had created a JIRA to be able to handle both types of comparisons in the join operator:  see https://issues.apache.org/jira/browse/DRILL-3803.    Do you need this support for this particular null equality join issue ?  I would have thought that your rewrite rule would produce the IS NOT DISTINCT FROM condition, but not a mixed condition.

I haven't tried this, but wondering whether this is sufficient to handle mix of EQUALS and IS NOT DISTINCT FROM cases.  Maintain a list (one for each join condition) instead of single "areNullsEquals" flag in MergeJoinBatch [1] and ChainedHashTable [2] and generate the code accordingly for each condition.
[1] https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java#L463
[2] https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java#L251

I think additional support may be needed; the hash table only stores the equality join keys, so the generated code in ChainedHashTable is targeted to the those columns.  For the additional columns you will need to keep track of them (I haven't thought through the details yet.)

It seems like mixed condition of EQUALS and IS NOT DISTINCT FROM in the same join condition can be supported few changes. Here are the WIP changes [1]. Need to test more and clean it up.
[1] https://github.com/vkorukanti/drill/commit/0c8a4a2cef926492853e9c8ae856b82615be3c72

Updated PR to handle mixed EQUALS and IS NOT DISTINCT FROM in same join condition. @amansinha100 Could you please review the latest commit in the PR?

I had one comment on the latest commit but overall LGTM.  +1


Added test of common molecules to illustrate failures

This builds in a test of catechol and aspirin and some other common molecules.
The test currently fails.  Debugging now...

Note that travis tests pass because they skip the oechem-dependent tests.  The tests still fail on my machine.

I think I see the problem.  The utils.molecule_to_mol2() method tries to name the files after their IUPAC names, but if this contains spaces, some of the toolchain fails:
IOError: [Errno 2] No such file or directory: '2-acetoxybenzoic acid.gaff.mol2'
-------------------- >> begin captured logging << --------------------
gaff2xml.openeye: DEBUG: 2-acetoxybenzoic acid
gaff2xml.utils: DEBUG: antechamber -i 2-acetoxybenzoic acid.tripos.mol2 -fi mol2 -o 2-acetoxybenzoic acid.gaff.mol2 -fo mol2 -s 2 -c bcc
gaff2xml.utils: DEBUG: Flag not recognized: acid.tripos.mol2
Use antechamber -h for command-line syntax
gaff2xml.utils: DEBUG: parmchk2 -i 2-acetoxybenzoic acid.gaff.mol2 -f mol2 -o 2-acetoxybenzoic acid.frcmod
gaff2xml.utils: DEBUG: Error: invalid input file format(valid: prepi, prepc, ac, mol2)!
--------------------- >> end captured logging << ---------------------

Would be good to ensure everything handles spaces correctly.

+1 to merge.
Just one failure on my machine, possibly the same spaces in names issue as mentioned previously.
kyleb@kyleb-DX4870:~$ nosetests gaff2xml -v -a '!slow'
Testing molecule benzene ... ok
Testing molecule toluene ... ok
Testing molecule phenol ... ok
Testing molecule benzene-1,2-diol ... ok
Testing molecule 2-acetoxybenzoic acid ... ok
Failure: AttributeError ('OEGraphMol' object has no attribute 'GetConfs') ... ERROR
test_drugs_no_oechem.test_drugs_fast ... ok

======================================================================
ERROR: Failure: AttributeError ('OEGraphMol' object has no attribute 'GetConfs')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kyleb/opt/lib/python2.7/site-packages/nose/loader.py", line 251, in generate
    for test in g():
  File "/home/kyleb/opt/lib/python2.7/site-packages/gaff2xml-0.1-py2.7.egg/gaff2xml/tests/test_drugs.py", line 38, in test_drug
    molecule_name, tripos_mol2_filename = utils.molecule_to_mol2(molecule)
  File "/home/kyleb/opt/lib/python2.7/site-packages/gaff2xml-0.1-py2.7.egg/gaff2xml/utils.py", line 418, in molecule_to_mol2
    return gaff2xml.openeye.molecule_to_mol2(*args, **kwargs)
  File "/home/kyleb/opt/lib/python2.7/site-packages/gaff2xml-0.1-py2.7.egg/gaff2xml/openeye.py", line 253, in molecule_to_mol2
    for k, mol in enumerate(molecule.GetConfs()):
AttributeError: 'OEGraphMol' object has no attribute 'GetConfs'
-------------------- >> begin captured logging << --------------------
gaff2xml.openeye: DEBUG: ZINC03873936
--------------------- >> end captured logging << ---------------------

----------------------------------------------------------------------

Looks like you have an unrelated issue, possibly due to an outdated OEChem version?
AttributeError: 'OEGraphMol' object has no attribute 'GetConfs'

It's odd that the spaces issue doesn't appear on your system but does appear on osx.
Is there a way to make sure we use OS-generated temporary files and directories for intermediate files?  This seems like it would be more robust than using molecule names that may be problematic.

Yeah, I think that sounds like a reasonable plan.


Incorrect tags applied when tag is empty

What happened?
Customer reports a regression where having an empty tag value causes all tags to disappear with 6.5.x version of the provider (I also reproduced on 6.2.x).
This program:

package main

import (
	"fmt"

	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {

	pulumi.Run(func(ctx *pulumi.Context) error {

		bucket, err := s3.NewBucketV2(ctx, "test-bucket-anton-4", &s3.BucketV2Args{
			Bucket:       pulumi.String("test-bucket-anton-4"),
			ForceDestroy: pulumi.Bool(false),
			Tags: pulumi.StringMap{
				"cust_app":       pulumi.String(""),
				"cust_ver":  pulumi.String("2020-04-29"),
				"cust_url": pulumi.String("https://cust.com/xywvBZgKsUsN"),
			},
		})

		fmt.Printf("%p\n", bucket)

		if err != nil {
			return err
		}

		ctx.Export("tags", bucket.Tags)
		return nil
	})
}

pulumi up produces an empty tags export. Commenting out cust_app with empty string makes it produce 2 tags.
Example
See above.
Output of pulumi about
CLI
Version      3.86.0
Go Version   go1.21.1
Go Compiler  gc

Plugins
NAME  VERSION
aws   6.2.1
go    unknown

Host
OS       darwin
Version  14.0
Arch     x86_64

This project is written in go: executable='/Users/t0yv0/bin/go' version='go version go1.21.0 darwin/amd64'

Current Stack: t0yv0/test-chris-bug/dev

TYPE                      URN
pulumi:pulumi:Stack       urn:pulumi:dev::test-chris-bug::pulumi:pulumi:Stack::test-chris-bug-dev
pulumi:providers:aws      urn:pulumi:dev::test-chris-bug::pulumi:providers:aws::default
aws:s3/bucketV2:BucketV2  urn:pulumi:dev::test-chris-bug::aws:s3/bucketV2:BucketV2::test-bucket-anton-4

Found no pending operations associated with dev

Backend
Name           pulumi.com
URL            https://app.pulumi.com/t0yv0
User           t0yv0
Organizations  t0yv0, pulumi
Token type     personal

Dependencies:
NAME                                 VERSION
github.com/pulumi/pulumi-aws/sdk/v6  6.2.1
github.com/pulumi/pulumi/sdk/v3      3.86.0

Pulumi locates its logs in /var/folders/gk/cchgxh512m72f_dmkcc3d09h0000gp/T/ by default

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

This appears to be an upstream issue https://github.com/hashicorp/terraform-provider-aws/issues/31941
Pulumi versions affected:
 6.6.0 affected   v5.21.0 upstream
 6.5.0
 6.4.1
 6.4.0
 6.3.0
 6.2.1 affected
 6.2.0
 6.1.0
 6.0.4 affected
 6.0.3
 6.0.2 affected
 5.42.0 not affected

Repro in TF:
// build an aws s3 bucket in Terraform HCL

resource "aws_s3_bucket" "anton-tf-test-aws-h-9" {
  bucket = "anton-tf-test-aws-h-9"
  force_destroy = false
  tags = {
    cust_sys_app_id = ""
    cust_sys_tag_version = "2020-04-29"
    cust_tagging_standard = "https://cust.com/xywvBZgKsUsN"
  }
}

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "= 5.21.0"
    }
  }
}

terraform apply followed by
aws s3api get-bucket-tagging --bucket anton-tf-test-aws-h-9

observe no tags reported.

I've been diving deeper here since Pulumi reimplements tags + default tags merging; however this does not seem to be affecting this bug.
This function:
https://github.com/hashicorp/terraform-provider-aws/blob/master/internal/service/s3/bucket.go#L701
Receives different values for tags_all dependent on the presence of an empty-valued tag.
    d TAGS =  map[cust_sys_app_id: cust_sys_tag_version:2020-04-29 cust_tagging_standard:https://cust.com/xywvBZgKsUsN]
    d TAGS_ALL =  map[]  ## WHY IS THIS?

    d TAGS =  map[cust_sys_tag_version:2020-04-29 cust_tagging_standard:https://cust.com/xywvBZgKsUsN]
    d TAGS_ALL =  map[cust_sys_tag_version:2020-04-29 cust_tagging_standard:https://cust.com/xywvBZgKsUsN]

Quick notes on why tags_all is empty in one case and not the other.

The differential behavior can be tracked back to SetTagsDiff function https://github.com/hashicorp/terraform-provider-aws/blob/master/internal/verify/diff.go#L26 that special-cases for empty values

When there are no empty values, SetTagsDiff copies tags to tags_all;  it does not copy them when any of the tags are empty

SetTagsDiff is invoked as a diff customizer which is part of the SDKv2 provider framework

https://github.com/t0yv0/terraform-provider-aws/pull/1 I've been looking at surgically editing SetTagsDiff and put it under test. I think what I am seeing is that there are serious issues in schema.ResourceDiff that conflate empty values with unknowns. An educated guess here is that the complicated code is trying to compensate for state transitions with unknowns, but it's not getting it right for empty values. My attempts to edit it so far hit other footguns in the TF Plugin SDK V2.

Given that surgical fixes to SetTagsDiff run into some fundamental issues with TF Plugin SDK V2 confusing empty values with unknown, I'm evaluating a more brute-force approach in parallel. I've built another matrix https://github.com/pulumi/pulumi-aws/pull/2932 that runs state transitions on a random sample of interesting tag states and compares expected vs actual. I've then attempted the following changes:

SetTagsDiff replaced with return nil
Pulumi PreCheckCallback copies tags to tagsAll before it hits TF
Scan SDKv2 provider and modify tags_all to not be computed, otherwise TF rejects program-originating values for tags_all

The end-result is passing a lot more, but not all, of the cases. The remaining failing cases can be summarized as "cannot add empty tag":
(x="a") --> (x="a",y="") produces (x="a") end-state unexpecedly
(x="a") --> (x="a",y="",z="b") produces (x="a",y="",z="b") end-state as expected

There is some remaining work to understand why adding an empty tag does not correctly recognize the need to update.

I've pursued this approach further, and there appears to be at least one bug in the bridge; with the appropriate fix https://github.com/pulumi/pulumi-aws/pull/2944 is passing 100 randomly drawn tags state transition tests including adding/removing empty tags. I'm now waiting for CI to qualify this with all the other tests, then submit for review.

Updates. CI uncovered a number of issues but is now passing the 100 random test matrix. The remaining issues flagged by failing test pertain go supporting Plugin Framework resources correctly and avoiding secret leaks, handling unknown correctly for tags. I will be looking at those next.

Updates. Using https://github.com/pulumi/pulumi-terraform-bridge/commit/ed35c1e07ed107231abe5fb23c00c4759a259bd5 as the preferred fix for empty tag handling. Fixed unknown tests and secrets tests via another bridge fix https://github.com/pulumi/pulumi-terraform-bridge/pull/1503
What's remaining is making sure Plugin Framework based resources are handled correctly.

Looks like automation closed this before a release went out. Reopening until we can release.

Additional upgrade tests were requested before releasing (https://github.com/pulumi/home/issues/3130)

Fixed in v6.9.0.


Set Goal (Minwoo):[100DaysOfCode]

What is your goal?
Complete 100 Days of Code Challenge in Replit
Steps to achieve the goal (not required)

[x] Day1
[x] Day2
[x] Day3
[x] Day4
[x] Day5
[x] Day6
[x] Day7
[x] Day8
[x] Day9
[x] Day10
[x] Day11
[x] Day12
[x] Day13
[x] Day14
[x] Day15
[x] Day16
[x] Day17
[x] Day18
[x] Day19
[x] Day20
[x] Day21
[x] Day22
[x] Day23
[x] Day24
[x] Day25
[x] Day26
[x] Day27
[x] Day28
[x] Day29
[x] Day30
[x] Day31
[x] Day32
[x] Day33
[x] Day34
[x] Day35
[x] Day36
[x] Day37
[x] Day38
[x] Day39
[x] Day40
[x] Day41
[x] Day42
[x] Day43
[x] Day44
[x] Day45
[x] Day46
[x] Day47
[x] Day48
[x] Day49
[x] Day50
[x] Day51
[x] Day52
[x] Day53
[x] Day54
[x] Day55
[x] Day56
[x] Day57
[x] Day58
[x] Day59
[x] Day60
[x] Day61
[x] Day62
[x] Day63
[ ] Day64
[ ] Day65
[ ] Day66
[ ] Day67
[ ] Day68
[ ] Day69
[ ] Day70
[ ] Day71
[ ] Day72
[ ] Day73
[ ] Day74
[ ] Day75
[ ] Day76
[ ] Day77
[ ] Day78
[ ] Day79
[ ] Day80
[ ] Day81
[ ] Day82
[ ] Day83
[ ] Day84
[ ] Day85
[ ] Day86
[ ] Day87
[ ] Day88
[ ] Day89
[ ] Day90
[ ] Day91
[ ] Day92
[ ] Day93
[ ] Day94
[ ] Day95
[ ] Day96
[ ] Day97
[ ] Day98
[ ] Day99
[ ] Day100

Do you have a target date for this? If yes, write below

by the end of February 2023

What will you achieve by completing this goal?

Making me a good developer who can write quality code
Help me make complete routine daily tasks easier by creating automations
Understand what it is to cleanly code both efficiently and effectively
Understand the concepts of DSAs

Additional context

Upon completing this challenge, I hope I can learn the basics for me to be a full stack developer one day and specialize in data science analysis and information gathering that will help me (us) solve real-life problems and situations

How is it going? @mnw314

Hello Philips, thank you for checking up on me!
I am good, thank you. I am just taking a break from coding but I will
return soon.
Hoping everything is well on your side!
On Sun, Jan 22, 2023 at 1:52 PM Philips O. @.***> wrote:

How is it going? @mnw314 https://github.com/mnw314
—
Reply to this email directly, view it on GitHub
https://github.com/asakatsuOrg/AsaKatsuProject/issues/313#issuecomment-1399404564,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4FBR4HMYODK3X35FRQ6MXLWTS4HRANCNFSM6AAAAAASFZLKBI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I'm very well, thanks.
Take your time but return soon. @mnw314


[IN PROGRESS] Working on Xcode 12.5 support

Changes:

Correct protocol mapping
XCTestManager_IDEInterface -> XCTMessagingChannel_RunnerToIDE
XCTestDriverInterface -> XCTMessagingChannel_IDEToRunner
XCTestManager_DaemonConnectionInterface -> XCTMessagingChannel_IDEToDaemon

Add the references to the headers

Add the implementation of the protocol functions

Superseded by #497


Adding possibility to redirect debug print to Python logger instance

Problem
I'm currently integrating PycroManager in ImSwitch, and would like to redirect the debug output to my logger instance so to have the possibility to get a full log dump (feature currently not implemented but I'm hoping to add in the near future).
Proposed Solution
Add a new variable in the Acquisition API, i.e. logger_instance, which can be used to redirect the print output.

Closing after #719


UnexpectedAlertOpenError in IE even after handling an alert

Hi,
I've an alert that occurs after clicking on a link of gmail and my application continues only if I accept it.
I'm trying to accept the alert by switching into it but couldn't accept the alert. I even tried setting capability (unexpectedAlertBehaviour:'accept',).
This capability accepts my alert, but even after that I get the same error "UnexpectedAlertOpenError".
Tried in many ways by passing KEY.ENTER, ESC, etc. but unable to get focus on the alert.
Could you please guide me how to handle such kinds of alerts using protractor.
Thanks in advance
Bharath

+1

Have you tried everything in https://github.com/angular/protractor/issues/308?

@sjelin We've tried all the possibilities that are mentioned in #308 but unable to handle the alert.
We've performed workaround by using AutoIt to click on 'OK' button of alert through which we are able to accept the alert now. This was the only way we found to move forward and this worked fine for us.
Is there any way with which we can handle this using protractor directly ?.
Configuration:
windows 7
protractor 2.5.1
Internet Explorer 11

Hi @sjelin,
Am facing the same issue,
We have a verification link in a mail, on clicking the @href link a new tab opens in which a modal dialog box appears on the screen and we are supposed to accept the alert to continue a registration process. We are able to accept alert using browser.driver.switchTo().alert().accept()  in chrome and Firefox. But where in ie, we are unable to handle it.we are having **UnexpectedAlertOpenError ** error while running tests in IE. Tried every thing and every possibility to mentioned in #308 to resolve it.
Configuration:
windows 7
protractor 2.5.1
Internet Explorer 11
Please let me know if you need more info on this.
Thanks in advance
Sri Harsha.

I am able to reproduce this bug. Possibly the best way of overcoming this is to write a script which kills the alert or the event and then execute that browser.executeScript. It does mean a little bit more test code clutter, it's the only workaround as it stands.
Yes it will mean you don't test IE fully.

@inthegarage do you have a reproducible test case? We should open up a bug with IEDriver at https://github.com/SeleniumHQ/selenium/issues.

Yes I just had an event on window.beforeonunload, that returns a string and the alert message appears.
In Chrome and FF this works perfectly (alert catch), IE it's just ignored. I'll post the code here over the weekend.

@juliemr
So in any controller you can do the following:
    function checkForChanges(event, isWindowEvent) {
        // check for a null unload, when protractor tests are running.
        // the only way to get them to pass in IE.
        if (($scope.form && !$scope.form.$pristine))) {
            var txt = gettextCatalog.getString('You have unsaved changes, are you sure?');
            if (isWindowEvent) {
                return txt;
            } else {
                if (!confirm(txt)) {
                    event.preventDefault();
                }
            }
        }
    }

    $window.onbeforeunload = function (event) {
        return checkForChanges(event, true);
    };

In the protractor test you can do the following:
            browser.navigate().refresh().catch(function() {
                return browser.switchTo().alert().then(function (alert) {
                      // Is this expected?
                });
            });

The catch is never caught in IE. FF and Chrome is all OK.

Should this be forwarded to Selenium? cheers

Sorry for the slow response - yes, this should be filed with Selenium. Thanks!


Remove 'http' entries from CSP.

Coverage remained the same at 92.558% when pulling cbe0b7664038a52d459df08a17cf7f7e66bca3da on akatsoulas:deny-http-csp into 45b8060a71d008d4aebaee1c31065250112d51b6 on mozilla:master.

Doubled checked there are no references to those entries. The issue is going to be in our local envs that will not be able to load assets that are fetched depending in the site url (eg starting with "//")

We could add these entries in the local.py-dist. Thoughts?

sounds good

@johngian pr updated

  File "/code/mozillians/settings/local.py", line 90, in <module>     base.CSP_DEFAULT_SRC += ('http://*.mapbox.com',) NameError: name 'base' is not defined

Coverage remained the same at 92.558% when pulling e3b7a1281be4814a7f02309825905e2858c19556 on akatsoulas:deny-http-csp into 96626e4eb885c408680099275b909f064b5c611e on mozilla:master.

Ermmm, my bad, pr updated.

Coverage remained the same at 92.558% when pulling 65df0d87cbe6ff1589911d378d3aab56a7947ac3 on akatsoulas:deny-http-csp into 96626e4eb885c408680099275b909f064b5c611e on mozilla:master.

Coverage remained the same at 92.558% when pulling 6e303fd7117ed44a466b49034bec76b224d6b35b on akatsoulas:deny-http-csp into 96626e4eb885c408680099275b909f064b5c611e on mozilla:master.

r+

Just curious: How do you handle //example.com/foo.js links during development where you don't have https and therefore the example translates to http://example.com/foo.js

This should be addressed after overriding CSP related configuration entries in settings/local.py-{dist, docker-dist}.

ic, that's tricky. Thanks for the answer!

@glogiotatidis can you please elaborate more about the tricky part? Do you have any ideas for a cleaner solution?

I consider that tricky because you'll not face CSP errors during development and the possibilities to land code that doesn't work on stage is higher. Unless you actually maintain the http version of CSP rules on your local file.
I prefer to keep http the CSP rules in place, since we run everything under https on production I don't see how they can be a problem.

mozillians.org was allowing http on prod  thus this change. Thanks for the explanation! :beer:

FYI this was implemented after some security suggestions not to allow CSP content using http. That's why the explicit CSP rule.


Update .openpublishing.redirection.json

edits

Docs Build status updates of commit d58f6d4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Find using emmet abbreviation [feature-request]

Ability to search for an element using emmet abbreviations from the "find" box in an HTML file.

this should select all divs in the html file with a class of "container" and id of "div1"

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

Yeah I guess I really didn't think about it that much. I like both of those options you pointed out, but I'm not sure which one is better.
Selecting the whole element would be tricky, especially with ">" in the Emmet abbreviation (specifying its children). would it select the full element only if it had the specified children elements, or would it select the outer parent element as well as the specified child nodes, but not any children nodes that weren't specified?
Maybe your second idea is a better option, but then it would likely require a whole new control because the "find" box is only used for selecting and replacing.
Both of your ideas have their advantages and disadvantages so I'm not really sure which is the best option or if there is another better option. Anyway thanks for the upvote

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


$%^^##[-wATCH-]— Baltasar Ebang Engonga's 400 Video Original Video Link Baltasar Ebang Engonga's 400 Video Viral On Social Media X Trending Now

21 seconds ago Recently, a video of Balthazar Engonga with a housegirl appeared online.
L𝚎aked Video Balthazar Baltasar Ebang Engonga Original Video Viral Video L𝚎aked on X Twitter Telegram
Balthazar Baltasar Ebang Engonga Dark Video Female Balthazar Baltasar Ebang Engonga Dark Video Link Viral On Social Media X TikTok Trending Now
Balthazar Baltasar Ebang Engonga Original Video video took the internet by storm and amazed viewers on various social media platforms. Balthazar Baltasar Ebang Engonga , a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Balthazar Baltasar Ebang Engonga Original Video Viral Video L𝚎aked on X Twitter
Balthazar Baltasar Ebang Engonga Original Video video oficial twitter
L𝚎aked Video Balthazar Baltasar Ebang Engonga Original Video Viral Video L𝚎aked on X Twitter.
$%^^##[-wATCH-]— Baltasar Ebang Engonga's 400 Video Original Video Link Baltasar Ebang Engonga's 400 Video Viral On Social Media X Trending Now
[-wATCH-]— Baltasar Ebang Engonga's 400 Video Original Video Link Baltasar Ebang Engonga's 400 Video Viral On Social Media X Trending Now
[-wATCH-]— Baltasar Ebang Engonga's 400 ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Baltasar Ebang Engonga's 400 ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Baltasar Ebang Engonga's 400 Video Original Video Link Baltasar Ebang Engonga's 400 Video Viral On Social Media X Trending Now
Baltasar Ebang Engonga's 400 Original Video video took the internet by storm and amazed viewers on various social media platforms. Baltasar Ebang Engonga's 400, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Baltasar Ebang Engonga's 400 Original Video Viral Video L𝚎aked on X Twitter
Baltasar Ebang Engonga's 400 Original Video video oficial twitter
L𝚎aked Video Baltasar Ebang Engonga's 400 Original Video Viral Video L𝚎aked on X Twitter..

xxc


Firebase Facebook Login Keep Returning EUNSPECIFIED error (android)

So, i have already follow the instructions from RN Firebase Facebook Social Auth to use the services and when i try to use

onFacebookButtonPress()
.then(resp=> {
console.log(JSON.stringify(resp))
})
.catch(err => {
console.log(JSON.stringify(err))
})

I got this error message

{
"nativeStackAndroid": [
{
"lineNumber": 221,
"file": "LoginManager.java",
"methodName": "onActivityResult",
"class": "com.facebook.login.LoginManager"
},
{
"lineNumber": 181,
"file": "LoginManager.java",
"methodName": "onActivityResult",
"class": "com.facebook.login.LoginManager$1"
},
{
"lineNumber": 81,
"file": "CallbackManagerImpl.java",
"methodName": "onActivityResult",
"class": "com.facebook.internal.CallbackManagerImpl"
},
{
"lineNumber": 34,
"file": "FBActivityEventListener.java",
"methodName": "onActivityResult",
"class": "com.facebook.reactnative.androidsdk.FBActivityEventListener"
},
{
"lineNumber": 305,
"file": "ReactContext.java",
"methodName": "onActivityResult",
"class": "com.facebook.react.bridge.ReactContext"
},
{
"lineNumber": 762,
"file": "ReactInstanceManager.java",
"methodName": "onActivityResult",
"class": "com.facebook.react.ReactInstanceManager"
},
{
"lineNumber": 90,
"file": "ReactDelegate.java",
"methodName": "onActivityResult",
"class": "com.facebook.react.ReactDelegate"
},
{
"lineNumber": 112,
"file": "ReactActivityDelegate.java",
"methodName": "onActivityResult",
"class": "com.facebook.react.ReactActivityDelegate"
},
{
"lineNumber": 68,
"file": "ReactActivity.java",
"methodName": "onActivityResult",
"class": "com.facebook.react.ReactActivity"
},
{
"lineNumber": 8550,
"file": "Activity.java",
"methodName": "dispatchActivityResult",
"class": "android.app.Activity"
},
{
"lineNumber": 5534,
"file": "ActivityThread.java",
"methodName": "deliverResults",
"class": "android.app.ActivityThread"
},
{
"lineNumber": 5582,
"file": "ActivityThread.java",
"methodName": "handleSendResult",
"class": "android.app.ActivityThread"
},
{
"lineNumber": 51,
"file": "ActivityResultItem.java",
"methodName": "execute",
"class": "android.app.servertransaction.ActivityResultItem"
},
{
"lineNumber": 135,
"file": "TransactionExecutor.java",
"methodName": "executeCallbacks",
"class": "android.app.servertransaction.TransactionExecutor"
},
{
"lineNumber": 95,
"file": "TransactionExecutor.java",
"methodName": "execute",
"class": "android.app.servertransaction.TransactionExecutor"
},
{
"lineNumber": 2317,
"file": "ActivityThread.java",
"methodName": "handleMessage",
"class": "android.app.ActivityThread$H"
},
{
"lineNumber": 106,
"file": "Handler.java",
"methodName": "dispatchMessage",
"class": "android.os.Handler"
},
{
"lineNumber": 246,
"file": "Looper.java",
"methodName": "loop",
"class": "android.os.Looper"
},
{
"lineNumber": 8595,
"file": "ActivityThread.java",
"methodName": "main",
"class": "android.app.ActivityThread"
},
{
"lineNumber": -2,
"file": "Method.java",
"methodName": "invoke",
"class": "java.lang.reflect.Method"
},
{
"lineNumber": 602,
"file": "RuntimeInit.java",
"methodName": "run",
"class": "com.android.internal.os.RuntimeInit$MethodAndArgsCaller"
},
{
"lineNumber": 1130,
"file": "ZygoteInit.java",
"methodName": "main",
"class": "com.android.internal.os.ZygoteInit"
}
],
"userInfo": null,
"message": "SERVER_ERROR: [code] 1675030 [message]: Error performing query. [extra]: ",
"code": "EUNSPECIFIED",
"line": 5791,
"column": 45,
"sourceURL": "http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.sabacustomerapp&modulesOnly=false&runModule=true"
}

did you know why this happen? i think i have already follow the instruction in right way..

Sorry, I have no idea how to begin with this one - https://stackoverflow.com/help/minimal-reproducible-example

@mikehardy getting the same error, Facebook has contacted us with a screenshot about the issue (user not being able to login/signup), we got an error modal in app and the error was: SERVER_ERROR: [code] 1675030 [message]: Error performing query. [extra]:.
Tried to replicate the error on a Xiaomi Redmi 8 with Android 10 and I managed to login/sign up just fine. We're using react-native-firebase 12.8.0 and react-native-fbsdk-next 4.3.1
I really don't know for how long the issue exists, we never had a support ticket about "not being able to login/signup with facebook" and bugsnag has no reports too.

I believe there is a problem, at the same time, with no reproduction, no one can help even if they want to :shrug:

I think it wont be easy to repro, Facebook spotted the issue while on my real device it won’t show up. Tomorrow I ll test on several devices/sdks on browserstack and If a device/sdk reproduces it I ll post a comment.

I've changed:
    implementation 'com.facebook.android:facebook-android-sdk:7.1.0'

to:

dependencies {
    // ...implementations
    implementation "com.facebook.android:facebook-android-sdk:9.1.+"

And it seems it works fine. Will keep an eye on it though.

I'm solved my problem with sign out my current facebook account on my android, becuase current account not registered yet on facebook developer account, so android returning error. When i try to login with the same account that i sign up on facebook developers, there is no error message. Just make sure, your facebook account is registered on facebook developer account to do debug. I think its done for this issue, i will close this issue. Thank you everyone, hopefully this issue help many developer outthere.

+1 can see this error in production as well, frequently. @efstathiosntonas did you ever manage to make progress on that?

@chr4ss12 this is what fixed it for me: https://github.com/facebook/facebook-android-sdk/issues/989#issuecomment-967099146


Update readme.md

For issue #1336 :

Added a note that any hidden events in dashboard by default is intended and configurable.
Corrected a few typos.

I think it should go here rather than in the readme https://github.com/sindresorhus/refined-github/issues/1137

It should go in the Declutter section, next to the two other similar items

The dashboard shows more in less space.
News feed items of users starring or forking your repos are removed.

And definitely not as a separate extended section with mentions of other issues.

@bfred-it
I hope it's ok now.
Regarding the "passive-aggressive section" :
you've misunderstood me, that was never my intent with this PR, I only wanted to avoid getting more issues regarding this in the future.
I just copied the wording from https://github.com/sindresorhus/refined-github/issues/822#issuecomment-345519824 ...

Rephrased a bit and added the detailed reasoning for the hidden Commit entries (formatted the latter with <sup>).


Improvements of the English translation

Another run into the English string to improves them.

long side is not width. It is the greater side of width or height.

I've change string related width to 'Resize to %1$d pixels'

That's a way better translation :+1:


Add support for setting a custom version of the Keycloak Operator

Added an option for setting a custom version of the Keycloak Operator:
KC_OPERATOR_TAG - defaults to nightly

Thanks @tkyjovsk for adding this configurable operator tag and updating the docs.


Allow many owners to own a team

Fixes #23
Signed-off-by: Miquel Sabaté<EMAIL_ADDRESS>

I've basically moved the owner_id column from the teams table to the team_users table. In order to do this, I've added a new has_many relationship into the Team model called owners. This relationship is exactly the same as the users relationship, but it adds the filter owner = true for the team_users table.
I've encountered one minor problem though, and it's that the previous line:
team = Team.find_or_create_by!(name: username, owner: self)

had to be changed to:
team = Team.find_by(name: username)
if team.nil?
  team = Team.create!(name: username, owners: [self])
end

This is because I wanted to keep the constraint of specifying the owners on creation time, and this was not possible by using the find_or_create_by! method.

The code looks good.
It would have been nice to have the<PHONE_NUMBER>1530_remove_owner_id_from_teams.rb migration take care of migrating the old team owners. However I think we can just ignore that right now and keep the code simple; Portus is not in a stable phase yet.

This is because I wanted to keep the constraint of specifying the owners on creation time, and this was not possible by using the find_or_create_by! method.

Yep, I guessed it and is totally fine for me.
Thanks for the clarification!

Just add the missing check, then we can merge the code in master.

@flavio done!

Great


Add resource.Copy

Currently only some resource methods can take a "destination" argument.
But many don't, including image transformation.
It might also be useful to rename an asset without doing anything to it, especially when using .GetRemote:
{{ with resources.GetRemote "https://image.com/3093i49039i403i4903i403.jpg" }}
  {{ $img := resources.Copy . "directory/good-looking-name.jpg" }}

{{ end }}

I suspect that we have discussed this before; my conclusion then would be that resources.Copy would be better (the old will still exist under its original name).

Yes I could not find the conversation though.

But then once you've copied it, are you suppose to "Get" it again from its new location?

Or the new asset is returned by the resources.Copy method...

Yes, you can start using it right away:
{{ $bar := resources.GetRemote "https://example.org/foo.jpg" | resources.Copy "bar.jpg" }}

Damn! How did I miss that! Thanks!

What we have now:
{{ $options := dict "targetPath" "css/foo.css" }}
{{ $css := resources.Get "sass/style.scss" | resources.ToCSS $options }}

{{ $options := dict "targetPath" "js/foo.js" }}
{{ $js := resources.Get "js/script.js" | js.Build $options }}

To be somewhat consistent, we could just do the same for .GetRemote:
{{ $options := dict "targetPath" "img/foo.jpg" }}
{{ $img := resources.GetRemote "https://example.org/image.jpg" $options }}

There's an undocumented method to publish a resource, having the same effect as invoking .Permalink or .RelPermalink:
{{ $img := resources.GetRemote "https://example.org/image.jpg" }}
{{ $img.Publish }}

We could also create a resources.Publish method #9303 which would take an optional dictionary:
{{ $options := dict "targetPath" "img/foo.jpg" }}
{{ $img := resources.GetRemote "https://example.org/image.jpg" | resources.Publish $options  }}

I'm not advocating any of these, but it's worth thinking about. Whatever we do I hope it's mostly consistent between global and page resources, regardless of media type (images, css, js, etc.).

To be somewhat consistent, we could just do the same for .GetRemote:

Yes, I have thought about that, and maybe we should do that, but there's a non-trivial implementation cost to add the same set of options to every FooResource function we have/add in the future. And I like the Unixy simplicity of this simple line:
{{ $bar := resources.GetRemote "https://example.org/foo.jpg" | resources.Copy "bar.jpg" }}

But I'm not totally 100% sure ... There may be other considerations as to why we maybe should add targetPath to at least the core funcs, e.g. GetRemote/Get.

{{ $img := resources.GetRemote "https://example.org/image.jpg" | resources.Publish $options  }}

Yea, that could maybe be a better idea; this would allow us to put more options in the future if needed.

Related: https://discourse.gohugo.io/t/using-getremote-on-image-puts-the-resource-in-root/36397

Duplicate of https://github.com/gohugoio/hugo/issues/7406

Yes, you can start using it right away:

Are you sure? I get this when I try your suggestion:
at <resources>: can't evaluate field Copy in type interface {}

Lost in translation...
regis asked:

But then once you've copied it, are you suppose to "Get" it again from its new location? Or the new asset is returned by the resources.Copy method...

bep answered:

Yes, you can start using it right away:

bep didn't mean that the feature is available in the current release.

bep didn't mean that the feature is available in the current release.

I see, on master then?

No. This is still in the proposal stage. Nothing has been implemented.

This would help a lot! Any progress?


WhatsApp sharing for a spefic number for android and iOS

Hello,
Can that be achieved using this plugin?
For iOS there's  href="whatsapp://send?text=HelloWorld&abid=9663
abid being the Address book ID, or id in the official cordova contacts plugin
I'm hoping for something like
msg via WhatsApp (with errcallback)
or for the number directly like:
cordova.plugins.Whatsapp.send("1112223333");
https://github.com/ranjitpandit/whatsapp-phonegap-plugin
(tried this plugin, but it didn't work out for me)
Thanks a lot! your SocialSharing plugin is really, really useful.

Afaik the abid is a whatsapp-specific id, which you can't retrieve with this plugin. If you know it I could add a method to use the abid and send it to whatsapp, but first plz figure out how to get that abid in the first place.

Yes, sorry about not mentioning that. I know how to get the abid from the cordova contacts plugin Get contacts info
<gap:plugin name="org.apache.cordova.contacts" />
Can you please add the sharing to specific number via abid? that would be very helpful. Thanks in advance.

Ha, interesting!
Please see this doc and give the master repo a spin.

Nice! sorry I had a deadline coming in two days and even the UI wasn't fully ready :)
Doesn't seem to work on Android. It crashes bluestack and dosen't respond on an actual device.
I used the npm source with pg build, does it include this function?

No, not on npm, only when using 'https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin' directly.

Thanks a lot. Sorry for the late reply, I'm getting "Error - Plugin (or a specific plugin version) not found in external repo: cordova-plugin-x-socialsharing "
<gap:plugin name="cordova-plugin-x-socialsharing" source="npm" version="<IP_ADDRESS>"/>
I'll test it on android, ios and bluestacks.

What did you do to get that error exactly?

That's what pg build gives "Error - Plugin (or a specific plugin version) not found in external repo: cordova-plugin-x-socialsharing - You can fix this here"
Just a sec, I'll try re-building without using the version number.

The building went fine, I'll test it on device and get back to you.

Same as before the plugin doesn't seem to be installing corretly when I use <gap:plugin name="cordova-plugin-x-socialsharing" source="npm" version="<IP_ADDRESS>"/> or <gap:plugin name="cordova-plugin-x-socialsharing" source="npm" version="~<IP_ADDRESS>"/> or <gap:plugin name="cordova-plugin-x-socialsharing" source="npm" />
I'll test it again using the github one this time. I'm using phonegap build btw. I've tested on it on android, ios and bluestacks.

Finally got it to work on android! :) the country key must be there. 00 will not work, it must be + sign followed by the country key then the number i.e  +310433885282.<PHONE_NUMBER>5282 won't work. The message doesn't appear on WhatsApp's text area though. I've used 'text msg', could it be the space(encode needed?)?
Thanks a lot! even without the text message it's already very useful enough to me. Well done.

Hello, just checking if you've seen my test results and edits :) the (untested at the moment) in the #whatsapp made me wonder.
Many Thanks.

it open  chat window of the reciver  but the message does not appear in whatsapp text area.

I have the same issue, it finds the receiver but it doesn't show the message.

+1

similar issues #510 , #525 , #545 ..

Hi, I'm using cordova-plugin-x-socialsharing 5.0.11 "SocialSharing" and trying to directly start a chat with a specific Whatsapp number. On Android it works when putting the number as the id, but on iOS even after inserting a new contact and using it's abid (or the abid of an existing contact), Whatsapp does open but on the "Recent Chats" screen instead of starting a chat with that contact directly (the chat is actually right there in Recent chats, but not opened).
I'm using this:
window.plugins.socialsharing.shareViaWhatsAppToReceiver(abid, 'msg', null, null, function (message) { /* success handler */ },  function (error) { /* error handler */ });
Any idea what's wrong?

I am getting the following error while using the shareViaWhatsAppToReceiver function.
$cordovaSocialSharing.shareViaWhatsAppToReceiver is not a function
The method exists in the SocialPlugin.js file, but does not show up in Chrome debugging.
I tried the latest plugin version (5.0.12-dev) which installs as default. I also downgraded to 5.0.11 but still the same. Am I doing something wrong?

@SandroGrzicic  it should be window.plugins.socialsharing.shareViaWhatsAppToReceiver(contacts[i].id, 'msg', null, null);
@evliya you better use window.plugins.socialsharing.shareViaWhatsAppToReceiver not just shareViaWhatsAppToReceiver() or socialsharing.shareViaWhatsAppToReceiver()

@ssj7 yes the abid is the contact ID as created or found by the contacts plugin. Are you saying that it works for you on iOS with the latest Whatsapp version?

Yes, it has always worked for me. Try it.

@ssj7 can you do a quick check now with the latest version? I have noticed some change in their API docs, perhaps they removed the feature in the latest version? I just cannot get the correct chat window open.

Just tested the latest build I made (on 12/18/2015) on iOS worked fine. Sorry I can't find the source www.zip I used for that build to test it against the latest build of the plugin. The 12/18/2015 build of my app(and the plugin) still works fine with the newest version of WhatsApp though. I'll test it and let you know as soon as I find it. Sorry, it has been a while since I've worked on that one. Worst case scenario I'll just extract the www folder of the ipa or the apk and try to rebuild the xml config.

Thanks, no problem. I don't think there's really an issue with the plugin, the code is really straightforward, it looks more like an issue with Whatsapp, as I said above I even tried doing a window.open - just refuses to work. The only options I see are that for some reason the abid I get from the Contacts plugin (really using just contacts[0].id) is not valid, or Whatsapp changed their support for this (or something completely unrelated is the issue).

Another thing we found is that since on Android you need to create the contact first before sharing to that contact (otherwise you get the nasty Whatsapp "Contact is not on whatsapp" prompt), it seems that sometimes if we open Whatsapp using window.plugins.socialsharing.shareViaWhatsAppToReceiver(mobile, '', null, null, function (message) { ... }); , sometimes it starts fine, but sometimes it shows the nasty prompt instead. We have tried to add a delay after creating the contact but it didn't seem to help much. Any idea what's going on? Perhaps creating a contact using the cordova contacts plugin doesn't make the contact immediately accessible to Whatsapp?

good evening
I am experiencing the following problem when using a code. It opens WhatsApp but the message field is not filled. Can someone tell me what to do?
msg via WhatsApp for Addressbook ID 101
Fonte: https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin#phonegap-build

Im experiencing the same issues as @joaosore + if you put the img url, the app will crash.
Please help.

I'm also experiencing the same as @joasore. shareViaWhatsAppToReceiver() on android leaves the message field empty. Does anyone have an idea on how to fix this?

Observed the same behavior. would be great to be able to automatically fill the message for a specific contact on android devices please :) !

We had the same problem with this in ionic. We could nog get the intent system to work from within ioninc/cordova. It seems it's possible to send a message to a specific phone number like this:
Message
On iOS it seems to work with the abid parameter. So putting both in the url should do it.
Message
I don't know why this is not documented anywhere but for now it seems to work.

First ,how to use this code,below? is there any proper example ? Second,is there any way to send a message to multiple receivers at Whatsapp ? Thank you in Advance

We had the same problem with this in ionic. We could not get the intent system to work from within ioninc/cordova. It seems it's possible to send a message to a specific phone number like this:
Message
On iOS it seems to work with the abid parameter. So putting both in the url should do it.
Message
I don't know why this is not documented anywhere but for now it seems to work.
You need this in config.xml:

Works for Android, however for iOS the abid parameter value needs to be something different apparently.. Doesn't work for me on iOS in any case.
Thanks for the great find however! :)

Hi! If you want this fixed please reopen with a suggested solution.

Hi @SandroGrzicic! Did you find some fix to issue? I want to open a chat with specif abid contact, but just work on Android. Thanks!

if u want to chat with specific person in whatsapp then here is the solution.
//in my html or template
openURL('whatsapp://send?text=Hello&phone=+919904880561')
//in my controller
$scope.openURL = function(num){
window.open(url,"_system","location=yes");
};

Thanks for sharing. The latest version of this plugin also supports this feature. See https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin#by-phone-number-since-530

Hi @krunalsk007 and @EddyVerbruggen. To this works fine, I have to add some preference on config.xml? I'm with 5.3.0 version and the problem persists.

@EddyVerbruggen I'm making the following called:
window.plugins.socialsharing.shareViaWhatsAppToReceiver('2','test',null,null);
I get the abid 2 using the contacts plugin and I already check, the code is correct.
The WhatsApp is called, but in recent chats, never in chat with the contact passed by abid code.
Did you can see anything wrong?
I'm testing in iOS 9, but on iOS 11 happens too.
I'm using the socialsharing plugin version 5.3.0 and iOS platform 4.5.4
I'm trying solved this for weeks, help me please.
Thanks.

@eduardolopesUFJF Did you try the new shareViaWhatsAppToPhone?

@EddyVerbruggen this works to iOS too?

Yes, but not for images. It's in the readme I linked to..

Wonderfull, I will need just for send text. I will test and let you know. Thank you so much.

Works perfectly well! Really really really THANK'S @EddyVerbruggen! Did you save my life!

Awesome, thanks for the feedback!

Hi @eduardolopesUFJF
One question, did this work for ionic 3?
if that's how you implemented it,
since using the plugin: https://ionicframework.com/docs/v3/native/social-sharing/
I can't access the shareViaWhatsAppToPhone function

thanks for your help.

In ios13.5 we couldn't use it, it says "can't open the link". We have to switch to the tipical href
https://wa.me/+number?text=Contact


Test

@pratikpparikh ping I would like to ask you a question

@vietj please ask.

can you send me an email ?

Done

thanks


Feature/cleanup and optimize

-- work for supporting multiple sensors at once
-- docs don't seem to work right atm, will need some fixing.
-- bumped version 0.0.6a1. Will shorten 'alpha' to 'a1'

-- Grafana has been updated to support multiple sensors

-- slight table tweak to support multiple tables. Database tables will have to be dropped before running again.
-- Consider adding a flag to drop tables for us if needed like in this case.


With 2 parallel runs of a job, run2 of job unlocks the lock created by run1 of job

In your example, with a timeout=1 (minute) and sleep=120 (seconds) and doing 3 runs of the same job, below is what happens

run1 sets the lock
run1 goes into 2 min sleep
run2 tries to get lock for 1 min
run2 fails to "set" lock but the post-entrypoint releases the lock set by run1
run3 can now set the lock even though run1 has not completed

Is there a way to get around this problem?

Are these 3 runs happening within the same workflow? Or is it 3 different workflow executions happening at the same time?


Adding custom lwIP based interface layers to ESP-NETIF (IDFGH-12602)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[x] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Background
I am working on creating an RFC7668 (LoWPAN6-BLE) connection on an ESP-32 using the NimBLE bluetooth stack.
I managed to get this working directly with lwIP by:

Adding the missing `lowpan6*` sources to the build
idf_component_register(
  SRCS
    src/main.c
    "$ENV{IDF_PATH}/components/lwip/lwip/src/netif/lowpan6.c"
    "$ENV{IDF_PATH}/components/lwip/lwip/src/netif/lowpan6_ble.c"
    "$ENV{IDF_PATH}/components/lwip/lwip/src/netif/lowpan6_common.c"
    # etc
)

Establishing a GAP connection to a device advertising support for the Internet Protocol Support Service
static int on_gap_event(struct ble_gap_event* event, void* arg)
{
    switch (event->type)
    {
    case BLE_GAP_EVENT_DISC:
        if (device_supports_ipss(event->disc))
        {
            uint8_t own_addr_type;
            ble_hs_id_infer_auto(0, &own_addr_type);
            ble_gap_connect(own_addr_type, &event->disc.addr, 10000, NULL, on_gap_event, NULL);
        }
    // etc...
    }
}

Establishing an L2CAP connection to said device after GAP connection
static int on_gap_event(struct ble_gap_event* event, void* arg)
{
    switch (event->type)
    {
    case BLE_GAP_EVENT_CONNECT:
    {
        struct os_mbuf* sdu_rx = os_mbuf_get_pkthdr(&m_mbuf_pool, 0);
        ble_l2cap_connect(event->connect.conn_handle, 0x0023, 1280, sdu_rx, on_l2cap_event, NULL);
    }
        // etc...
    }
}

Creating an lwIP netif that uses lwIP's `rfc7668_if_init` and `rfc7668_input` functions for initialization and receiving input, respectively
struct netif my_netif;
netif_add(&my_netif, NULL, NULL, NULL, NULL, rfc7668_if_init, rfc7668_input);

setting that netif instance to use a custom linkoutput function that outputs data using the L2CAP connection, above:

my_netif.linkoutput = my_l2cap_linkoutput_function;

And finally hooking up the netif's input/output functions to their respective L2CAP events
static int on_l2cap_event(struct ble_l2cap_event* event, void* arg)
{
    switch (event->type)
    {
    case BLE_L2CAP_EVENT_COC_CONNECTED:
        struct ble_gap_conn_desc desc;
        ble_gap_conn_find(event->l2cap_event->connect.conn_handle, &desc);

        // NimBLE stores addresses in _reverse_ order. We need to reverse these
        // before doing the EUI64 conversion, otherwise we get incorrect
        // addresses in our IPv6 headers.
        uint8_t addr_buf[6];
        for (int i = 0; i < 6; ++i)
        {
            addr_buf[i] = desc.peer_id_addr.val[6 - 1 - i];
        }
        rfc7668_set_peer_addr_mac48(&rfc7668_netif, addr_buf, 6, 1);

        for (int i = 0; i < 6; ++i)
        {
            addr_buf[i] = desc.our_id_addr.val[6 - 1 - i];
        }
        rfc7668_set_local_addr_mac48(&rfc7668_netif, addr_buf, 6, 1);

        // Assign link-local IPv6 address based on our BLE address per RFC7668 requirements
        ip6_addr_t lladdr;
        ipv6_create_link_local_from_mac48(addr_buf, &lladdr, 1);
        ip_addr_copy_from_ip6(rfc7668_netif.ip6_addr[0], lladdr);
        ip6_addr_assign_zone(ip_2_ip6(&rfc7668_netif.ip6_addr[0]), IP6_UNICAST, &rfc7668_netif);
        netif_ip6_addr_set_state(&rfc7668_netif, 0, IP6_ADDR_PREFERRED);

        // Finally set the link up
        netif_set_up(&rfc7668_netif);
        netif_set_link_up(&rfc7668_netif);
        break;

    case BLE_L2CAP_EVENT_COC_DISCONNECTED:
        break;

    case BLE_L2CAP_EVENT_COC_DATA_RECEIVED:
        // Copy NimBLE's os_mbuf into the pbuf lwIP expects
        size_t rx_len = (size_t)OS_MBUF_PKTLEN(event->l2cap_event->receive.sdu_rx);
        struct pbuf* p = pbuf_alloc(PBUF_RAW, rx_len, PBUF_POOL);
        os_mbuf_copydata(event->l2cap_event->receive.sdu_rx, 0, rx_len, p->payload);
        p->len = rx_len;

        // Pass the data to our RFC7668 netif
        my_netif.input(p, &my_netif);

        // Free the os_mbuf and provide NimBLE with another for the next recv
        os_mbuf_free_chain(event->receive.sdu_rx);
        struct os_mbuf* next = os_mbuf_get_pkthdr(&m_mbuf_pool, 0);
        ble_l2cap_recv_ready(event->receive.chan, next);

        break;

    }
}

Problem
This worked mint on some test firmware that did nothing but establish this 6LoWPAN connection: I was able to successfully pass UDP packets between some test devices.
I then added a Wi-Fi interface with ESP-NETIF and started seeing odd failures -- in particular, I'd find that the source addr would change in my udp_recv callbacks:
static void
recv(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
{
    ip_addr_debug_print(addr);  // the IPv6 address from my 6lowpan peer, good
    // later in the same function...

    ip_addr_debug_print(addr);  // some IPv4 address from the Wi-Fi network I'm connected to
}

Which I suspect is because lwIP's udp_* API is not thread-safe. Now that I'm running the ESP-NETIF Wi-Fi event loop, it's processing udp input outside of the lwIP stuff I set up for RFC7668 communications.
Attempted solution
This sounded like a good fit for an ESP-NETIF Custom I/O Driver. I'd just need to pull apart my proof of concept code to configure:

all the NimBLE GAP/L2CAP configuration stuff as my I/O driver
lwIP's RFC7668 functions as a network stack layer (e.g., I need to tell ESP-NETIF to use rfc7668_if_init as the init func instead of wlanif_init)

My thinking here is if I can wrap my code above using a custom I/O driver and a custom network stack layer, all the processing would happen in the ESP-NETIF event loop and I wouldn't have to worry about concurrent access to lwIP's non-threadsafe APIs.
I thought I'd define my own esp_netif_netstack_config to point to the RFC7668 functions:
static const struct esp_netif_netstack_config my_rfc7668_config = {
        .lwip = {
            .init_fn = rfc7668_if_init,
            .input_fn = my_rfc7668_input_wrapper,
        }
};

However, I can't customize the network stack from my application code because esp_netif_netstack_config is only exposed outside of esp_netif_lwip* as an opaque pointer:
    esp_netif_config_t cfg = {
      .base = MY_CUSTOM_INHERENT_BASE,
      .driver = NULL,
      .stack = ???  // I can't define my own version of this
    };
    esp_netif_t* esp_netif = esp_netif_new(&cfg);

The latest ESP-IDF docs for custom I/O drivers suggest that this is possible:

In rare cases, expert users might want to define custom lwIP based interface layers; it is possible, but an explicit dependency to lwIP needs to be set.

but I'm not sure how to just add a single lwIP based interface layer. I don't want to get rid of all the existing layers (as I'd like to leverage the existing Wi-Fi layer at the same time!).
Question
Is this the correct approach for what I'm attempting here? If so, how are we intended to add support for "custom lwIP based interface layers" to ESP-IDF?

Hi @tomasgareau
Yes, this is the correct approach. You just need to include:
#include "lwip/esp_netif_net_stack.h"

You can also refer to this example, which creates a custom lwip netif:
https://github.com/espressif/esp-protocols/blob/bd6e12050928464b4357015c7c8c1b215432d580/examples/esp_netif/slip_custom_netif/components/slip_modem/library/slip_modem_netif.c#L161-L166

PS: Very interesting project, btw. If you succeed in implementing LoWPAN6-BLE on ESP-32, would you be willing to share some portions of your code?

Aha -- we're on an old version of ESP-IDF so I could not find that file. I'll take a look at upgrading to v5+ and take another shot at it.

RE: sharing code -- it's certainly something I'm open to but it is a work project. I'll discuss it with my employer and see where I get with the ESP-NETIF integration!

yes, registering custom lwip IO functions wasn't possible in IDF < v5.0.
(still possible, if you redefine the opaque structs, like this )

Hey @david-cermak -- we were able to get this working in both IDF < v5.0 and >5.0, thanks! We can probably close this issue if you'd like.

RE: sharing the code -- my employer has OK'd sharing the resulting component. It's available here: https://github.com/geonavo/lowpan6_ble. It should roughly follow the structure of the slip_custom_netif example you linked above.
Our implementation is only really used for a pretty specific use-case (we only use it to connect to a non-ESP32 device and transfer UDP packets between the two). It is probably missing some more "general" use-case features (especially around the events bubbled up by the lowpan6_ble driver). However, we have added a UDP client/server echo example that does demonstrate accepting a LoWPAN6 BLE connection, too.

RE: sharing the code

Thanks so much for sharing this! Very helpful, even if it's tailored for your specific use case and :+1: for adding the server-client example!

I'm closing this issue (although I'm aware that developing such custom driver is not well documented in the netif docs; we've  already planned on updating and cleaning up the docs in this respect...)