Created

Feb 22, 2013

Adobe CQ Package Share Contest: Announcing the Winners and Looking Closely at Criteria and Best Practices

Posted by Andrew Savory

I recently had the great honour of being part of the team reviewing the entries to the Adobe CQ Package Share contest. For those who missed it, Adobe was giving away a 15-inch Retina MacBook Pro for the best five packages submitted, based on the following judging areas: 40% creativity, 40% overall quality, and 20% reusability. We appreciated all who participated and submitted – thank you!

A package is just a zip file of content in a special format, and by uploading packages in Package Share you can make your custom code – such as templates, libraries, or even content – available to everyone using Adobe CQ in your company, or anyone else using CQ worldwide. It's also a great way to discover new functionality, and to quickly and easily download and install new CQ feature packs. For more background on packages and Package Share, check out my recent video.

Before I go further, I’m pleased to acknowledge the five winners of the contest, all of whom had strong submissions. I’ve included the names of their packages, and want to highlight that each will be available in Package Share soon. They are:

·         David from Katonah, NY - YouTube

·         Maciej from London, UK – CQ YouTube Integration

·         Mark from San Francisco, CA – Recap

·         Ruben from Brussels, BE – Template Manager

·         Tomasz from London, UK – SecureCQ

I thought it would be useful to share some of the criteria we applied when reviewing the entries. The criteria encapsulate best practice, and should help others build great packages to. We had 6 broad criteria that we applied:

  • Does the package work?
  • Does it offer some sort of cool feature or functionality?
  • Is the package nice looking?
  • How well was it packaged?
  • Is the package reusable?
  • How good is the code quality?

Let's look at them in more detail.

Does the package work?

The package might work for you, but what about for others? If you're expecting it to be shared, take the extra time to test your package on a vanilla install of CQ. Ideally, try it on several different versions – including our very latest and also including CQ 5.4 and 5.5. Remember, there's a metadata field for the versions of CQ you have tested against, so make sure it's filled out.

Another aspect of checking the package works is knowing where to begin. There are so many possible places to check – is it a component (try enabling it in Design view)? Is it a separate site (look for it under site admin)? Is it a tool (look for it under Tools)? You should make it obvious to anyone downloading the package – for example by providing a link to your package's entry point in the description. Remember the package is usually downloaded onto the server it will be installed on, so you can use relative links to ensure it always works, no matter what host or port CQ is running on.

Features and functionality

We had some very diverse entries, including enhancements to configuring and managing core CQ functionality; tools to query the underlying CRX repository; and components for managing content from third-party sites and services. The best packages offered functionality not available anywhere else. Cool is relative – one of the highest-scoring contributions made a tool-powered virtue out of  a site manager's dull copy-editing necessity. The lesson here is to think about how people use CQ, and what makes life easier for them. If you've solved a problem for your team locally, chances are your solution could help a much wider CQ user community.

Is the package nice looking, and how well was it packaged??

Beauty is in the eye of the beholder, but if your package included icons, screenshots, great design and a friendly user experience, then you probably did well. CQ gives you lots of opportunities to produce nice-looking packages. For example, you can include HTML tags in your description metadata, so take the time to make sure it is readable and highlights the key information.

Good packaging includes a wide range of criteria. Does the package store everything in a sensible place (for example in /apps)? Does the package make use of filters to include (or exclude) everything it should? Does the package duplicate existing files (which would be bad)? Does the package include suitable metadata?

Metadata is particularly important when you are sharing your packages, as it greatly aids discoverability. If people don't know what your package does or what is in it, they won't be downloading it. Give it a meaningful name: 'mypackage' is not much use, but 'svgcomponent' immediately gives users a clue as to what it does.

Make use of the version number, so people can tell when they need to update. List supported platforms, bug fixes, and provide external links wherever relevant. In fact, go through all of the tabs in the the Package Manager "Edit Package" dialog, and if you have left a field empty, I hope you have a very good reason! 

Is the package reusable?

Sometimes, no matter how useful your package's functionality is to your organisation, it just doesn't make sense to share it more widely. You can still use Package Share, but in this instance you're better off restricting sharing to just your company.

All the entries we received were great examples of features or functionality that would be essential add-ons to anyone using CQ, but keep in mind that globally-shared packages should be generic enough for other companies to use. Feel free to upload GenericConfigurableBackOfficeConnector, but avoid uploading CopyDataFromBobsLaptop! 

Your package may be very generic, but sometimes it still needs some local configuration before it will work. In this case, consider the nicest way that you can handle this for your users. Could the information be entered via a dialog? Could the configuration be stored and retrieved from a property? If configuration is required, consider adding a UI for the package under CQ Tools.

How good is the code quality?

There's lots of metrics out there for judging code quality. Nobody expects perfect code, but try to keep it clean, readable and extensible. Keep an eye on best practices: http://dev.day.com/docs/en/cq/current/developing/developing_guidelines_bestpractices.html.

When you write your code, respect the conventions of CQ – not just in formatting, but also in terms of functionality and layout. For example, if you're providing a component, make sure it shows up in an appropriate group in the Sidekick. If you're modifying existing foundation components, make sure you only change a copy in /apps rather than overwriting /libs (in fact, don't overwrite CQ functionality at all!) Make sure you keep content under /content and separate from presentation where possible. Make sure you break down functionality where appropriate – for example in separate head and body JSPs. If you're using third-party javascript or CSS libraries, provide them as part of your package rather than loading them remotely.

Finally, consider putting your package on github: it's a great opportunity for others to collaborate and help you improve and to learn. You could also ask for help on the forums – the CQ community are a friendly bunch, and some constructive criticism might make your package better for you, as well as for everyone else!

COMMENTS

  • By Ruben - 8:20 PM on Feb 23, 2013   Reply
    are the winning packages available already?
    • By Rollos - 2:43 PM on Mar 04, 2013   Reply
      Good question Ruben I am interested in the same. Can you share a link to github with the packages ?
      • By may loc nuoc - 11:10 AM on Mar 30, 2013   Reply
        are the winning packages available already? Can you share a link to github with the packages ?
        • By diễn đàn seo - 5:59 AM on Apr 15, 2013   Reply
          the winning packages available already?
          • By ロレックス コピー - 5:19 AM on Apr 22, 2013   Reply
            ここでレプリカロレックスWatchesRolexレプリカ時計、最も魅力的なレプリカWatchesSwissグレードロレックスレプリカ時計 - 最も正確QualityDesigneralike、レプリカ時計の海を、買うの関連ArticlesSwissロレックス時計ReplicasBenefitsはあなたのために待っている!Designeralikeはfahsionのトレンドをリードしているこれらの時計についての最もよい事はということですスリリングとしてeverThisが行く魅力的なアイテムであるとして、彼らは最も驚くべき事実は情熱の等量は、レプリカロレックスの腕時計の着用で改装ロレックスの時計のためにそこにあるということです最小限の損失でその早すぎる再販売することができる、女性は絶対になります安心して、会議室から全体のディナーパーティーには高価な女性の腕時計を持っているのであれば、あなたが時計が動作している、唯一の簡単に言えば安全な場所でそれらを着用してください、あなたは、フォーカスとラウンドの終了が表示されるはずですただセンター、しばしば一見カジュアルな"小さなデザイン"ですが、ブランドの印象的なスキルと良心的なサービスのみが時計の適切な診断の後に行われるを示すことができるの"メルセデス"時針を渡す秒針には、その外観とperformance3のために行われ

            肯定的な精神、成功、絶妙な美しさと困難な電力の調和のとれたブレンドは、この時計に表示されている追加のフェミニンな装飾も女性の腕時計の中に含まれており、手首の上に偽のロレックスの時計の着用では、パーソナライゼーション、ある程度のを提供している、あなたは次のようになります。修理が完了し、支払が受け取られたらより確実のために自然なスタイルを得ることが瞬時にできるように、彼らがそうである限りではサービスロレックスで1年間の保証を発行し、入れずに外に行くことができないそれらのロレックス愛好家があります自分の好きな時計に彼らは非常に構えと活発な時計は、さまざまなモデルは、一つは時計を検査し、それはあなたがロレックスの時計作りに自分自身の履歴を作成したときにあったことをしたいものであることを確認することです男性の広告女性の両方に利用できます
            • By buy FIFA 13 ultimate team coins - 6:57 AM on May 22, 2013   Reply
              Metadata is particularly crucial when you are revealing the packages, as it significantly helps discoverability. In case folks don't determine what your own package deal does or even precisely what is inside it, they won't end up being installing. Give it an important identify: 'mypackage' isn't a lot employ, however 'svgcomponent' right away offers consumers a clue as to what it lets you do.
              • By katalog stron - 7:55 AM on May 27, 2013   Reply
                Acz, skoro jest tak wiele podobieństw, z jakiego powodu elektroniczne papierosy uznaje się atoli zbytnio bardziej interesujące od czasu owych zwykłych? A faktycznie w takim razie, że ich wykorzystywanie nie łączy się z niebezpiecznym procesem palenia tytoniu (a wytwarzanym symultanicznie smogiem)
                • By puma - 3:42 AM on Jun 17, 2013   Reply
                  メジャーリーグそれは初期のライバルがジョーダンの各々は、バスケットボール選手のために特別に作成されますので、エアジョーダンを着用するときは、ほとんど無敵になっているアディダススポーツwearCで最も先進的な靴の一つです!トップナイキヨルダンの一つ意欲的なバスケットボール選手のためのモデルは、あなたの足の靴がしっかりとあなたの足を維持するために庭で非常に重要であるフィットの靴のために行くナイキエアジョーダンフライト23です

                  F50スタンドのFでもアディダスはサッカーシューズを生産する長周期expenrienceを持っている、それは本当の効率的なアフィリエイトマーケティングコーチ彼らはコートを持っている仕事の分野で別の専門家を作り出すことができることが明らかにされるように、彼らはナイキMercurialの蒸気を一致させることができないため、防水加工とテントイースターボンネットもイースター自体より時間で追加恥じ行く
                  • By サッカースパイク - 11:17 AM on Jun 17, 2013   Reply
                    シンガポールのスニーカーブティックで、その最新の靴屋の名前はPThe法人が実際に多くの成功であり、それはあなたがあなたの体の形状を分析するのに役立ちますビキニとボディ形状の種類の完全な知識を備えているplanetNowを通じて複数の会社が表示されていますそしてあなたの体は軽い素材を入力するための右のビキニを選択、もちろん、それはlighterTheスイムビキニは、概して女性の全身のはるかを明らかにし、めったに40上の女性が着用されていない比較的小さな水着、として分類させるそれは素晴らしい経験を提供し、オニツカタイガーのミニもかなりおしゃれです

                    バーバリーカシミヤscarvsは、他のスカーフとは異なる市場で利用可能なは、ヒッピーに行く必要はありませんハーレム80年代のデザイナー発掘を - !本当に、80年代は、水泳のビキニボトムはまた男性が着用することができますと呼ばれている印刷されたパンツの十年であるとして:あなたは単純な探して一つまたはそれ以降の年の間に、あなたのスタイルに合った方空想1のどちらかを選ぶことができるデザインの広大な様々なメンズビキニ、彼らはトリプル舌と虹色のスニーカーから出て吹い火で靴を導入しましたそれは、スポーツのさまざまな種類が含まれていますこのようなサッカーシューズ、ランニングシューズ、バスケットシューズ、アディダス·オリジナル、とmiCoachのシリーズのような履物
                    • By Adult Building Services - 11:38 AM on Jun 17, 2013   Reply
                      Adult Building Services

                      ADD A COMMENT