This is a working document as a follow up to RFC: OpenID roadmap. It summarizes the current tasks being worked on for accomplishing steps 1 and 2 outlined in the roadmap.
Step 1
OpenID Provider modules
#399746 Refactor dependencies AX - Persona OpenID Provider AX / OpenID Provider Persona#430332 Make SREG independent of Persona OpenID Provider SREG#440262: Make it work with the new openid stack OpenID Provider Persona.- #488640: Simplify provider-side hooks OpenID Content Profile Field, OpenID Provider AX, OpenID Provider SReg, OpenID Provider Persona
-> All issues for OpenID provider modules (does not include OpenID module)
OpenID Content Profile Field (relevant for both provider and client)
#428932 Improve mapping UI, support provider and client OpenID Content Profile Field#439622: Make openid_cp_field an implementer of hook_openid_client_ax() OpenID Content Profile Field#439636: Fix hook implementation after changes in openid_provider_sregOpenID Content Profile Field#441034: Can't delete mappings that are defined in code
OpenID client modules
#434378: Move mapping functionality to openid_cp_field OpenID Client AX#439602: Remove openid_cp_field dependency and move content_profile parts into openid_cp_field OpenID Client AX#444164: Make it work with the openid stack againOpenID Client SReg et al, this patchset removes mapping from client sreg and utilizes a hook to use openid_cp_field mapping interface instead. There are depending patches what are linked from the ticket page.
Profile updates
- Support update_url method what is specified in OpenID AX draft. #501702, #501704
-> All issues for OpenID client modules (does not include OpenID module)
Step 2
OpenID module (core)
#319840: Add hook to the OpenID module for returning data
OpenID hooks after Step 1
This section describes the purpose of hooks in the OpenID stack after Step 1 of road map is implemented.
hook_openid_client($op, $response, $account)
Invoked by: openid_client_ax.module and openid_client_sreg.module
Implemented by: openid_cp_field
Purpose:
$op = 'get': retrieve mapping information from implementers.
$op = 'save': pass OpenID fields from OpenID provider to implementers.
hook_openid_provider_map($op, $type, $fields, $request)
Invoked by openid_provider_sreg.module, openid_provider_ax.module
Implemented by: openid_cp_field
Purpose:
$op = 'load': Retrieve $type = 'sreg' or $type = 'ax' fields requested by OpenID client from implementers.
hook_openid_provider($op, $response, $request)
Invoked by openid_provider.inc
Implemented by: openid_provider_ax, openid_provider_sreg
Purpose:
$op = 'response': let other modules parse the request and extend the response
$op = 'signed': let other modules add signed fields to the response
hook_openid_cp_field_mapping()
Invoked by: openid_cp_field.module
Implemented by: n/a
Purpose: returns the imported mappings. The user is able to export mappings a'la views.
Overview of how the hooks work in action

Important: OpenID Client AX can be replaced to OpenID Client SReg, they both try to spoof the openid/authenticate menu entry and it does work flawless. They can also live side-by-side.
Also on provider side, OpenID Provider SReg can be a drop-in replacement for OpenID Provider AX, or they can sit together also, so both SReg and AX fields are handled.
If you only use OpenID Client AX, OpenID Provider Persona can be a replacement of OpenID CP Field.