Skip to content
This repository has been archived by the owner on Sep 29, 2023. It is now read-only.

Link to wiki from Readme. #152

Merged
merged 14 commits into from
Jun 4, 2018
Merged

Link to wiki from Readme. #152

merged 14 commits into from
Jun 4, 2018

Conversation

navyasric
Copy link
Contributor

Remove duplication. Moved removed content into wiki.

Remove duplication. Moved removed content into wiki.
@navyasric navyasric requested review from rayluo and abhidnya13 May 24, 2018 21:15
@navyasric
Copy link
Contributor Author

@abhidnya13 Can you please add the badges for CI build, Reference docs. Thanks!

@abhidnya13
Copy link
Contributor

I have added the badges. The Travis CI build badge is of dev branch. I am not sure if it should be of dev or master. Let me know and I'll make those changes if needed.

Copy link
Collaborator

@rayluo rayluo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking the initiative to come up with this PR! The comments below is open for discussion. I'm just marking down some keypoints here, before I forget. We can always follow up this, either online or offline.

README.md Outdated
@@ -1,72 +1,41 @@
# Microsoft Azure Active Directory Authentication Library (ADAL) for Python
=====================================
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The markdown format here isn't exactly right.

A generic tips: you can visualize the markdown locally with some plugins in your browser. Or if you already commit and push, you can visualize it right from github.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching that.

README.md Outdated

Upgrade to the latest pip (8.1.2 as of June 2016) and just do `pip install adal`.
## Versions
Current version - 0.6.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to not mention "current version" here, especially when we are already going to provide the link to the Release history page below. Customers can do a one-click and know the single-source-of-truth about the latest (and, all) version information.

The downside of mentioning it here is it introduces one more place for us to update during future releases. If we could avoid that, then we probably should. :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to match other SDKs but I agree with your suggestion of avoiding the duplication.

README.md Outdated

* For Linux
Minimum recommended version - 0.6.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, we probably won't need to hardcode yet another version number here.

On a side note, the idea of "minimum recommended version" is intriguing. What do we want to convey here?

  • If the intention is simply want to recommend customers to "always use whatever latest version is available" (which makes perfect sense), we can just write something like that, without hardcoding a specific version number.
  • By definition of Semantic Versioning, customers who using an old version X.Y.Z can always safely upgrade to newer version "X.Y-latest.Z-latest", without worrying about breaking change.
  • Or customers can technically stay with a version "X.Y.Z", as long as it still works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I think specifying that we follow semantic versioning and pointing to the Release page is sufficient.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking: since we explicitly mention Semantic Versioning in our README, how about we add a link to its official website too?


### Install
Copy link
Collaborator

@rayluo rayluo May 25, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand the motivation of "Remove duplication. Move content into wiki."
But do we consider keeping some most-seeking contents, such as "how to install", here in this de-facto project home page? In fact, we fine tuned those installation instructions a couple times before, based on real-world supporting request. Better not lose those valuable knowledge and efforts.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are not losing the instructions recorded over time. They are just in the Wiki page now. I will link to it from the Readme here since it is a "most-seeked" content.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see. Last time I checked, I tried find-by-eye and also "CTRL+F" (i.e. find in page) but could not find keyword "install" in our Wiki home page, its sidebar, or the FAQ page. I was not aware that "install" is inside the "Basic".

Now you have kept this "most-seeked" content by a link to that very wiki page. That is a reasonable solution! 👍

README.md Outdated

You'll need a C compiler, libffi + its development headers, and openssl + its development headers.
Refer to [cryptography installation](https://cryptography.io/en/latest/installation/)
> Note: Changes on 'client_id' and 'resource' arguments after 0.1.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Historically, these part showed up early in this document; and then in one commit we purposely move it to the bottom of this document, and the reasoning was documented in that commit.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rayluo Thanks for the context. I placed it under versions since it is information related to a specific version and it is a grey text note to draw little attention. But if this is mostly historical content, is it still relevant and should we remove it instead?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@navyasric You raised a very good point! At a hindsight, those paragraph "Changes ... after 0.1.0" really should belong to its release note. I've just updated the release note on version 0.3.0, you can go ahead to delete this paragraph from README now. Thank you!

If you still like to build from source, refer to [cryptography installation](https://cryptography.io/en/latest/installation/).
For more context, start with this [stackoverflow thread](http://stackoverflow.com/questions/22073516/failed-to-install-python-cryptography-package-with-pip-and-setup-py).

### Acquire Token with Client Credentials
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although we do have and mention the "sample applications on GitHub" later in this README, but those samples locating in a separated repo may or may not cover all the scenarios ADAL Python supports (as of today, they don't). It would seem still beneficial to keep this minimal "out-of-box" samples sections here. What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This content was moved to this Wiki page which links to relavant dev sample for each flow. I will link to this page from Readme.

Copy link
Collaborator

@rayluo rayluo May 31, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Historically we had a set of real code snippet right here in the README, later we changed it into the current form as a link to those real samples, after we were called out that they became out-of-sync. See full details here.

Now, moving these content to wiki page by actually duplicating those code snippets there, would bring us back to the potential 2-copies-would-become-out-of-sync situation. In fact, as a real-world example, one of our current wiki page technically already outdated, it includes an api_version=None which is no longer needed since our latest 1.0.0 release.

So my suggestion is, because anything that can go wrong will go wrong, so a better approach is to not create duplicate which we would forget to update later.

UPDATE:

  • We now updated the wiki page to contain only links back to the real code in current repo.
  • We could keep the same set of links here in README here (because the README and real code are in same repo therefore more likely to be in-sync), but instead we chose to just point to the wiki from README, so that we maintain only one set of links.

``` $ pip install adal ```

### http tracing/proxy
If you need to bypass self-signed certificates, turn on the environment variable of `ADAL_PYTHON_SSL_NO_VERIFY`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK, this particular line was the only place we document this behavior. If we are going to remove it here, do we plan to document it somewhere in the wiki then?

PS: We did mention it recently in API reference doc. But I assume DevOps will not necessarily read API Reference doc. I could be wrong, though.

Copy link
Contributor Author

@navyasric navyasric May 31, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This content is moved to the Basics page of the Wiki and I'll be linking to this page under installation part of Readme.

@navyasric
Copy link
Contributor Author

@rayluo I have made some updates based on your feedback. Please take a look and let me know. Thanks.

Copy link
Collaborator

@rayluo rayluo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update! Added some more thoughts below.

README.md Outdated

It is recommended to read the [Auth Scenarios](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios) doc, specifically the [Scenarios section](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios#application-types-and-scenarios). For some topics about registering/integrating an app, checkout [this doc](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications). And finally, we have a great topic on the Auth protocols you would be using and how they play with Azure AD in [this doc](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code).
This library follows Semantic Versioning.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are mentioning this guiding principle anyway, it would be convenient to also include a link to point to its official website.

README.md Outdated

While Python-specific samples will be added into the aforementioned documents as an on-going effort, you can always find [most relevant samples just inside this library repo](https://github.com/AzureAD/azure-activedirectory-library-for-python/tree/dev/sample).
> Note: Changes on 'client_id' and 'resource' arguments after 0.1.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your suggestion. We now retrofit that old release note. We can go ahead to delete this section here now.

If you still like to build from source, refer to [cryptography installation](https://cryptography.io/en/latest/installation/).
For more context, start with this [stackoverflow thread](http://stackoverflow.com/questions/22073516/failed-to-install-python-cryptography-package-with-pip-and-setup-py).

### Acquire Token with Client Credentials
Copy link
Collaborator

@rayluo rayluo May 31, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Historically we had a set of real code snippet right here in the README, later we changed it into the current form as a link to those real samples, after we were called out that they became out-of-sync. See full details here.

Now, moving these content to wiki page by actually duplicating those code snippets there, would bring us back to the potential 2-copies-would-become-out-of-sync situation. In fact, as a real-world example, one of our current wiki page technically already outdated, it includes an api_version=None which is no longer needed since our latest 1.0.0 release.

So my suggestion is, because anything that can go wrong will go wrong, so a better approach is to not create duplicate which we would forget to update later.

UPDATE:

  • We now updated the wiki page to contain only links back to the real code in current repo.
  • We could keep the same set of links here in README here (because the README and real code are in same repo therefore more likely to be in-sync), but instead we chose to just point to the wiki from README, so that we maintain only one set of links.

@navyasric
Copy link
Contributor Author

@rayluo I have incorporated your feedback to keep the wiki mostly conceptual. I have modified the acquire token section of the wiki to match the format where we link to the code snippet in samples and minimize duplication. (Where there was no sample, I link to method signature).
This page is linked from the Readme under samples as well as the Basics page in wiki so that we have one copy of this document. Please let me know if this PR is good to merge now.

Copy link
Collaborator

@rayluo rayluo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @navyasric for all the hard work! Merging now.

@rayluo rayluo merged commit d2e0878 into dev Jun 4, 2018
@rayluo rayluo deleted the nc-readme-updates branch June 11, 2018 17:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants