New kdelibs policy starting monday

Peter Kümmel syntheticpp at gmx.net
Sat Jul 15 13:00:18 BST 2006


Stephan Kulow wrote:
> Hi!
> 
> As there doesn't seem to be a real discussion going on anymore,
> I declare the new trunk/KDE policy applying starting this monday.
> 
> This means:
>  - next monday we will erase kdelibs4_snapshot and from that time
>     trunk/KDE/kdelibs is the kdelibs to compile against
>  - all of trunk is supposed to compile at any time against that very
>    kdelibs
>  - Source and binary incompatible changes are only allowed on mondays
>    (on every monday though) and porting efforts should be finished the
>    same evening (that means every developer is allowed to start changing
>    8am her timezone and has to make sure trunk is compiling till 10pm his
>    timezone (being around in #kde4-devel and awaiting people complaining
>    might be enough).
> - Source incompatible changes shall be developed in an extra branch before
>    they hit trunk. As trunk is supposed to compile at any time, you can branch
>    off trunk and make your changes till your branch compiles again.
> 
> Now I hope we can get kdepim and kdewebdev to compile before monday,
> otherwise this policy will be a bit complicated to enforce. And I hope 
> everyone makes sure we make this a dynamic process, i.e. update the policy if 
> it turns out it's imperfect.
> 
> Greetings, Stephan

Here my consequence:

SVN commit 562605 by kuemmel:

Don't add a macro when a real C++ (template) solution possible.

Undo all pimpl changes. I'll also stop working on this because of
the new kdelibs-commit-policy, which is like freezing kdelibs.

Now I have to care about too much: branching, changing hole
trunk, waiting for Monday - this is annoying even if it helps
the application developers.

Time to leave with 'rm -rf *', hope I've not forgotten something to revert.

CCMAIL:kde-core-devel at kde.org


 M  +0 -1      TODO
 M  +0 -62     kdemacros.h.cmake


--- trunk/KDE/kdelibs/TODO #562604:562605
@@ -10,7 +10,6 @@
   help prevent mistakes where developers forget to delete the pointer. Maybe
make use of
   Qt4 helper macros?
   (Frerich)
-  Use KDE_PIMPL_EN(DIS)ABLE_COPY to avoid compiler generated copy functions
(Kümmel)

 - Move all utility functions away from KApplication. TBD: Make KApplication
   a very thin wrapper around QApplication. Ideally, KApplication should go
--- trunk/KDE/kdelibs/kdemacros.h.cmake #562604:562605
@@ -361,66 +361,4 @@
 # define KDE_DUMMY_QHASH_FUNCTION(C)
 #endif

-/**
- * @def KDE_PIMPL_ENABLE_COPY
- *
- * KDE_PIMPL_ENABLE_COPY is a macro for the
- * consistent Pimpl (Pointer to Implementation) usage.
- *
- * It ensures that the code shows explicit how
- * assignment and copying is handled.
- *
- * Using KDE_PIMPL_ENABLE_COPY one must also implement
- * the copy constructor and the assignment operator.
- *
- * Using KDE_PIMPL_DISABLE_COPY makes the class NOT copyable
- * by declaring the related functions as private.
- *
- * Example:
- *
- * \code
- * class KClass {
- * public:
- *     KClass();
- *     ~KClass();
- * private:
- *     KDE_PIMPL_ENABLE_COPY(KClass);
- * };
- *
- * class KClass::KClassPrivate {
- * public:
- *     int data;
- * };
- *
- * KClass::KClass() : d(new KClassPrivate) {}
- * KClass::~KClass() { delete d; }
- * KClass::KClass(const KClass& rhs) : d(new KClassPrivate) { operator=(rhs);}
- * KClass& KClass::operator=(const KClass& rhs) {
- *   if(this!=&rhs)
- *       d->data = rhs.d->data;
- *   return *this;
- * }
- * \endcode
- *
- */
-
- /**
- * @def KDE_PIMPL_DISABLE_COPY
- *
- * see:
- * @sa KDE_PIMPL_ENABLE_COPY
- */
-
-#define KDE_PIMPL_BASE_MACRO(COPY_ACCESS,X) \
-COPY_ACCESS: \
-    X(const X##&); \
-    X##& operator=(const X##&); \
-private: \
-    class X##Private; \
-    X##Private * const d;
-
-#define KDE_PIMPL_ENABLE_COPY(X)  KDE_PIMPL_BASE_MACRO(public, X)
-#define KDE_PIMPL_DISABLE_COPY(X) KDE_PIMPL_BASE_MACRO(private,X)
-
-
 #endif /* _KDE_MACROS_H_ */




More information about the kde-core-devel mailing list